Sputnik DAOスマートコントラクト提案機構デプス解析

robot
概要作成中

Rustスマートコントラクト開発日記 (11):スプートニクDAO提案メカニズムの解釈

Sputnik-DAOはNEAR Protocolのインフラストラクチャーとして、NEARエコシステムの「去中心化」への発展を強力に推進しています。現在、このプラットフォームは多くのNEARプロジェクトの「去中心化」自治コミュニティを促成しており、同時に完全で柔軟かつ効率的なコミュニティ意思決定ガバナンスプランを提供しています。

Sputnikdaov2は、Sputnik-DAOコミュニティのガバナンス投票に使用されるスマートコントラクトです。本稿では、この契約のコア概念である提案(Proposal)について紹介し、今後の記事では「提案」に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。

!

1. 提案開始

Sputnik-DAO の各メンバーは、プロジェクトのガバナンスや管理について意見を述べたり、提案を提出したりすることができます。持ち株を持つコミュニティメンバーは、提案を審議し、投票することができます。メンバーは、投票や新しい提案を発起することで、プロジェクトの将来の進行に影響を与えることができます。

契約のレベルでは、DAOメンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます:

さび Pub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64

提案者は、以下の(ProposalInput)提案の詳細を提供する必要があります。

  • 提案(Description)のテキスト説明
  • 提案のタイプ(kind)

これらの情報は、add_proposal()メソッドにパラメータとして渡され、このメソッドは検証処理を行い、完全に初期化された提案(Proposal)を生成します。最終的な提案は唯一のproposal_idにバインドされ、コントラクト全体で維持される提案プールに追加されます。

提案の完全な属性情報には、次のものが含まれます:

  • 説明(description)
  • タイプ(kind)
  • 提案者(proposer)
  • ステータス(status)
  • 提出時間 (submission_time)
  • 投票状況(vote_counts、votes)

注意が必要なのは、Sputnik-DAOに提案押金(proposal_bond)の概念が存在することです。契約は提案者がadd_proposal()を呼び出す際に一定額のNEARトークンを担保として預けることを要求します。この押金は提案が正常に終了した際に提案者に返還されます。

!

2. 提案状況

Sputnik-DAOの提案は、さまざまな状態を経る可能性があります:

  • InProgress: 新しい提案の初期ステータス
  • 承認済み:承認済み
  • 拒否された:被否决
  • Removed:削除されました
  • 期限切れ:有効期限が切れています
  • Moved:転送済み
  • 失敗:実行に失敗しました

提案の状態の変化はact_proposal()メソッドによって駆動されます。DAOメンバーはこのメソッドを呼び出して提案に対する投票などの操作を実行できます:

  • VoteApprove:はい
  • VoteReject: 反対
  • VoteRemove:削除します

投票後はpolicy.proposal_status()を呼び出して票を集計します。投票閾値を満たす提案については、状態がそれに応じて変更されます:

  • 承認された状態の提案は実行されます
  • 「却下」または「削除済み」の状態の提案が確定します。

Removed状態の提案は提案プールから削除され、デポジットは返還されません。Rejected状態の提案はプールに残り、デポジットが返還されます。

!

3. プロポーザルの実行

提案のステータスが [承認済み] に変わった場合、act_proposal() は internal_execute_proposal() に電話して提案を実行します。

Sputnik-DAOは、ChangeConfig、ChangePolicy、FunctionCall、Transferなど、さまざまな提案タイプをサポートしています。それぞれのタイプには、対応する処理ブランチがあります。

以下は二つの典型的な提案タイプの処理フローです:

3.1 コントラクト機能実行の提案(FunctionCall)

FunctionCallタイプの提案は、指定されたコントラクトのメソッドを実行できます。提案には実行する関数操作(actions)が含まれており、各アクションにはコントラクトメソッド名とパラメータを指定できます。

最後に、関数呼び出しは Promise バッチ アクションの形式で完了します。

3.2 契約資金移動提案書 (Transfer)

Transferタイプの提案は、契約アカウント内のトークンを指定されたアカウントに移動させることができます。

internal_execute_proposal()はinternal_payout()関数を呼び出して、さまざまな種類のトークンや受け取りアカウントに資金を送金します。

!

4. まとめ

本文はSputnik DAOのスマートコントラクトの核心概念を紹介します——提案(Proposal)、提案の作成、投票、状態変化、実行プロセスを含みます。その後、提案に基づいてSputnik-DAOのガバナンスモデル(Policy)をさらに紹介します。

!

ACT10.51%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • リポスト
  • 共有
コメント
0/400
Layer2Arbitrageurvip
· 7時間前
うーん、別のDAOガバナンスの実装... でもガスの数字を確認したところ、実際にはETHの投票より47%効率的でした。
原文表示返信0
RektButSmilingvip
· 7時間前
これもあまりにもdaoですね
原文表示返信0
MaticHoleFillervip
· 7時間前
DAOプレイヤーは理解している人は理解している
原文表示返信0
UnluckyLemurvip
· 7時間前
nearインフラプレイヤー、行くぞ!
原文表示返信0
AirdropHarvestervip
· 7時間前
nearも整えることができるの?
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)