# Rust Smart Contract 栽培日記 (11):スプートニクDAO提案メカニズムの分析Sputnik-DAO は NEAR Protocol のインフラストラクチャとして、NEAR エコシステムを分散化の方向に進めています。現在、このプラットフォームは複数の NEAR プロジェクトによる自治コミュニティの設立を促進し、完全で柔軟なコミュニティ意思決定ガバナンスのソリューションを提供しています。Sputnikdaov2は、Sputnik-DAOコミュニティガバナンス投票のためのスマートコントラクトです。本記事では、提案(Proposal)というこの契約の核心概念について紹介し、続く記事では提案に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。## 1. 提案開始Sputnik-DAOの各メンバーは、プロジェクトのガバナンス管理について意見を述べたり提案を提出したりすることができます。保有株のあるメンバーは提案を審議し投票することができます。メンバーは投票や提案の発起を通じてプロジェクトの将来の方向性に影響を与えることができます。契約レベルでは、メンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます:さびPub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64提案者は、以下の(ProposalInput)提案の詳細を提供する必要があります。- 提案文説明(Description)- 提案型 (kind)add_proposal() メソッドは検証処理を行い、完全な初期情報を持つ提案(Proposal)を生成し、唯一の proposal_id とバインドして、コントラクトが全体的に管理する Contract.proposals マッピングに追加します。提案の完全な属性情報には次のものが含まれます:- 説明(description) - タイプ(kind)- 提案者(proposer)- ステータス(status)- 開始時刻(submission_time)- 投票状況(vote_counts、votes)契約は提案者が add_proposal() を呼び出す際に一定額のNEARトークンを保証金としてステークすることを要求します。この保証金は提案が正常に終了した際に internal_return_bonds() を通じて返還されます。! [](https://img-cdn.gateio.im/social/moments-84ee9ca630a4cdcdb0d2eb63450a7cf4)## 2. 提案状況Sputnik-DAO における提案は、以下の状態を経る可能性があります:- 初期状態( InProgress) - 承認されました- 拒否されました- 削除されました-期限 切れ - 移動しました-失敗 しました提案の状態変更は act_proposal() メソッドによって駆動されます。メンバーは提案に対して以下の操作を実行できます:- VoteApprove:投票承認- VoteReject: 反対意見 - VoteRemove:意味がないと思われるため、削除する必要があります内部的には、policy.proposal_status()票をカウントし、しきい値を満たす提案のステータスを変更するように求められます。- 承認された状態の提案が実行されます- 終了アクションを実行するための「拒否」または「削除済み」ステータス- 状態提案は提案プールから削除され、デポジットは返金されません- 拒否された状態の提案は提案プールに留まり、デポジットは返還されます! [](https://img-cdn.gateio.im/social/moments-427716593b21fa32b47855ceb5e101fc)## 3. プロポーザルの実行 ステータスが Approved の提案は internal_execute_proposal() を通じて意思決定内容を実行します。サポートされている提案タイプには以下が含まれます:- チェンジコンフィグ- 変更方針 - メンバーToロールを追加- RemoveMemberFromRole (メンバーからロールを削除)- ファンクションコール- アップグレードセルフ- アップグレードリモート-移転- ステーキング契約を設定する- AddBounty(アッドバウンティ)- バウンティ完了-表決- 工場情報更新- ChangePolicyAddOrUpdateRole- ChangePolicyRemoveRole (変更ポリシー削除ロール) - ChangePolicyUpdateDefaultVotePolicy- ChangePolicyUpdateParameters (変更ポリシー更新パラメーター)以下に2つの典型的な提案タイプの処理プロセスを紹介します:### 3.1 コントラクト関数実行提案FunctionCall タイプの提案は、作成時に実行する関数操作(actions)を渡しました。内部には、契約のメソッド名とパラメータを指定する複数の ActionCall オブジェクトを含むことができます。Sputnik-DAOは、Promise Batch Actionsという形でコントラクト機能実行型提案の実行を完了します。### 3.2 契約資金移動の提案 Transfer タイプの提案は、契約アカウントに蓄積されたトークンを指定された receiver_id に転送するために使用されます。Transferタイプのプロポーザルの処理internal_execute_proposal()、internal_payout()関数を呼び出して、さまざまなタイプのFungible Tokenを実装し、 receiver_id。! [](https://img-cdn.gateio.im/social/moments-ef0b959c42e1f5fc6263cd4a86fd078e)## 4. まとめ本文は、Sputnik DAO スマートコントラクトの核心概念提案(Proposal)を紹介します。これには、提案の作成、投票の実行、状態変化のルールが含まれます。今後は、提案に基づいて Sputnik-DAO ガバナンスモデル(Policy)の実装と構成について詳述します。! [](https://img-cdn.gateio.im/social/moments-eb73d5e15f6161f0a4b442cd4b99a91e)
Sputnik DAOスマートコントラクト提案機構解析:発起から実行までの全プロセス
Rust Smart Contract 栽培日記 (11):スプートニクDAO提案メカニズムの分析
Sputnik-DAO は NEAR Protocol のインフラストラクチャとして、NEAR エコシステムを分散化の方向に進めています。現在、このプラットフォームは複数の NEAR プロジェクトによる自治コミュニティの設立を促進し、完全で柔軟なコミュニティ意思決定ガバナンスのソリューションを提供しています。
Sputnikdaov2は、Sputnik-DAOコミュニティガバナンス投票のためのスマートコントラクトです。本記事では、提案(Proposal)というこの契約の核心概念について紹介し、続く記事では提案に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。
1. 提案開始
Sputnik-DAOの各メンバーは、プロジェクトのガバナンス管理について意見を述べたり提案を提出したりすることができます。保有株のあるメンバーは提案を審議し投票することができます。メンバーは投票や提案の発起を通じてプロジェクトの将来の方向性に影響を与えることができます。
契約レベルでは、メンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます:
さび Pub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64
提案者は、以下の(ProposalInput)提案の詳細を提供する必要があります。
add_proposal() メソッドは検証処理を行い、完全な初期情報を持つ提案(Proposal)を生成し、唯一の proposal_id とバインドして、コントラクトが全体的に管理する Contract.proposals マッピングに追加します。
提案の完全な属性情報には次のものが含まれます:
契約は提案者が add_proposal() を呼び出す際に一定額のNEARトークンを保証金としてステークすることを要求します。この保証金は提案が正常に終了した際に internal_return_bonds() を通じて返還されます。
!
2. 提案状況
Sputnik-DAO における提案は、以下の状態を経る可能性があります:
提案の状態変更は act_proposal() メソッドによって駆動されます。メンバーは提案に対して以下の操作を実行できます:
内部的には、policy.proposal_status()票をカウントし、しきい値を満たす提案のステータスを変更するように求められます。
!
3. プロポーザルの実行
ステータスが Approved の提案は internal_execute_proposal() を通じて意思決定内容を実行します。サポートされている提案タイプには以下が含まれます:
以下に2つの典型的な提案タイプの処理プロセスを紹介します:
3.1 コントラクト関数実行提案
FunctionCall タイプの提案は、作成時に実行する関数操作(actions)を渡しました。内部には、契約のメソッド名とパラメータを指定する複数の ActionCall オブジェクトを含むことができます。
Sputnik-DAOは、Promise Batch Actionsという形でコントラクト機能実行型提案の実行を完了します。
3.2 契約資金移動の提案
Transfer タイプの提案は、契約アカウントに蓄積されたトークンを指定された receiver_id に転送するために使用されます。
Transferタイプのプロポーザルの処理internal_execute_proposal()、internal_payout()関数を呼び出して、さまざまなタイプのFungible Tokenを実装し、 receiver_id。
!
4. まとめ
本文は、Sputnik DAO スマートコントラクトの核心概念提案(Proposal)を紹介します。これには、提案の作成、投票の実行、状態変化のルールが含まれます。今後は、提案に基づいて Sputnik-DAO ガバナンスモデル(Policy)の実装と構成について詳述します。
!