تحليل طريقة حساب تكلفة GAS على السلسلة الأولى من لغة MOVE
كان من المقرر أن تعمل النسخة المبكرة من لغة MOVE في بيئة بدون GAS، لذا لم تكن مستعدة لآلية GAS. مؤخرًا، صمم فريق من أحد سلاسل الكتل خطة GAS الأولى للغة MOVE الخاصة بهم، والتي تُعرف بأنها "محاولة مغامرة".
في هذا الاقتراح الخاص بالغاز، أوضح فريق التصميم مبادئ التصميم، وعمليات التنفيذ، وطريقة حساب الغاز، وآلية التعديلات المستقبلية، وأعربوا عن ترحيبهم بمقترحات المجتمع.
قياس GAS هو مفهوم أساسي في العديد من سلاسل الكتل، حيث يحدد بشكل تجريدي كمية الموارد الحسابية والتخزينية اللازمة لتنفيذ وتخزين المعاملات داخل السلسلة. تحدد خطة GAS تكلفة جميع العمليات التنفيذية داخل السلسلة، وتستخدم لحساب نفقات GAS أثناء تنفيذ المعاملة.
تنفيذ العملية
من أجل التنفيذ الفعال، تشمل العمليات داخل السلسلة ما يلي:
تعريف مبادئ التصميم
إعداد إطار التقييم، وتحديد سعر كل عملية تنفيذ
إنشاء نظام قياس GAS لـ MOVE وجبر GAS الآمن
استيراد إطار GAS العلوي داخل السلسلة
جعل إطار GAS يمتلك القدرة على إدراك التخزين
تحسين خطة GAS بشكل أكبر
مبادئ التصميم
يجب أن تكون تكلفة التشغيل مرتبطة مباشرة بالموارد المتاحة على الشبكة (مثل CPU والذاكرة والشبكة وتخزين I/O واستخدام المساحة وغيرها). مع تحسين التكنولوجيا والعمليات، يجب أن تنخفض تكلفة GAS correspondingly.
يجب أن يتم تعيين GAS من خلال داخل السلسلة، ويمكن تكوينه بسلاسة.
GAS يمكن أن يمنع هجمات DoS على الموارد الثابتة للشبكة، ويمكن تعديله بسرعة من خلال الحوكمة بناءً على حالة الشبكة.
يجب أن تعكس أسعار الغاز رؤية تسريع النمو والحفاظ على انتشار داخل السلسلة.
تشجيع اتخاذ خيارات ممتازة في التصميم، مثل إعطاء الأولوية للأمان، والتجزئة، والافتراضات، وغيرها.
طريقة حساب GAS
عند تقديم المستخدم للمعاملة، يجب تحديد قيمتين:
الحد الأقصى لعدد GAS: الحد الأقصى لوحدات GAS التي يرغب المستخدم في دفعها لتنفيذ المعاملة.
سعر وحدة GAS: يتم حسابه بالثماني لكل وحدة GAS، 1 ثماني = 0.00000001 من الرمز الأصلي.
سيتم فرض رسوم أثناء تنفيذ الصفقة:
التكاليف الثابتة: تكاليف الأساس بالإضافة إلى الرسوم الإضافية للمعاملات الكبيرة
تكلفة التنفيذ: تستخدم لتنفيذ تعليمات MOVE
تكلفة القراءة: تكلفة قراءة البيانات من التخزين الدائم
تكلفة الكتابة: تكلفة كتابة البيانات إلى التخزين الدائم
إجمالي رسوم المعاملة = إجمالي كمية الغاز المستهلكة × سعر الغاز
على سبيل المثال، إذا كانت معاملة تستهلك 670 وحدة من GAS، وكانت سعر وحدة GAS المحدد من قبل المستخدم هو 100 Octa/وحدة، فإن التكلفة النهائية ستكون 670 × 100 = 67000 Octa = 0.00067 من الرموز الأصلية.
إذا نفد GAS أثناء تنفيذ الصفقة، سيتم فرض رسوم على المرسل وفقًا لأقصى مقدار من GAS، وسيتم إلغاء جميع التغييرات.
شرح خطة GAS
الإعدادات الأساسية
تتضمن خطة GAS بعض المكونات التي لا تتعلق بعملية واحدة، مثل حجم المعاملة والحد الأقصى لوحدات GAS.
حجم الصفقة
تتراوح معظم أحجام المعاملات في مستوى الكيلوبايت. قد يصل إصدار وحدة MOVE إلى عدة kilobytes، بينما يكون إطار العمل حوالي 100KB. تتراوح وحدات المستخدم عادةً بين 4KB و40KB. تم تعيين حجم المعاملة الأولي على 32KB، ثم تم تعديله إلى 64KB بناءً على ملاحظات المجتمع، لتبسيط تطوير التطبيقات.
ستزيد المعاملات الكبيرة من تكلفة عرض النطاق الترددي للشبكة وقد تؤثر على الأداء. لتحقيق التوازن بين الحجم وسهولة الوصول، قد تتجاهل مجموعة الذاكرة المعاملات الكبيرة.
الحد الأقصى لوحدات الغاز
تعريف الحد الأقصى لوحدات GAS في خطة GAS يحدد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في صفقة واحدة. وهذا يختلف عن الحد الأقصى لمقدار GAS الذي يحدده المستخدم. قد يؤدي تعيين قيمة مرتفعة جدًا إلى مشاكل في الأداء، مثل الحلقات اللانهائية. حاليًا، حتى مع ترقية الإطار إلى أقصى حد، لا يتم استخدام سوى أقل من 90% من الحد الأقصى لوحدات GAS (المحدد بـ 1,000,000).
تقييم تكلفة التنفيذ
استخدم الفريق إطار العمل المرجعي وأداة تحليل Valgrind لتقييم تكلفة التنفيذ، واستخرج التكلفة النسبية لتعليمات MOVE والدوال الأصلية. من خلال النظر في أمثلة الترميز التي تعزز من صلابة النظام وأمانه، تم تحديد عدد التعليمات الآلية النهائية المنفذة.
تكلفة التخزين
تأخذ خطة تخزين GAS في الاعتبار عرض النطاق الترددي للوصول إلى البيانات، وقدرة IOPS، وتكاليف التخزين الدائم. ينطوي الوصول إلى أي عنصر حالة على تكاليف مرتبطة بالتحقق من حالة السلسلة. صيغة حساب رسوم تخزين GAS هي:
تخزين رسوم GAS = رسوم المشروع + ( رسوم بايت × عدد البايت )
عمليات القراءة، الإنشاء والكتابة
القراءة: العملية الأكثر شيوعًا، يتم معايرة الرسوم بناءً على IOPS القرص وسعة النطاق الترددي.
الإنشاء: إضافة عناصر جديدة إلى تخزين الحالة، التكلفة الأعلى، حسب ضبط مساحة القرص الشبكي.
الكتابة: تحديث العناصر الموجودة، تكلفة البايت مشابهة لإنشاء.
تُقيّم تكاليف التخزين ذات الصلة بناءً على كل معاملة، حتى لو تمت قراءة/كتابة نفس المورد عدة مرات، يتم فرض رسوم مرة واحدة فقط.
المشاركة المجتمعية
كجزء من مشروع المجتمع، يمكن للأعضاء:
الإشارة إلى النقاط غير المعقولة في خطة GAS
طرح المخاوف والمشاركة في المناقشة
التصويت على مقترحات الإدارة ذات الصلة
تعديل تكلفة GAS
تعتبر خطة GAS تخزين مكون داخل السلسلة، ويمكن تغييرها من خلال مقترحات الحوكمة. تم تصميمها لتكون قابلة للتوسع، مما يسمح بالتحديثات من خلال الحوكمة. مع تقدم التكنولوجيا وردود فعل المستخدمين، يمكن تعديل معايير GAS مع مرور الوقت.
قد تتطلب التغييرات المعقدة في صيغة GAS تحديث برامج العقدة، والتمييز من خلال العلامات الجديدة لخصائص GAS. يتطلب ذلك اعتماد مشغلي العقدة على الإصدار الجديد بشكل واسع، والموافقة على الاستخدام من خلال مقترحات الحوكمة.
العمل في المستقبل
كأول إطار GAS للغة MOVE، وضعت هذه التصميم الأساس للعمل في المستقبل:
خفض تكاليف التنفيذ: من خلال تحسين كفاءة المترجم والآلة الافتراضية.
حساب GAS متعدد الأبعاد: يسمح للمستخدمين بتحديد ميزانية منفصلة للتنفيذ والتخزين، لتحقيق تعريف أكثر دقة لسعر GAS الأقصى.
تخفيف حالة التضخم: استكشاف مفهوم TTL لكل مشروع، عند انتهاء TTL، يتم حذف العناصر غير المتاحة تلقائيًا، لتشجيع المطورين على تنظيف البيانات داخل السلسلة.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 22
أعجبني
22
7
مشاركة
تعليق
0/400
CommunityLurker
· منذ 9 س
نقل دفعة البقر
شاهد النسخة الأصليةرد0
RugPullAlertBot
· منذ 17 س
يبدو أن تكلفة Rug Pull ستبدأ بالارتفاع مرة أخرى
شاهد النسخة الأصليةرد0
GateUser-3824aa38
· 07-06 09:00
توفير الغاز هو كل ما في الأمر
شاهد النسخة الأصليةرد0
CascadingDipBuyer
· 07-06 08:56
ثور啊 终于有人管غاز了
شاهد النسخة الأصليةرد0
GigaBrainAnon
· 07-06 08:54
هذا الغاز قوي للغاية، غالي لدرجة أن ساقي ضعفت.
شاهد النسخة الأصليةرد0
ZkSnarker
· 07-06 08:53
حسناً، تقنياً، فإن هذا النموذج الغازي هو مجرد zkvm مع خطوات إضافية
شاهد النسخة الأصليةرد0
RugpullAlertOfficer
· 07-06 08:38
ما هي اللعبة الجديدة التي يمكن أن تكون عبارة عن Rug Pull؟
آلية GAS التي ابتكرتها لغة MOVE: تحليل شامل لخطط تحصيل الموارد داخل السلسلة
تحليل طريقة حساب تكلفة GAS على السلسلة الأولى من لغة MOVE
كان من المقرر أن تعمل النسخة المبكرة من لغة MOVE في بيئة بدون GAS، لذا لم تكن مستعدة لآلية GAS. مؤخرًا، صمم فريق من أحد سلاسل الكتل خطة GAS الأولى للغة MOVE الخاصة بهم، والتي تُعرف بأنها "محاولة مغامرة".
في هذا الاقتراح الخاص بالغاز، أوضح فريق التصميم مبادئ التصميم، وعمليات التنفيذ، وطريقة حساب الغاز، وآلية التعديلات المستقبلية، وأعربوا عن ترحيبهم بمقترحات المجتمع.
قياس GAS هو مفهوم أساسي في العديد من سلاسل الكتل، حيث يحدد بشكل تجريدي كمية الموارد الحسابية والتخزينية اللازمة لتنفيذ وتخزين المعاملات داخل السلسلة. تحدد خطة GAS تكلفة جميع العمليات التنفيذية داخل السلسلة، وتستخدم لحساب نفقات GAS أثناء تنفيذ المعاملة.
تنفيذ العملية
من أجل التنفيذ الفعال، تشمل العمليات داخل السلسلة ما يلي:
مبادئ التصميم
يجب أن تكون تكلفة التشغيل مرتبطة مباشرة بالموارد المتاحة على الشبكة (مثل CPU والذاكرة والشبكة وتخزين I/O واستخدام المساحة وغيرها). مع تحسين التكنولوجيا والعمليات، يجب أن تنخفض تكلفة GAS correspondingly.
يجب أن يتم تعيين GAS من خلال داخل السلسلة، ويمكن تكوينه بسلاسة.
GAS يمكن أن يمنع هجمات DoS على الموارد الثابتة للشبكة، ويمكن تعديله بسرعة من خلال الحوكمة بناءً على حالة الشبكة.
يجب أن تعكس أسعار الغاز رؤية تسريع النمو والحفاظ على انتشار داخل السلسلة.
تشجيع اتخاذ خيارات ممتازة في التصميم، مثل إعطاء الأولوية للأمان، والتجزئة، والافتراضات، وغيرها.
طريقة حساب GAS
عند تقديم المستخدم للمعاملة، يجب تحديد قيمتين:
سيتم فرض رسوم أثناء تنفيذ الصفقة:
إجمالي رسوم المعاملة = إجمالي كمية الغاز المستهلكة × سعر الغاز
على سبيل المثال، إذا كانت معاملة تستهلك 670 وحدة من GAS، وكانت سعر وحدة GAS المحدد من قبل المستخدم هو 100 Octa/وحدة، فإن التكلفة النهائية ستكون 670 × 100 = 67000 Octa = 0.00067 من الرموز الأصلية.
إذا نفد GAS أثناء تنفيذ الصفقة، سيتم فرض رسوم على المرسل وفقًا لأقصى مقدار من GAS، وسيتم إلغاء جميع التغييرات.
شرح خطة GAS
تتضمن خطة GAS بعض المكونات التي لا تتعلق بعملية واحدة، مثل حجم المعاملة والحد الأقصى لوحدات GAS.
تتراوح معظم أحجام المعاملات في مستوى الكيلوبايت. قد يصل إصدار وحدة MOVE إلى عدة kilobytes، بينما يكون إطار العمل حوالي 100KB. تتراوح وحدات المستخدم عادةً بين 4KB و40KB. تم تعيين حجم المعاملة الأولي على 32KB، ثم تم تعديله إلى 64KB بناءً على ملاحظات المجتمع، لتبسيط تطوير التطبيقات.
ستزيد المعاملات الكبيرة من تكلفة عرض النطاق الترددي للشبكة وقد تؤثر على الأداء. لتحقيق التوازن بين الحجم وسهولة الوصول، قد تتجاهل مجموعة الذاكرة المعاملات الكبيرة.
تعريف الحد الأقصى لوحدات GAS في خطة GAS يحدد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في صفقة واحدة. وهذا يختلف عن الحد الأقصى لمقدار GAS الذي يحدده المستخدم. قد يؤدي تعيين قيمة مرتفعة جدًا إلى مشاكل في الأداء، مثل الحلقات اللانهائية. حاليًا، حتى مع ترقية الإطار إلى أقصى حد، لا يتم استخدام سوى أقل من 90% من الحد الأقصى لوحدات GAS (المحدد بـ 1,000,000).
استخدم الفريق إطار العمل المرجعي وأداة تحليل Valgrind لتقييم تكلفة التنفيذ، واستخرج التكلفة النسبية لتعليمات MOVE والدوال الأصلية. من خلال النظر في أمثلة الترميز التي تعزز من صلابة النظام وأمانه، تم تحديد عدد التعليمات الآلية النهائية المنفذة.
تأخذ خطة تخزين GAS في الاعتبار عرض النطاق الترددي للوصول إلى البيانات، وقدرة IOPS، وتكاليف التخزين الدائم. ينطوي الوصول إلى أي عنصر حالة على تكاليف مرتبطة بالتحقق من حالة السلسلة. صيغة حساب رسوم تخزين GAS هي:
تخزين رسوم GAS = رسوم المشروع + ( رسوم بايت × عدد البايت )
تُقيّم تكاليف التخزين ذات الصلة بناءً على كل معاملة، حتى لو تمت قراءة/كتابة نفس المورد عدة مرات، يتم فرض رسوم مرة واحدة فقط.
المشاركة المجتمعية
كجزء من مشروع المجتمع، يمكن للأعضاء:
تعديل تكلفة GAS
تعتبر خطة GAS تخزين مكون داخل السلسلة، ويمكن تغييرها من خلال مقترحات الحوكمة. تم تصميمها لتكون قابلة للتوسع، مما يسمح بالتحديثات من خلال الحوكمة. مع تقدم التكنولوجيا وردود فعل المستخدمين، يمكن تعديل معايير GAS مع مرور الوقت.
قد تتطلب التغييرات المعقدة في صيغة GAS تحديث برامج العقدة، والتمييز من خلال العلامات الجديدة لخصائص GAS. يتطلب ذلك اعتماد مشغلي العقدة على الإصدار الجديد بشكل واسع، والموافقة على الاستخدام من خلال مقترحات الحوكمة.
العمل في المستقبل
كأول إطار GAS للغة MOVE، وضعت هذه التصميم الأساس للعمل في المستقبل:
خفض تكاليف التنفيذ: من خلال تحسين كفاءة المترجم والآلة الافتراضية.
حساب GAS متعدد الأبعاد: يسمح للمستخدمين بتحديد ميزانية منفصلة للتنفيذ والتخزين، لتحقيق تعريف أكثر دقة لسعر GAS الأقصى.
تخفيف حالة التضخم: استكشاف مفهوم TTL لكل مشروع، عند انتهاء TTL، يتم حذف العناصر غير المتاحة تلقائيًا، لتشجيع المطورين على تنظيف البيانات داخل السلسلة.