واحدة من أكثر الطرق المباشرة لتوفير الغاز هي جعل التعليمات البرمجية أكثر بساطة. كلما قل عدد التعليمات البرمجية المطلوب تنفيذها، قل استهلاك الغاز.
خذ بعين الاعتبار الوظيفة التالية:
صلابة
صلابة البراغما ^ 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، تتغير دائمًا. ابق على اطلاع واختبر عقودك وقم بتحسينها على أساس منتظم للتحسين. مجتمع إيثريوم كبير ومفيد، لذلك لا تخف أبدًا من طلب التوجيه أو أفضل الممارسات. استمتع بالترميز!
واحدة من أكثر الطرق المباشرة لتوفير الغاز هي جعل التعليمات البرمجية أكثر بساطة. كلما قل عدد التعليمات البرمجية المطلوب تنفيذها، قل استهلاك الغاز.
خذ بعين الاعتبار الوظيفة التالية:
صلابة
صلابة البراغما ^ 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، تتغير دائمًا. ابق على اطلاع واختبر عقودك وقم بتحسينها على أساس منتظم للتحسين. مجتمع إيثريوم كبير ومفيد، لذلك لا تخف أبدًا من طلب التوجيه أو أفضل الممارسات. استمتع بالترميز!