تحليل العقود الذكية 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

يجب على المقترح تقديم المعلومات التفصيلية التالية:

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

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

تشمل خصائص الاقتراح الكاملة: المقترح، الحالة، وقت البدء، حالة التصويت، إلخ.

من المهم ملاحظة أن Sputnik-DAO يتطلب من مقدمي الاقتراحات رهن مبلغ معين من رموز NEAR كضمان. سيتم رد هذا المبلغ المرهون إلى مقدمي الاقتراحات عند انتهاء الاقتراح بشكل طبيعي.

!

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

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

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

  • VoteApprove: تعني الموافقة
  • VoteReject: تعني الرفض
  • VoteRemove: يعتقد أن هذا الاقتراح غير ذي معنى، ويجب إزالته

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

  • سيتم تنفيذ الاقتراحات في حالة الموافقة
  • سيتم تنفيذ العمليات النهائية للاقتراحات التي في حالة Rejected أو Removed

سيتم إزالة المقترحات ذات الحالة Removed مباشرة من مجموعة المقترحات دون استرداد الوديعة. ستظل المقترحات ذات الحالة Rejected في المجموعة وسيتم استرداد الوديعة.

!

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

سيقوم الاقتراح بحالة الموافقة باستدعاء دالة internal_execute_proposal() لتنفيذ محتوى القرار.

يدعم Sputnik-DAO أنواعًا متعددة من الاقتراحات، تركز هذه المقالة على نوعين نموذجيين:

3.1 تنفيذ اقتراح دالة العقد

يمكن أن يقوم اقتراح من نوع FunctionCall بتنفيذ طريقة عقد محددة. يقوم مقدم الاقتراح بتمرير عملية الوظيفة التي سيتم تنفيذها عبر ProposalInput عند الإنشاء (actions).

يمكن لكل إجراء تحديد اسم طريقة العقد والمعلمات. يعتمد Sputnik-DAO على شكل الإجراءات المجتمعة (Promise Batch Actions) لإكمال تنفيذ الدالة.

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

يمكن لمقترحات نوع النقل نقل الرموز المميزة المتراكمة في حساب العقد (NEAR أو الرموز المميزة القياسية NEP-141 ) إلى الحساب المحدد.

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

!

4. الملخص

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

!

ACT-2.64%
BATCH1.17%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 3
  • إعادة النشر
  • مشاركة
تعليق
0/400
airdrop_whisperervip
· منذ 19 س
تزداد شعبية مجتمع near!
شاهد النسخة الأصليةرد0
OnchainUndercovervip
· 08-09 06:55
near نظام حمقى BTC لا تزعج
شاهد النسخة الأصليةرد0
OnChainArchaeologistvip
· 08-09 06:32
near لا تزال تتنافس
شاهد النسخة الأصليةرد0
  • تثبيت