MOVE ابتكرت تصميم GAS: تحليل طريقة حساب استهلاك الموارد داخل السلسلة

robot
إنشاء الملخص قيد التقدم

تصميم GAS الأول في لغة MOVE: طريقة حساب تكلفة GAS داخل السلسلة

كانت النسخة السابقة من لغة MOVE مخططة للعمل بدون GAS، لذلك لم تكن مستعدة لخطط GAS. مؤخرًا، تم إنشاء خطة GAS لشبكة عامة معينة، وهي أول تصميم GAS بلغة MOVE، وأطلق عليها اسم "مغامرة".

توضح هذه الخطة GAS مبادئ إعداد GAS والعمليات وطرق الحساب والتعديلات اللاحقة وأخذ اقتراحات المجتمع في الاعتبار.

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

عملية

لضمان التنفيذ الفعال, داخل السلسلة العملية كما يلي:

  1. تعريف المبادئ
  2. إعداد إطار التقييم، وتحديد سعر كل تنفيذ
  3. إنشاء نظام قياس GAS و代数 GAS لـ MOVE
  4. استيراد إطار GAS العلوي
  5. جعل إطار GAS واعياً بالتخزين
  6. مزيد من التحديد لخطة GAS

مبادئ

المبادئ المحددة تشمل:

  1. يجب أن تكون تكاليف التشغيل مرتبطة مباشرة بالموارد المتاحة على الشبكة، وتقل مع التقدم التكنولوجي.
  2. يجب أن يتم تعيين GAS من خلال داخل السلسلة، ويمكن تكوينه بسلاسة
  3. GAS يمكن أن يمنع هجمات DoS، ويمكن تعديله بسرعة بناءً على حالة الشبكة.
  4. يجب أن تعكس أسعار GAS رؤية النمو المتسارع والحفاظ على إمكانية الوصول إلى داخل السلسلة.
  5. تشجيع اتخاذ خيارات جيدة في التصميم، مثل إعطاء الأولوية للأمان، والتجزئة، وما إلى ذلك

حساب GAS

عند تقديم المستخدم للمعاملة، يجب تحديد:

  • الحد الأقصى لعدد GAS: العدد الأقصى لوحدات GAS التي يرغب المستخدم في إنفاقها لتنفيذ المعاملة
  • سعر GAS: يتم حسابه بالثمانية لكل وحدة GAS، 1 ثماني = 0.00000001 APT

سيتم فرض رسوم خلال تنفيذ الصفقة:

  1. التكاليف الثابتة
  2. تكلفة تنفيذ MOVE
  3. تكلفة قراءة البيانات من التخزين الدائم
  4. تكلفة كتابة البيانات إلى التخزين الدائم

تكلفة المعاملة النهائية = إجمالي كمية GAS المستهلكة × سعر GAS

على سبيل المثال، إذا استهلكت الصفقة 670 وحدة GAS، وكان سعر GAS المحدد من قبل المستخدم هو 100 Octa/وحدة، فإن التكلفة النهائية ستكون 670 × 100 = 67000 Octa = 0.00067 APT.

إذا نفدت GAS أثناء تنفيذ المعاملة، سيتم خصم أقصى كمية من GAS من المرسل، وسيتم استعادة التغييرات التي أجرتها المعاملة.

إنشاء جدول خطة GAS

  1. التكوين الأساسي

تتضمن خطة GAS مكونات غير مرتبطة بعملية فردية، مثل حجم المعاملة والحد الأقصى لوحدات GAS.

  1. حجم الصفقة

معظم أحجام المعاملات تكون في مستوى الكيلوبايت. يمكن أن تصل وحدات MOVE إلى عدة آلاف من الكيلوبايت، بينما إطار عمل معين حوالي 100 كيلوبايت. عادةً ما تتراوح وحدات المستخدم بين 4-40 كيلوبايت. تم تعيين قيمة حجم المعاملة الأولية على 32 كيلوبايت، ثم تم تعديلها إلى 64 كيلوبايت بناءً على ملاحظات المجتمع.

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

  1. الحد الأقصى لوحدة GAS

تعريف الحد الأقصى لوحدات GAS في خطة GAS يحدد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في معاملة واحدة. قد يؤثر ضبطه مرتفعًا جدًا سلبًا على أداء داخل السلسلة. وفقًا للاختبارات، حتى مع إجراء ترقية إطار الحد الأقصى، يتم استخدام أقل من 90% فقط من الحد الأقصى لوحدات GAS ( المحدد بـ 1,000,000).

  1. تنفيذ

من خلال بناء إطار مرجعي واستخدام Valgrind لتحليل Move VM لتقييم تكاليف التنفيذ. المخرجات هي شفرة مصدرية مع تعليقات، توضح عدد التعليمات الآلية الناتجة عن كل سطر من الشفرة.

بناءً عليه، يتم تقدير التكلفة النسبية لجميع تعليمات MOVE والدوال المدمجة بشكل تقريبي. لاحظ أنه توجد بعض المشكلات المتعلقة بالدوال المدمجة، يمكن حلها من خلال جمع الأرقام.

في النهاية، من خلال مراعاة أمثلة الترميز التي تعزز من متانة النظام وأمانه، يتم التوصل إلى عدد تعليمات الآلة المنفذة. يتم مقارنة هذا الرقم مع التخزين والحد الأقصى لوحدات GAS، لتحديد القيمة الحالية في خطة GAS.

  1. التخزين

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

إن الوصول إلى أي عنصر حالة وتخزينه يحمل تكلفة مرتبطة بالهيكل البياني الذي يتحقق من حالة سلسلة الكتل بالكامل. هذه التكلفة مرتبطة بأساس العناصر المختلفة ($2^{256}$). وهناك أيضًا تكلفة تتناسب مع حجم كل عنصر.

استثناءات الرسوم الخاصة بعمليات عناصر الحالة ( الموضحة في القسم التالي هي:

رسوم تخزين الغاز = item_fee + )byte_fee × bytes(

) قراءة، إنشاء وكتابة

تنقسم أنواع الوصول إلى الحالة إلى ثلاثة أنواع: القراءة، الإنشاء أو الكتابة. يتم فرض رسوم على الوصول حسب رسوم المشروع ورسوم البايت.

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

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

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

تكاليف التخزين ذات الصلة مبنية على تقييم كل معاملة: حتى لو تم قراءة/كتابة نفس المورد عدة مرات، يتم فرض رسوم مرة واحدة فقط.

استنادًا إلى ما سبق، تم تعريف 6 معلمات GAS لتكوين التكلفة الإجمالية:

  • per_item_read: حسب معايرة IOPs
  • per_byte_read: اعتمادًا على عرض النطاق الترددي الفعلي
  • per_item_create: بحسب المعايرة الإجمالية المستهدفة
  • per_byte_create: ضبط ### لكل مشروع بناءً على الحجم الإجمالي المستهدف مع أول 1KB (
  • per_item_write: مثل per_item_read
  • per_byte_write: مثل per_byte_create

) تكلفة وحدة GAS المستقرة

تتطلب كل عملية ومعاملة تكلفة وحدة ثابتة بالنسبة لتكاليف التخزين والتنفيذ، بغض النظر عن القيمة السوقية المحسوبة بـ APT أو العملات القانونية. تساعد تكلفة وحدة GAS الثابتة في الحفاظ على استقرار خطة GAS وفصلها عن القيمة السوقية الحرة لـ APT. يساعد اختيار عدد دقيق من وحدات GAS في الحفاظ على استقرار خطة GAS. بالنظر إلى ذلك، يتم تمثيل وحدات GAS بدقة حوالي 3 أرقام. لذلك، تبلغ تكلفة معاملة التحويل حوالي 700 وحدة GAS.

المشاركة المجتمعية

يمكن لأعضاء المجتمع:

  1. العثور على أوجه عدم معقولية خطة GAS
  2. طرح المخاوف والمشاركة في المناقشة
  3. التصويت على مقترحات الحوكمة المتعلقة بالغاز

تعديل تكلفة GAS

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

تصميم خطة GAS قابلة للتوسع، وتسمح بالترقيات من خلال مقترحات الحوكمة. مع التحسين المستمر ودمج ملاحظات المستخدمين، يمكن تعديل معلمات GAS مع مرور الوقت.

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

العمل المستقبلي

كأول إطار GAS قابل للتطبيق لـ MOVE، تشمل اتجاهات العمل المستقبلية ما يلي:

  1. تقليل تكاليف التنفيذ: استخدام نموذج GAS الحقيقي لعرض كفاءة المترجم والآلة الافتراضية، وتحسينها لتقليل تكاليف التنفيذ

  2. حساب GAS متعدد الأبعاد: يتيح للمستخدمين تخصيص ميزانية منفصلة للتنفيذ والتخزين، لتجنب دفع أسعار GAS مرتفعة بسبب مشكلات جودة الكود.

  3. تخفيف حالة التخمة: استكشاف مفهوم TTL لكل مشروع، وحذف العناصر غير المُعَزولة عند انتهاء صلاحية TTL

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 7
  • مشاركة
تعليق
0/400
AirdropHunterWangvip
· منذ 9 س
أصبحت الفواتير أكثر تعقيدًا، إنها تتطلب الكثير من التفكير.
شاهد النسخة الأصليةرد0
SchrodingerGasvip
· 07-14 08:30
المطورون لا يزالون يمارسون نظرية الألعاب...غاز لا يزال كابوس الحمقى
شاهد النسخة الأصليةرد0
GweiTooHighvip
· 07-13 22:55
إن رسوم الغاز مرتفعة حقًا ولا يمكن تحملها
شاهد النسخة الأصليةرد0
rugged_againvip
· 07-12 03:48
بدلاً من الحديث عن ذلك، كم يمكن أن ينخفض الغاز؟
شاهد النسخة الأصليةرد0
MetaverseMigrantvip
· 07-12 03:34
تس تس، هل يمكن أن يكون هذا الغاز أكثر تعقيدًا؟
شاهد النسخة الأصليةرد0
NewDAOdreamervip
· 07-12 03:30
جمع المال عكسياً هو أيضاً ألم حياة المبرمج.
شاهد النسخة الأصليةرد0
¯\_(ツ)_/¯vip
· 07-12 03:23
🔥 ما هو المعقد؟
شاهد النسخة الأصليةرد0
  • تثبيت