نوى العقود الذكية Sputnik DAO: تحليل عميق لآلية الاقتراحات

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

Rust العقود الذكية养成日记(11) Sputnik DAO::解析 آلية الاقتراح

Sputnik-DAO هو البنية التحتية التي تقدمها بروتوكول NEAR، والتي تدفع النظام البيئي NEAR نحو الاتجاه اللامركزي. حالياً، قد ساهمت هذه المنصة في إنشاء عدة مشاريع NEAR لمجتمعات الحكم الذاتي اللامركزية، مقدمةً حلولاً كاملة ومرنة لحوكمة القرارات المجتمعية.

Sputnikdaov2 هو عقد ذكي مخصص للتصويت على حوكمة مجتمع Sputnik-DAO. ستقدم هذه المقالة المفاهيم الأساسية لهذا العقد: الاقتراح (Proposal)، وستدور المقالات اللاحقة حول الاقتراح لتقديم أنماط حوكمة المجتمع DAO ذات الصلة (Policy).

!

1. بدء الاقتراح

يمكن لأعضاء مجتمع Sputnik-DAO تقديم آرائهم أو تقديم مقترحات، ويمكن للأعضاء المساهمين الآخرين مراجعة المقترحات والتصويت عليها. يمكن للأعضاء التأثير على اتجاه المشروع المستقبلي من خلال التصويت أو تقديم مقترحات جديدة.

على مستوى العقد، يمكن للأعضاء استدعاء طريقة add_proposal() لعقد sputnikdaov2 لبدء اقتراح جديد:

صدأ حانة fn add_proposal( & mut self ، اقتراح: ProposalInput) -> u64

يجب على المقترح تقديم تفاصيل الاقتراح (ProposalInput):

  • وصف الاقتراح (Description)
  • نوع الاقتراح (kind)

يتم تمرير معلومات الاقتراح كمعامل إلى طريقة add_proposal()، وبعد معالجة التحقق، يتم إنشاء اقتراح كامل (Proposal)، ويرتبط بمعرف الاقتراح الفريد proposal_id، ويضاف إلى مجموعة الاقتراحات التي تحتفظ بها العقود الذكية على مستوى عالمي.

تتضمن معلومات خصائص الاقتراح الكاملة:

  • الوصف: وصف
  • kind:نوع
  • proposer:مقدم الاقتراح
  • status: الحالة ( الافتراضية هي InProgress )
  • submission_time:وقت التقديم
  • vote_counts: عدد الأصوات ( فارغ في البداية )
  • votes: تفاصيل التصويت ( فارغة في البداية )

يوجد في Sputnik-DAO مفهوم إيداع الاقتراح (proposal_bond)، حيث يحتاج مقدم الاقتراح إلى رهن مبلغ معين من رموز NEAR كضمان عند استدعاء add_proposal(). سيتم إعادة هذا الإيداع لمقدم الاقتراح عند انتهاء الاقتراح بشكل طبيعي.

!

2. حالة الاقتراح

قد تمر الاقتراحات في Sputnik-DAO بحالات متعددة، حيث تكون الحالة الأولية هي InProgress. يتم دفع تغييرات الحالة بواسطة طريقة act_proposal().

يمكن للأعضاء استدعاء act_proposal() لتنفيذ العمليات التالية على الاقتراح:

  • VoteApprove:موافقة
  • VoteReject: ضد
  • VoteRemove: يزيل

بعد التصويت، سيقوم البرنامج باستدعاء policy.proposal_status() لإجراء العد. الحالة المقترحة التي تلبي عتبة التصويت ستتغير وفقًا لذلك:

  • Approved: تم الموافقة على internal_execute_proposal() التنفيذ
  • تم الرفض/الإزالة: تم المعالجة من خلال internal_reject_proposal()

ستتم إزالة المقترحات بحالة Removed من مجموعة المقترحات ولن يتم استرداد الوديعة، بينما ستبقى المقترحات بحالة Rejected وسيتم استرداد الوديعة.

!

3. تنفيذ الاقتراح

ستقوم الاقتراحات ذات حالة الموافقة باستدعاء internal_execute_proposal() لتنفيذ محتوى القرار. يدعم Sputnik-DAO أنواعًا متعددة من الاقتراحات، وتقدم هذه المقالة نوعين نموذجيين:

3.1 اقتراح تنفيذ وظيفة العقد ( FunctionCall )

تم تمرير العمليات الوظيفية من نوع FunctionCall عند إنشائها وهي (actions). يقوم internal_execute_proposal() بتنفيذ هذه العمليات على شكل Promise Batch Actions.

3.2 مقترح نقل أموال العقد ( نقل )

اقتراح نوع النقل يُستخدم لنقل الرموز المجمعة في حساب العقد إلى حساب محدد. سيقوم internal_execute_proposal() باستدعاء دالة internal_payout() لتنفيذ عمليات تحويل الرموز المختلفة.

!

4. الخلاصة

تقدم هذه المقالة المفاهيم الأساسية لعقد Sputnik DAO - الاقتراح (Proposal)، بما في ذلك إنشاء الاقتراح، وتغير الحالة، وعملية التنفيذ. سيتم تقديم مزيد من المعلومات حول نمط الحكم في Sputnik-DAO بناءً على الاقتراح (Policy).

!

ACT1.26%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 3
  • مشاركة
تعليق
0/400
ZenChainWalkervip
· منذ 1 س
الطريق إلى جين بالقرب لا يزال بقرة
شاهد النسخة الأصليةرد0
Hash_Banditvip
· 08-01 17:45
التعدين بالقرب من بروتوكول في عام 2020... أوقات جيدة بصراحة
شاهد النسخة الأصليةرد0
RuntimeErrorvip
· 08-01 17:32
متى يمكننا استخدام الإصدار الجديد!
شاهد النسخة الأصليةرد0
  • تثبيت