Analyse des smart contracts du Sputnik DAO : Explication du mécanisme de proposition

robot
Création du résumé en cours

Rust smart contracts养成日记(11):Analyse du mécanisme de proposition de Sputnik DAO

Sputnik-DAO en tant qu'infrastructure du protocole NEAR, promeut le développement de l'écosystème NEAR vers la décentralisation. Actuellement, cette plateforme a facilité l'établissement de plusieurs projets NEAR en communautés autonomes décentralisées et a proposé des solutions de gouvernance décisionnelle communautaire flexibles et efficaces.

Sputnikdaov2 est un smart contracts utilisé pour le vote de gouvernance de la communauté Sputnik-DAO. Cet article introduira les concepts clés de ce contrat : la proposition (Proposal), et dans les articles suivants, nous présenterons les modèles de gouvernance de la communauté DAO liés à la proposition (Policy).

1. Lancement de la proposition

Chaque membre du Sputnik-DAO peut exprimer son opinion ou soumettre une proposition concernant la gestion du projet. Les membres détenteurs de parts peuvent examiner et voter sur les propositions. Les membres peuvent influencer l'orientation du projet par le vote ou en initiant des propositions.

Au niveau des contrats, les membres du DAO peuvent appeler la méthode add_proposal() du contrat sputnikdaov2 pour soumettre une nouvelle proposition. Le proposant doit fournir les détails de la proposition(ProposalInput) :

  • Description du projet (Description)
  • Type de proposition(kind)

Les informations de la proposition seront passées en tant que paramètres dans la méthode add_proposal(), après traitement de validation, générant une proposition complète (Proposal), liée à un identifiant de proposition unique et ajoutée à la carte Contract.proposals maintenue globalement par le contrat.

Les informations complètes sur les attributs de la proposition comprennent :

  • description: description de la proposition
  • kind:type de proposition
  • proposer:proposeur
  • status: état de la proposition, initialement InProgress
  • submission_time: temps de soumission
  • vote_counts: comptage des votes
  • votes: détails du vote

Il est à noter que le Sputnik-DAO a le concept de dépôt de proposition (proposal_bond). Le contrat exige que le proposeur mette en gage une certaine quantité de jetons NEAR comme garantie lors de l'appel de add_proposal(). Ce dépôt sera remboursé au proposeur à la fin normale de la proposition.

2. État de la proposition

Les propositions dans le Sputnik-DAO peuvent passer par plusieurs états, l'état initial étant InProgress. Les changements d'état des propositions sont pilotés par la méthode act_proposal().

Les membres du DAO peuvent appeler act_proposal() pour exécuter les opérations suivantes sur la proposition :

  • VoteApprove: signifie approuver
  • VoteReject: signifie s'opposer
  • VoteRemove: considère que cette proposition est sans signification et doit être retirée

Après le vote, le programme appellera policy.proposal_status() pour le dépouillement des votes. Pour les propositions qui atteignent le seuil de vote, l'état sera modifié en conséquence :

  • Approuvé :通过internal_execute_proposal()执行
  • Rejeté/Retiré : exécutez les opérations suivantes via internal_reject_proposal()

La différence entre l'état Rejected et l'état Removed est que les propositions dans l'état Removed seront retirées du pool de propositions et le dépôt ne sera pas remboursé. Les propositions dans l'état Rejected resteront dans le pool et le dépôt sera remboursé.

3. Exécution de la proposition

Si l'état de la proposition est Approuvé, act_proposal() appellera internal_execute_proposal() pour exécuter le contenu de la proposition.

Sputnik-DAO prend en charge plusieurs types de propositions, cette section présentera les processus de traitement de deux types typiques :

3.1 proposition d'exécution de fonction de contrat (FunctionCall)

Les propositions de type FunctionCall incluent lors de leur ajout la fonction spécifique à exécuter (actions). Chaque action peut spécifier le nom de la méthode du contrat et les paramètres. Sputnik-DAO utilise la forme Promise Batch Actions pour exécuter ce type de propositions.

3.2 proposition de transfert de fonds de contrat ( Transfer )

Le type de proposition de transfert est utilisé pour transférer les jetons accumulés sur le compte de contrat vers un compte spécifié. internal_execute_proposal() appellera la fonction internal_payout() pour réaliser des opérations de transfert de différents types de jetons fongibles et du compte récepteur.

4. Conclusion

Cet article présente le concept central du contrat Sputnik DAO – proposition (Proposal), et explique comment créer, voter et exécuter des propositions, ainsi que les règles de changement d'état des propositions. Par la suite, une description plus détaillée du modèle de gouvernance de Sputnik-DAO sera basée sur les propositions (Policy).

ACT2.78%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 4
  • Reposter
  • Partager
Commentaire
0/400
quiet_lurkervip
· Il y a 9h
Je ne comprends pas très bien comment ça fonctionne.
Voir l'originalRépondre0
ForkItAllDayvip
· Il y a 9h
near joue bien aime créer
Voir l'originalRépondre0
ApeWithNoFearvip
· Il y a 9h
Jouer avec l'écosystème near, c'est génial!
Voir l'originalRépondre0
GasFeeCrybabyvip
· Il y a 9h
off-chain vote est trop cher, je ne peux plus me permettre de manger.
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)