وقت القراءة: 4 دقائق
يمكن أن يساعدك هذا الدليل في العثور على هذا الخطأ السيئ الذي يزعجك وأدوات تصحيحه.
تصحيح الأخطاء أمر بالغ الأهمية لأي دورة تطوير برمجيات ؛ البشر دائما يرتكبون الأخطاء. لهذا السبب نحن لا نهزم. نرتكب الأخطاء ونتعلم منها. تصحيح الأخطاء هو عملية لمعرفة أين يتأخر الكود الخاص بنا ، وإصلاح ذلك ، والتعرف على هذا الخطأ حتى لا يتكرر.
يعد تطوير العقود الذكية أمرًا بالغ الأهمية لبناء تطبيقات blockchain. ولكن كما هو الحال مع أي دورة تطوير برامج أخرى ، قد يكون تصحيح أخطاء العقود الذكية أمرًا صعبًا في بعض الأحيان ، وبما أننا نتعامل هنا غالبًا مع مبلغ ضخم من المال ، فلا يمكننا ترك أي شيء للصدفة. يجب أن نكون مثاليين في كتابة العقود الذكية وأن نكون مثاليين في تصحيح الأخطاء. لهذا السبب توصلنا إلى هذه المدونة حتى تتمكن من التعرف على تصحيح الأخطاء من الأفضل.
قبل إصلاح أي شيء ، نحتاج إلى معرفة المشكلة ، لذلك لنبدأ بتحديد أنواع مختلفة من الأخطاء في تطوير العقود الذكية.
الأخطاء الشائعة
في هذا القسم ، سوف نستكشف أنواعًا مختلفة من الأخطاء التي يصادفها مطورو العقود الذكية بانتظام.
- خطأ في بناء الجملة:- هذا الخطأ سهل الإصلاح. يحدث هذا عندما يرتكب المطور خطأً برمجيًا يمنع الكمبيوتر من فهمه ، مثل فقد فاصلة منقوطة.
- خطأ منطقي: - قد يصعب أحيانًا العثور على هذا النوع من الأخطاء. لا يمنع التنفيذ ، ولكن يتم تغيير وظائف البرنامج. يتصرف هذا البرنامج بشكل غير متوقع كعقد ذكي يقوم بتحويل الأموال إلى عنوان غير صحيح عند إرسال الأموال من حساب إلى آخر.
- خطأ وقت التشغيل: - هذه الأخطاء يصعب التنبؤ بها. يأتون في وقت غير متوقع وأماكن غير متوقعة. يحدث هذا أثناء تنفيذ العقود الذكية ويحدث بسبب معالجة الاستثناءات غير الفعالة. على سبيل المثال ، قد يحدث هذا عندما يفشل العقد في التعامل مع المدخلات غير المتوقعة أو محاولات تنفيذ عملية محظورة بواسطة blockchain الأساسي. على سبيل المثال ، يحاول العقد تحويل أموال أكثر من المعلمة المسموح بها.
- تم إرجاع أخطاء التنفيذ: - يحدث هذا عندما يقوم المستخدم بتقديم أي طلب غير مشروع مخالف لمنطق العقد الذكي ثم يتم إلغاء الطلب وإعادته. يحدث هذا لأنه في بعض الأحيان تتطلب العقود الذكية الوفاء بمتطلبات معينة لمعالجة المعاملة. ومع ذلك ، يستمر المستخدم في المعاملة دون استيفاء المتطلبات ، ومن ثم لا يتم ترحيل المعاملة وإعادتها. على سبيل المثال ، يحاول المستخدم تحويل 100 دولار ولكن لديه رصيد قدره 50 دولارًا.
- تجاوز المكدس: - تكلفة موارد تنفيذ العمليات رسم غاز. كلما كانت الوظيفة ثقيلة ، زادت التكلفة. بعض الآليات الثقيلة في الترميز هي الحلقات و
المكالمات المتكررة<! - wp: paragraph -> النداء المتكرر هو شرط يمكنه الرجوع إلى نفسه وإعادة الاتصال به مرارًا وتكرارًا في حلقة. تستخدم الدالة العودية الحالة الأساسية (if) وحالة الاستقراء (وإلا). يتم تنفيذ هجمات إعادة الدخول من خلال استغلال المكالمات المتكررة في الكود. <br/> <! - / wp: paragraph ->
”data-gt-translate-attributes =” [{"attribute": "data-cmtooltip"، "format": "html"}] ”> المكالمات المتكررة. مكدس الفائض له علاقة
المكالمات المتكررة<! - wp: paragraph -> النداء المتكرر هو شرط يمكنه الرجوع إلى نفسه وإعادة الاتصال به مرارًا وتكرارًا في حلقة. تستخدم الدالة العودية الحالة الأساسية (if) وحالة الاستقراء (وإلا). يتم تنفيذ هجمات إعادة الدخول من خلال استغلال المكالمات المتكررة في الكود. <br/> <! - / wp: paragraph ->”data-gt-translate-attributes =” [{"attribute": "data-cmtooltip"، "format": "html"}] ”> المكالمات المتكررة.
المكالمات المتكررة<! - wp: paragraph -> النداء المتكرر هو شرط يمكنه الرجوع إلى نفسه وإعادة الاتصال به مرارًا وتكرارًا في حلقة. تستخدم الدالة العودية الحالة الأساسية (if) وحالة الاستقراء (وإلا). يتم تنفيذ هجمات إعادة الدخول من خلال استغلال المكالمات المتكررة في الكود. <br/> <! - / wp: paragraph ->”data-gt-translate-attributes =” [{"attribute": "data-cmtooltip"، "format": "html"}] ”> المكالمات المتكررة هي طريقة لاستدعاء وظيفة داخل نفس الوظيفة بمدخلات مختلفة أنت يمكن التفكير في وظيفة متكررة مثل آلة عصير قصب السكر. الآلة تتصرف كوظيفة وقصب السكر كمدخل. كل شوط من قصب السكر من الجهاز يعني استدعاء وظيفة. بعد مرة ، يدخل قصب السكر تحت الماكينة مرة أخرى ، وتستمر هذه العملية في التكرار. هذا هو التكرار. ولكن نظرًا لأننا نريد خفض تكاليف الغاز وموارد EVM ، فإن الإيثيريوم يحد من استدعاء التكرار حتى 1024 مرة. عندما تستدعي دالة في المرة 1025 ، فإنها تؤدي إلى تجاوز سعة مكدس.
- خطأ JUMP: - عند محاولة استدعاء وظيفة غير موجودة أو استخدام لغة تجميع والإشارة إلى ذاكرة خاطئة ، ينتج عن ذلك خطأ. يمكن أن يحدث هذا حتى عند استدعاء وظيفة في عقد آخر ، لكن هذه الوظيفة غير موجودة. تسمى هذه الأنواع من الأخطاء أخطاء JUMP.
كانت هذه بعض أخطاء العقود الذكية الشائعة التي يواجهها المطورون ؛ قد يكون من الصعب أحيانًا اكتشاف الأخطاء وفهمها. للعثور على الأخطاء ومحاولة إصلاحها ، نطلب المساعدة من الأدوات المختلفة. دعونا نستعرضها واحدًا تلو الآخر في القسم التالي.
أربع أدوات مفيدة لتصحيح الأخطاء
في هذا القسم ، سنتعرف على الأدوات المستخدمة بكثرة لتحديد الأخطاء وحلها بواسطة المطورين الأكثر خبرة في جميع أنحاء العالم. دعنا نذهب.
قبعة الثابت
هذه الأداة مستخدمة ومقبولة على نطاق واسع لاختبار العقود الذكية على معايير مختلفة. يوفر بيئة تطوير مفتوحة المصدر لـ Ethereum. يتضمن أدوات لتطوير واختبار ونشر العقود الذكية. مصحح الأخطاء المدمج به مفيد للعديد من المطورين حول العالم. يلعب هذا دورًا كبيرًا في مرحلة الاختبار أيضًا.
ترافل
هذا إطار تطوير شائع لـ Ethereum. مثل hardhat ، يتضمن أدوات لتطوير واختبار ونشر العقود الذكية وأيضًا تم بناؤه مصحح أخطاء الكمأة، مما يساعد المطورين على الحصول على تجربة تطوير سلسة في مرحلة الاختبار.
ريمكس
هذا هو الشيء الذي صادفه كل مطور تقريبًا عندما بدأوا رحلتهم لأول مرة في web3. هذا محرر كود عبر الإنترنت من أجل الصلابة ، لذلك لا يلزم التثبيت دون اتصال بالإنترنت لبدء التطوير. تتيح ميزة تصحيح الأخطاء المضمنة للمطورين مسح الكود وفحص المشكلات المتغيرة. وكل هذا على الإنترنت لا حاجة إلى أدوات غير متصلة بالإنترنت.
Etherscan
هذا مستكشف كتل موثوق به وشائع على نطاق واسع لـ Ethereum. يسمح للمطورين بفحص وتصحيح العقود الذكية المنشورة على Ethereum blockchain. باستخدام هذا ، يمكنك تتبع المعاملات والنشاط لأي عنوان أو عقد. يساعدك هذا في تحديد مكان المشكلة إذا كان عقدك الذكي يواجه أي مشكلات على السلسلة.
وفي الختام
يعد تصحيح أخطاء العقود الذكية أمرًا صعبًا ومحبطًا في بعض الأحيان ، ولكنه مرحلة حاسمة تتعلق بالأمان والاختبار. هذا هو المكان الذي من المرجح أن تقدم الثغرات الأمنية نفسها للمتسللين ويمكن أن تؤدي بالبروتوكول إلى فشل كامل. لإنقاذ نفسك من مثل هذه الظروف ، يُنصح بشدة بالذهاب إلى عمليات التدقيق.
كان QuillAudits في هذا المجال لفترة طويلة ولديه فريق من الخبراء يمكنه التعامل مع كل ثغرة أمنية محتملة ومساعدتك على تأمين البروتوكول الخاص بك. فيما يتعلق بالاختبار وأهميته وعلاقته بالتصحيح ، اقرأ المدونة التفصيلية التي ستساعدك على فهم كل جانب https://blog.quillhash.com/2023/02/16/testing-and-formal-verification/. قم بزيارة موقعنا على الإنترنت وقم بتدقيق مشروعك!
8 المشاهدات
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. الوصول هنا.
- المصدر https://blog.quillhash.com/2023/03/03/4-most-useful-smart-contract-debugging-tools/
- a
- من نحن
- مقبول
- حسابي
- في
- نشاط
- العنوان
- بعد
- ضد
- الكل
- يسمح
- دائما
- كمية
- و
- آخر
- التطبيقات
- حول
- جانب
- جمعية
- الهجمات
- محاولات
- التدقيق
- الرصيد
- قاعدة
- لان
- أفضل
- حظر
- سلسلة كتلة
- تطبيقات blockchain
- المدونة
- علة
- البق
- ابني
- بنيت
- مدمج
- دعوة
- تسمى
- دعوات
- ألغيت
- لا تستطيع
- حمل
- حقيبة
- معين
- تحدي
- فرصة
- ظروف
- الكود
- البرمجة
- تأتي
- مشترك
- إكمال
- الكمبيوتر
- حالة
- عقد
- عقود
- التكلفة
- التكاليف
- حاسم
- قطع
- دورة
- صفقة
- نشر
- نشر
- مفصلة
- المطور
- المطورين
- تطوير
- التطوير التجاري
- مختلف
- صعبة
- أثناء
- كل
- سهل
- رئيس التحرير
- لقاء
- البيئة
- خطأ
- أخطاء
- ethereum
- Ethereum blockchain
- حتى
- كل
- EVM
- مثال
- استثناء
- تنفيذ
- الخبره في مجال الغطس
- تمكنت
- خبير
- اكتشف
- مستكشف
- مواجهة
- فشل
- فشل
- الميزات
- رسوم
- الاسم الأول
- حل
- إلى الأمام
- الإطار
- تبدأ من
- محبط
- وظيفة
- وظيفة
- GAS
- دولار فقط واحصل على خصم XNUMX% على جميع
- Go
- يذهب
- توجيه
- قراصنة
- مقبض
- معالجة
- يحدث
- يحدث
- الثابت
- بشكل كبير
- ثقيل
- مساعدة
- مفيد
- يساعد
- هنا
- جدا
- HTTPS
- ضخم
- البشر
- تحديد
- تحديد
- أهمية
- in
- يشمل
- غير فعال
- إدخال
- قضية
- مسائل
- IT
- نفسها
- رحلة
- قفز
- علم
- المتلكئة
- لغة
- قيادة
- تعلم
- تعلم
- يترك
- يتيح
- على الأرجح
- حدود
- طويل
- وقت طويل
- آلة
- جعل
- يصنع
- كثير
- يعني
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- طريقة
- مفقود
- خطأ
- مال
- الأكثر من ذلك
- أكثر
- حاجة
- بحاجة
- التالي
- حاليا
- على السلسلة
- ONE
- online
- المصدر المفتوح
- عملية
- عمليات
- أخرى
- المعلمة
- المعلمات
- مرحلة جديدة
- وجهات
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- البوينت
- الرائج
- ممكن
- تنبأ
- يقدم
- منع
- العائدات
- عملية المعالجة
- برنامج
- تنفيذ المشاريع
- بروتوكول
- ويوفر
- كويلهاش
- عرض
- تكرار
- متكرر
- العودية
- بخصوص
- بانتظام
- ذات صلة
- علاقة
- متكرر
- طلب
- تطلب
- المتطلبات الأساسية
- الموارد
- النتائج
- النوع
- يجري
- نفسه
- حفظ
- تفحص
- القسم
- تأمين
- أمن
- إرسال
- سمارت
- عقد الذكية
- العقود الذكية
- So
- تطبيقات الكمبيوتر
- تطوير البرمجيات
- صلابة
- بعض
- كومة
- المسرح
- بدأت
- لا يزال
- هذه
- أخذ
- فريق
- الاختبار
- •
- العالم
- من مشاركة
- أنفسهم
- اعتقد
- عبر
- الوقت
- مرات
- إلى
- جدا
- أداة
- أدوات
- مسار
- صفقة
- المعاملات
- تحويل
- التحويلات
- مقلقة
- افضل
- أنواع
- مع
- التي تقوم عليها
- فهم
- فهم
- غير متوقع
- us
- تستخدم
- مستخدم
- مختلف
- نقاط الضعف
- الضعف
- Web3
- الموقع الإلكتروني
- ابحث عن
- التي
- على نحو واسع
- سوف
- في غضون
- بدون
- العالم
- في جميع أنحاء العالم
- سوف
- جاري الكتابة
- حل متجر العقارات الشامل الخاص بك في جورجيا
- نفسك
- زفيرنت