Leçon 5

خاتمة تحسين العقد الذكي - نصائح وحيل متقدمة

في دروسنا السابقة، قمنا بتغطية المفاهيم الأساسية والأدوات التي تحتاجها لتحسين الغاز في عقود إيثريوم الذكية، وخاصة باستخدام Remix IDE. بينما نختتم هذه الدورة، دعونا نتعمق في بعض التقنيات المتقدمة وأفضل الممارسات. سيجمع هذا الدرس الأخير بين المعرفة التي جمعناها، مما يضمن حصولك على فهم شامل لتحسين الغاز في عقود إيثريوم الذكية.

إعادة الهيكلة وتقليل تعقيد التعليمات البرمجية

واحدة من أكثر الطرق المباشرة لتوفير الغاز هي جعل التعليمات البرمجية أكثر بساطة. كلما قل عدد التعليمات البرمجية المطلوب تنفيذها، قل استهلاك الغاز.

مثال الممارسة

خذ بعين الاعتبار الوظيفة التالية:

صلابة
صلابة البراغما ^ 0.8.9؛

مثال تحسين العقد {
 مخاطبة [] المسؤولين العامين؛

 وظيفة isUserAdmin (عنوان المستخدم) تُرجع طريقة العرض العام (bool) {
 النموذج (الوحدة الأولى = 0)؛ طول < المشرف؛ i ++) {
            if (admins[i] == user) return true;
        }
        إرجاع خاطئ؛
 }
}

تستخدم الوظيفة المذكورة أعلاه حلقة، والتي تصبح أكثر تكلفة مع إضافة المزيد من المسؤولين. سيستخدم الهيكل الأكثر كفاءة في استخدام الغاز رسم الخرائط:

صلابة
مثال تحسين العقد: محسن {
 تعيين المسؤولين العامين (العنوان = > bool)؛

 وظيفة isUserAdmin (عنوان المستخدم) تُرجع طريقة العرض العام (bool) {
        return admins[user];
    }
}

إعادة استخدام البيانات

عند العمل مع إيثريوم، تذكر أنك تدفع مقابل كل جزء من مساحة التخزين. إذا وجدت نفسك تخزن نفس البيانات في أماكن متعددة، فكر في كيفية تخزينها مرة واحدة والرجوع إليها في مكان آخر.

استخدم المكتبات

المكتبات في Solidity هي أجزاء من التعليمات البرمجية القابلة لإعادة الاستخدام. يمكنهم مساعدتك في كتابة التعليمات البرمجية المعيارية، وبما أنه يتم نشرها مرة واحدة فقط وربطها بعقود أخرى، فيمكنهم توفير الغاز على المدى الطويل.

صلابة
مكتبة SafeMath {
 إضافة وظيفة (الوحدة أ، الوحدة ب) عوائد نقية داخلية (وحدة) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    //... وظائف الرياضيات الأخرى
}

عقد باستخدام الرياضيات الآمنة {
 باستخدام SafeMath للوحدة؛

 القيمة العامة للوحدة؛

 زيادة الوظائف (الوحدة _القيمة) العامة {
        value = value.add(_value);
    }
}

حذف التخزين غير الضروري

تسمح لك الكلمة الرئيسية للحذف في Solidity بإلغاء المتغيرات التي تعيد بعض الغاز. إذا انتهيت من قطعة تخزين معينة، فاحذفها للمطالبة باسترداد هذا المبلغ.

ضع في اعتبارك سجلات الأحداث

في حين أن تخزين البيانات على بلوكتشين يمكن أن يكون مكلفًا، إلا أن تسجيل الأحداث أرخص نسبيًا. إذا كانت لديك بيانات لا تحتاج إلى قراءتها من العقد ولكن يجب التحقق منها، ففكر في استخدام سجلات الأحداث.

تجنب استخدام العمليات باهظة الثمن

بعض العمليات تستهلك كميات أكبر من الغاز من غيرها. على سبيل المثال:

  • تعد مكالمات الوظائف الخارجية أكثر تكلفة من المكالمات الداخلية.
  • يعد التفاعل مع وحدات التخزين أكثر تكلفة من التفاعل مع الذاكرة.
  • يمكن أن تكلف المصفوفات الديناميكية أحيانًا كمية أكبر من الغاز مقارنة بالمصفوفات ذات الحجم الثابت.

الاستنتاج

يعد تحسين العقود الذكية للغاز فنًا وعلمًا في نفس الوقت. إن الأساليب التي تمت مناقشتها في هذه الدورة، عند دمجها، لديها القدرة على خفض تكاليف الغاز لعقودك بشكل كبير. ضع في اعتبارك أن نظام Ethereum البيئي وأدواته، بما في ذلك Remix، تتغير دائمًا. ابق على اطلاع واختبر عقودك وقم بتحسينها على أساس منتظم للتحسين. مجتمع إيثريوم كبير ومفيد، لذلك لا تخف أبدًا من طلب التوجيه أو أفضل الممارسات. استمتع بالترميز!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 5

خاتمة تحسين العقد الذكي - نصائح وحيل متقدمة

في دروسنا السابقة، قمنا بتغطية المفاهيم الأساسية والأدوات التي تحتاجها لتحسين الغاز في عقود إيثريوم الذكية، وخاصة باستخدام Remix IDE. بينما نختتم هذه الدورة، دعونا نتعمق في بعض التقنيات المتقدمة وأفضل الممارسات. سيجمع هذا الدرس الأخير بين المعرفة التي جمعناها، مما يضمن حصولك على فهم شامل لتحسين الغاز في عقود إيثريوم الذكية.

إعادة الهيكلة وتقليل تعقيد التعليمات البرمجية

واحدة من أكثر الطرق المباشرة لتوفير الغاز هي جعل التعليمات البرمجية أكثر بساطة. كلما قل عدد التعليمات البرمجية المطلوب تنفيذها، قل استهلاك الغاز.

مثال الممارسة

خذ بعين الاعتبار الوظيفة التالية:

صلابة
صلابة البراغما ^ 0.8.9؛

مثال تحسين العقد {
 مخاطبة [] المسؤولين العامين؛

 وظيفة isUserAdmin (عنوان المستخدم) تُرجع طريقة العرض العام (bool) {
 النموذج (الوحدة الأولى = 0)؛ طول < المشرف؛ i ++) {
            if (admins[i] == user) return true;
        }
        إرجاع خاطئ؛
 }
}

تستخدم الوظيفة المذكورة أعلاه حلقة، والتي تصبح أكثر تكلفة مع إضافة المزيد من المسؤولين. سيستخدم الهيكل الأكثر كفاءة في استخدام الغاز رسم الخرائط:

صلابة
مثال تحسين العقد: محسن {
 تعيين المسؤولين العامين (العنوان = > bool)؛

 وظيفة isUserAdmin (عنوان المستخدم) تُرجع طريقة العرض العام (bool) {
        return admins[user];
    }
}

إعادة استخدام البيانات

عند العمل مع إيثريوم، تذكر أنك تدفع مقابل كل جزء من مساحة التخزين. إذا وجدت نفسك تخزن نفس البيانات في أماكن متعددة، فكر في كيفية تخزينها مرة واحدة والرجوع إليها في مكان آخر.

استخدم المكتبات

المكتبات في Solidity هي أجزاء من التعليمات البرمجية القابلة لإعادة الاستخدام. يمكنهم مساعدتك في كتابة التعليمات البرمجية المعيارية، وبما أنه يتم نشرها مرة واحدة فقط وربطها بعقود أخرى، فيمكنهم توفير الغاز على المدى الطويل.

صلابة
مكتبة SafeMath {
 إضافة وظيفة (الوحدة أ، الوحدة ب) عوائد نقية داخلية (وحدة) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    //... وظائف الرياضيات الأخرى
}

عقد باستخدام الرياضيات الآمنة {
 باستخدام SafeMath للوحدة؛

 القيمة العامة للوحدة؛

 زيادة الوظائف (الوحدة _القيمة) العامة {
        value = value.add(_value);
    }
}

حذف التخزين غير الضروري

تسمح لك الكلمة الرئيسية للحذف في Solidity بإلغاء المتغيرات التي تعيد بعض الغاز. إذا انتهيت من قطعة تخزين معينة، فاحذفها للمطالبة باسترداد هذا المبلغ.

ضع في اعتبارك سجلات الأحداث

في حين أن تخزين البيانات على بلوكتشين يمكن أن يكون مكلفًا، إلا أن تسجيل الأحداث أرخص نسبيًا. إذا كانت لديك بيانات لا تحتاج إلى قراءتها من العقد ولكن يجب التحقق منها، ففكر في استخدام سجلات الأحداث.

تجنب استخدام العمليات باهظة الثمن

بعض العمليات تستهلك كميات أكبر من الغاز من غيرها. على سبيل المثال:

  • تعد مكالمات الوظائف الخارجية أكثر تكلفة من المكالمات الداخلية.
  • يعد التفاعل مع وحدات التخزين أكثر تكلفة من التفاعل مع الذاكرة.
  • يمكن أن تكلف المصفوفات الديناميكية أحيانًا كمية أكبر من الغاز مقارنة بالمصفوفات ذات الحجم الثابت.

الاستنتاج

يعد تحسين العقود الذكية للغاز فنًا وعلمًا في نفس الوقت. إن الأساليب التي تمت مناقشتها في هذه الدورة، عند دمجها، لديها القدرة على خفض تكاليف الغاز لعقودك بشكل كبير. ضع في اعتبارك أن نظام Ethereum البيئي وأدواته، بما في ذلك Remix، تتغير دائمًا. ابق على اطلاع واختبر عقودك وقم بتحسينها على أساس منتظم للتحسين. مجتمع إيثريوم كبير ومفيد، لذلك لا تخف أبدًا من طلب التوجيه أو أفضل الممارسات. استمتع بالترميز!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.