Journal de développement des smart contracts Rust (11) : Interprétation du mécanisme de proposition du DAO Sputnik
Sputnik-DAO, en tant qu'infrastructure du protocole NEAR, favorise fortement le développement de l'écosystème NEAR vers la "décentralisation". Actuellement, cette plateforme a permis la création de nombreuses communautés autonomes décentralisées pour les projets NEAR, tout en offrant une solution de gouvernance des décisions communautaires complète, flexible et efficace.
Sputnikdaov2 est un smart contract utilisé pour le vote de gouvernance de la communauté Sputnik-DAO. Cet article présentera les concepts clés de ce contrat : la proposition (Proposal), et dans les articles suivants, nous aborderons les modèles de gouvernance de la communauté DAO liés à la "proposition" (Policy).
1. Lancement de la proposition
Dans le Sputnik-DAO, chaque membre peut exprimer son opinion ou soumettre des propositions concernant la gouvernance ou la gestion du projet. Chaque membre de la communauté détenant des actions peut examiner et voter sur les propositions. Les membres peuvent influencer l'avenir du projet en votant ou en lançant de nouvelles propositions.
Au niveau des contrats, les membres du DAO peuvent appeler la méthode add_proposal() du contrat sputnikdaov2 pour soumettre de nouvelles propositions :
rouille
u64
Le proposeur doit fournir des détails sur la proposition (ProposalInput):
Description du projet (Description)
Type de proposition (kind)
Ces informations seront passées en tant que paramètres à la méthode add_proposal(), qui effectuera un traitement de vérification et générera une proposition entièrement initialisée (Proposal). La proposition finale sera liée à un identifiant de proposition unique proposal_id et ajoutée au pool de propositions maintenu globalement par le contrat.
Les informations complètes sur les attributs de la proposition comprennent :
description(description)
type (kind )
-提案者(proposer)
état(status)
temps de soumission(submission_time)
État de vote ( vote_counts, votes )
Il convient de noter qu'il existe dans le Sputnik-DAO le concept de dépôt de proposition (proposal_bond). Le contrat exige que le proposeur mette en garantie un certain montant de tokens NEAR lors de l'appel à add_proposal(). Ce dépôt sera remboursé au proposeur lorsque la proposition se termine normalement.
2. État de la proposition
Les propositions dans le Sputnik-DAO peuvent passer par plusieurs états :
InProgress: État initial de la nouvelle proposition
Approuvé : obtenu l'approbation
Rejected: rejeté
Retiré :被移除
Expiré :已过期
Moved: Déplacé
Échoué : exécution échouée
Le changement d'état de la proposition est piloté par la méthode act_proposal(). Les membres du DAO peuvent appeler cette méthode pour voter sur la proposition et effectuer d'autres opérations :
VoteApprove: approuvé
VoteReject: contre
VoteRemove: retirer
Après le vote, la fonction policy.proposal_status() sera appelée pour compter les votes. Pour les propositions qui atteignent le seuil de vote, l'état changera en conséquence :
Les propositions en état approuvé seront exécutées
Les propositions en état Rejected ou Removed effectueront des opérations de clôture.
Les propositions dans l'état Retiré seront supprimées du pool de propositions, sans remboursement du dépôt. Les propositions dans l'état Rejeté resteront dans le pool et le dépôt sera remboursé.
3. Exécution de la proposition
Si l'état de la proposition devient Approuvé, act_proposal() appellera internal_execute_proposal() pour exécuter le contenu de la proposition.
Sputnik-DAO prend en charge plusieurs types de propositions, tels que ChangeConfig, ChangePolicy, FunctionCall, Transfer, etc. Chaque type a une branche de traitement correspondante.
Voici les processus de traitement de deux types de propositions typiques :
( 3.1 proposition d'exécution de fonction de contrat)FunctionCall###
Les propositions de type FunctionCall peuvent exécuter des méthodes de contrat spécifiques. La proposition contient des opérations de fonction à exécuter (actions), chaque action pouvant spécifier le nom de la méthode du contrat et les paramètres.
La fonction est finalement appelée sous la forme d'actions de lot Promise.
( 3.2 Proposition de transfert de fonds de contrat ) Transfert ###
Les propositions de type Transfer peuvent transférer des tokens du compte de contrat vers un compte spécifié.
internal_execute_proposal() va appeler la fonction internal_payout(), pour effectuer des opérations de transfert de différents types de jetons et de comptes récepteurs.
4. Résumé
Cet article présente le concept clé du contrat Sputnik DAO : la proposition (Proposal), y compris la création de la proposition, le vote, les changements d'état et le processus d'exécution. Par la suite, nous aborderons le modèle de gouvernance de Sputnik-DAO basé sur la proposition (Policy).
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.
7 J'aime
Récompense
7
5
Reposter
Partager
Commentaire
0/400
Layer2Arbitrageur
· Il y a 2h
meh, une autre implémenation de gouvernement dao... j'ai vérifié les chiffres de gas cependant - en fait 47% plus efficace que le vote eth
Voir l'originalRépondre0
RektButSmiling
· Il y a 2h
C'est vraiment trop dao, n'est-ce pas ?
Voir l'originalRépondre0
MaticHoleFiller
· Il y a 2h
Les joueurs de dao savent de quoi il s'agit.
Voir l'originalRépondre0
UnluckyLemur
· Il y a 2h
Jouons aux joueurs d'infrastructure près de chez nous!
Analyse approfondie du mécanisme de proposition de smart contracts de Sputnik DAO
Journal de développement des smart contracts Rust (11) : Interprétation du mécanisme de proposition du DAO Sputnik
Sputnik-DAO, en tant qu'infrastructure du protocole NEAR, favorise fortement le développement de l'écosystème NEAR vers la "décentralisation". Actuellement, cette plateforme a permis la création de nombreuses communautés autonomes décentralisées pour les projets NEAR, tout en offrant une solution de gouvernance des décisions communautaires complète, flexible et efficace.
Sputnikdaov2 est un smart contract utilisé pour le vote de gouvernance de la communauté Sputnik-DAO. Cet article présentera les concepts clés de ce contrat : la proposition (Proposal), et dans les articles suivants, nous aborderons les modèles de gouvernance de la communauté DAO liés à la "proposition" (Policy).
1. Lancement de la proposition
Dans le Sputnik-DAO, chaque membre peut exprimer son opinion ou soumettre des propositions concernant la gouvernance ou la gestion du projet. Chaque membre de la communauté détenant des actions peut examiner et voter sur les propositions. Les membres peuvent influencer l'avenir du projet en votant ou en lançant de nouvelles propositions.
Au niveau des contrats, les membres du DAO peuvent appeler la méthode add_proposal() du contrat sputnikdaov2 pour soumettre de nouvelles propositions :
rouille u64
Le proposeur doit fournir des détails sur la proposition (ProposalInput):
Ces informations seront passées en tant que paramètres à la méthode add_proposal(), qui effectuera un traitement de vérification et générera une proposition entièrement initialisée (Proposal). La proposition finale sera liée à un identifiant de proposition unique proposal_id et ajoutée au pool de propositions maintenu globalement par le contrat.
Les informations complètes sur les attributs de la proposition comprennent :
Il convient de noter qu'il existe dans le Sputnik-DAO le concept de dépôt de proposition (proposal_bond). Le contrat exige que le proposeur mette en garantie un certain montant de tokens NEAR lors de l'appel à add_proposal(). Ce dépôt sera remboursé au proposeur lorsque la proposition se termine normalement.
2. État de la proposition
Les propositions dans le Sputnik-DAO peuvent passer par plusieurs états :
Le changement d'état de la proposition est piloté par la méthode act_proposal(). Les membres du DAO peuvent appeler cette méthode pour voter sur la proposition et effectuer d'autres opérations :
Après le vote, la fonction policy.proposal_status() sera appelée pour compter les votes. Pour les propositions qui atteignent le seuil de vote, l'état changera en conséquence :
Les propositions dans l'état Retiré seront supprimées du pool de propositions, sans remboursement du dépôt. Les propositions dans l'état Rejeté resteront dans le pool et le dépôt sera remboursé.
3. Exécution de la proposition
Si l'état de la proposition devient Approuvé, act_proposal() appellera internal_execute_proposal() pour exécuter le contenu de la proposition.
Sputnik-DAO prend en charge plusieurs types de propositions, tels que ChangeConfig, ChangePolicy, FunctionCall, Transfer, etc. Chaque type a une branche de traitement correspondante.
Voici les processus de traitement de deux types de propositions typiques :
( 3.1 proposition d'exécution de fonction de contrat)FunctionCall###
Les propositions de type FunctionCall peuvent exécuter des méthodes de contrat spécifiques. La proposition contient des opérations de fonction à exécuter (actions), chaque action pouvant spécifier le nom de la méthode du contrat et les paramètres.
La fonction est finalement appelée sous la forme d'actions de lot Promise.
( 3.2 Proposition de transfert de fonds de contrat ) Transfert ###
Les propositions de type Transfer peuvent transférer des tokens du compte de contrat vers un compte spécifié.
internal_execute_proposal() va appeler la fonction internal_payout(), pour effectuer des opérations de transfert de différents types de jetons et de comptes récepteurs.
4. Résumé
Cet article présente le concept clé du contrat Sputnik DAO : la proposition (Proposal), y compris la création de la proposition, le vote, les changements d'état et le processus d'exécution. Par la suite, nous aborderons le modèle de gouvernance de Sputnik-DAO basé sur la proposition (Policy).