Participation aux propositions on-chain du pDAO
Tout nœud avec un pouvoir de vote non nul peut soulever ou participer à une proposition pDAO à tout moment. Les propositions peuvent être de l'un des types suivants :
- Modification des paramètres du pDAO
- Dépenses uniques du trésor
- Dépenses répétées du trésor (comités de gestion)
- Adhésion au conseil de sécurité
Pour plus de détails et de justification, consultez types de propositions. Il est important de comprendre qu'une proposition pDAO est une entité on-chain qui existe pour exécuter des changements au niveau du protocole.
Processus de gouvernance
Une proposition devrait être préfigurée par le processus de gouvernance avant de se retrouver on-chain.
Les modifications du protocole Rocket Pool sont proposées, votées et exécutées en utilisant un processus de gouvernance strict mais transparent. Le processus commence par une discussion informelle d'une idée au sein de la communauté Discord. Cette idée progresse ensuite vers des discussions formelles dans le canal #governance sur Discord et le Forum DAO, où elle subit des recherches approfondies, de la modélisation et un examen minutieux en préparation d'une Proposition d'amélioration de Rocket Pool (RPIP). Suite à cela, un projet de RPIP est préparé et examiné par des examinateurs RPIP désignés pour garantir sa qualité et sa préparation à la présentation au DAO. Le projet de proposition est ensuite présenté au DAO sur le forum pour un examen supplémentaire, des retours et l'incorporation de tout changement nécessaire. Une fois la proposition affinée en fonction des contributions de la communauté, un sondage est lancé sur le forum DAO pour évaluer la préparation à finaliser le texte RPIP. Si le sondage passe, indiquant l'approbation de la communauté, le RPIP est marqué comme final et prêt pour un vote du Protocol DAO, qui est mené via Snapshot pour déterminer si la proposition doit être mise en œuvre.
À partir de là, l'Oracle DAO soulèvera une proposition on-chain. Il y a une fenêtre durant laquelle le Protocol DAO, l'Oracle DAO et la communauté peuvent examiner la proposition. Si un consensus est atteint, la proposition est exécutée et les modifications sont appliquées au protocole.
Une représentation visuelle pratique de ce processus peut être trouvée sur le site Web de Rocket Pool.
Prérequis
Veuillez lire le cycle de vie d'une proposition avant de continuer. Cela expliquera les différences entre toutes les périodes de vote et les actions qui peuvent être prises durant chaque période.
Le reste de cette page vous guidera à travers les étapes requises pour participer aux propositions on-chain du pDAO.
Initialisation du vote
Si vous êtes un opérateur de nœud qui s'est enregistré avant la mise à niveau Houston, vous devez initialiser le vote pour débloquer le pouvoir de vote. Gardez à l'esprit qu'avoir au moins un minipool est une exigence pour avoir un pouvoir de vote.
Cette commande affichera l'invite ci-dessous. Veuillez la lire attentivement :
- Si vous répondez avec
direct, le pouvoir de vote sera initialisé à votre nœud et vous pourrez voter directement sur les propositions du Protocol DAO. - Si vous répondez avec
delegate, vous aurez l'opportunité d'économiser un peu de gaz en initialisant le vote et en définissant un délégué dans la même transaction.
Vous n'avez besoin de le faire qu'une seule fois. Cela configure les informations d'instantané initiales pour un nœud. Après avoir initialisé le vote, chaque action entreprise mettra à jour les informations d'instantané de votre nœud. Une fois votre pouvoir de vote initialisé, vous pouvez vérifier combien vous en avez en utilisant la commande smartnode suivante :
Chaque fois qu'une nouvelle proposition est créée, un arbre de vote représentant un instantané du pouvoir de vote du réseau et des informations de délégation est créé en conjonction avec la nouvelle proposition. Cela signifie que le pouvoir de vote de votre nœud ne sera pas inclus dans une proposition si elle a été soulevée avant que vous n'initialisiez le vote. rocketpool pdao status affichera le pouvoir de vote de votre nœud au dernier bloc, qui peut ou non être représentatif de votre pouvoir de vote sur une proposition particulière.
Initialisation automatique du pouvoir de vote
La version 1.13.8 du Smartnode introduit une nouvelle fonctionnalité Initialisation automatique du pouvoir de vote, conçue pour initialiser automatiquement le pouvoir de vote sur les nœuds qui ne l'ont pas encore fait. Le pouvoir de vote initialisé automatiquement est auto-délégué.
Cette fonctionnalité peut être configurée dans les paramètres du Smartnode en exécutant rocketpool service config et en naviguant vers la section Smartnode and TX Fees.
Le Seuil de gaz pour l'initialisation automatique du pouvoir de vote est une limite (en gwei) sur cette transaction automatique. Vous pouvez vous désinscrire de cette tâche en définissant le seuil à 0. N'hésitez pas à vous désinscrire si votre nœud a été enregistré après la mise à niveau Houston ou si le pouvoir de vote est déjà activé.
Définition de votre adresse de signalement Snapshot
La définition de votre adresse de signalement Snapshot vous permettra de participer aux votes Snapshot sur un navigateur ou un appareil mobile sans avoir à exposer les clés de nœud à un portefeuille chaud.
Il y a quelques éléments à préparer :
- L'adresse de votre nœud
- Une adresse que vous souhaitez utiliser pour le vote Snapshot (adresse de signalement)
Vous signerez un message indiquant que l'adresse de votre nœud peut déléguer à la nouvelle adresse. Ce message indique votre intention d'utiliser votre adresse de portefeuille comme adresse de signalement Snapshot.
Sélectionnez le réseau que vous utilisez dans l'un des onglets ci-dessous.
Ne chargez pas la clé privée de votre nœud sur un portefeuille chaud. Veuillez choisir un autre compte comme adresse de signalement. Après avoir défini l'adresse de signalement, vous pouvez l'utiliser pour voter sur Snapshot avec le pouvoir de vote de votre nœud.
Commencez par connecter l'adresse que vous souhaitez utiliser comme adresse de signalement au site Web en utilisant MetaMask, WalletConnect ou l'une des autres méthodes prises en charge par le site Web. Vous verrez alors ce dialogue pour rechercher votre adresse de nœud.
Ensuite, vous entrerez votre adresse de nœud puis cliquerez sur le bouton orange "Find". Cela vérifiera si l'adresse est un nœud enregistré et vous amènera ensuite à l'étape suivante.
Assurez-vous d'avoir la bonne adresse de nœud avant de faire cela ! Si vous devez confirmer l'adresse de votre nœud, vous pouvez la récupérer rapidement via la CLI en utilisant la commande rocketpool node status.
Une fois que vous vous êtes connecté et confirmé votre adresse de nœud, vous verrez votre adresse de signalement Snapshot. Elle devrait être la même que le compte avec lequel vous vous êtes connecté au site. Vérifiez que c'est correct avant de continuer. Une fois que vous êtes sûr d'être connecté au compte souhaité, cliquez sur le bouton orange "Sign Message". Vous verrez une invite dans votre application d'extension de portefeuille pour signer le message suivant :
La signature ne vous coûtera aucun gaz mais la définition en coûtera. Après avoir signé, le frontend vous donnera une commande à coller dans le smartnode. Allez-y et collez-la dans la CLI de votre smartnode et suivez les étapes suggérées. La commande devrait ressembler à quelque chose comme ceci :
Si vous voyez ce message dans votre CLI, vous êtes prêt !
Ne vous inquiétez pas si vous fermez accidentellement le site ou perdez la trace de la commande. Vous pouvez simplement répéter les étapes et signer à nouveau en utilisant la même adresse de nœud et adresse de signalement. Le frontend utilise signer.Signmessage() de la bibliothèque ethers, ce qui signifie que votre signature est déterministe étant donné la même entrée.
Cliquez ici pour en savoir plus.
Effacer votre adresse de signalement est assez facile, utilisez simplement cette commande dans la CLI :
Autorisation du verrouillage RPL
Vous pouvez ignorer cette étape si vous êtes uniquement intéressé par le vote sur une proposition. Autoriser le verrouillage RPL n'est requis que pour ceux qui souhaitent proposer ou contester une proposition.
Le verrouillage RPL est requis pour proposer et contester. Par défaut, le verrouillage RPL pour toute fin sera désactivé. Les opérateurs de nœuds devront s'inscrire pour effectuer des activités de gouvernance en autorisant le verrouillage de RPL depuis leur nœud ou leur adresse de retrait principale. Vous pouvez le faire en utilisant cette commande dans le Smartnode :
Cela vous invitera à autoriser le verrouillage de RPL lors de la création ou de la contestation de propositions de gouvernance. Inversement, vous pouvez utiliser la commande suivante pour vous désinscrire du verrouillage RPL :
Le RPL verrouillé agit de la même manière que le RPL staké régulier aux fins de récompenses, de vote et d'exigences de collatéral. Le RPL verrouillé n'est pas compté dans les seuils pour retirer du RPL.
Délégation du pouvoir de vote
Un opérateur de nœud peut choisir de déléguer son pouvoir de vote à un autre opérateur de nœud. La seule exigence est que votre délégué soit un nœud enregistré.
Pour déléguer le pouvoir de vote on-chain à un autre nœud, utilisez la commande suivante :
Si vous avez délégué votre pouvoir de vote à un autre opérateur de nœud, vous pouvez réinitialiser cela en définissant l'adresse du délégué à votre propre adresse de nœud.
- Pendant la phase 1 d'une proposition : Les votants et Délégués peuvent voter sur une proposition.
- Pendant la phase 2 d'une proposition : Les opérateurs de nœuds qui ont délégué leur vote ont l'opportunité de renverser le vote de leur Délégué, s'ils sont en désaccord.
Si vous êtes un opérateur de nœud avec un pouvoir de vote délégué, vous devez voter pendant la phase de vote 1 pour que le pouvoir de vote délégué compte pour la proposition. Votre vote en phase 1 vaudra votre pouvoir de vote local + pouvoir de vote délégué. Votre vote en phase 2 ne vaut que votre pouvoir de vote local.
Création d'une proposition
Pour être éligible à proposer, un nœud doit répondre à quelques exigences :
- Inclus dans la prise d'instantané (soit en initialisant le vote soit en s'enregistrant après Houston)
- Doit avoir au moins un minipool
- A un pouvoir de vote non nul
- A autorisé le verrouillage RPL
- A un stake RPL (moins tout RPL déjà verrouillé) supérieur à la caution de proposition
Les propositions existent pour modifier des paramètres et exécuter du code au niveau du protocole ! Il devrait y avoir une discussion et un consensus à travers le processus de gouvernance avant qu'une proposition ne soit créée on-chain.
Utilisez la commande rocketpool pdao propose pour faire apparaître un menu d'options
Chacune de ces commandes vous invitera avec une liste d'entrées pour créer votre proposition souhaitée. Dans ce guide, nous inviterons un nœud au conseil de sécurité pour servir d'exemple. Pour soulever une proposition pour inviter un nœud au conseil de sécurité, vous utiliseriez la commande :
Gardez à l'esprit que cette étape aura une légère variation selon le type de proposition. Cette commande particulière : rocketpool pdao propose security-council invite vous invitera à entrer un ID suivi d'une adresse de membre.
Après que cela soit inclus dans un bloc, une proposition pDAO sera créée ! La proposition entrera dans la période de délai de vote lors de sa création.
Visualisation de l'état d'une proposition
Chaque proposition se voit attribuer un proposalID. Dans ce cas, notre proposition d'inviter 0xBdbc... au conseil de sécurité est représentée par ID 71. Il y a plusieurs façons de voir l'état de la proposition. Une méthode affichera une liste de chaque proposition pdao avec son état (en attente, réussie, exécutée, etc). La deuxième méthode affiche des détails approfondis sur une proposition spécifique.
Pour lister toutes les propositions, utilisez la commande suivante :
Cela affichera une liste de toutes les propositions et leur état
Ici, nous pouvons voir que notre proposition invite test-member a un ID de 71 et est dans l'état en attente. Dans cet état, les contestataires peuvent contester la validité du pollard de Merkle (utilisé pour calculer le pouvoir de vote) fourni par le proposant. Lorsque proposal.vote.delay.time se termine, la proposition passera en phases de vote actives. N'hésitez pas à revoir le cycle de vie d'une proposition pour un rappel.
Vote sur une proposition
Pendant une période de vote, Les opérateurs de nœuds et Délégués peuvent voter avec l'une des quatre options :
Leur pouvoir de vote sera appliqué à l'option de leur choix. Le pouvoir de vote est une fonction du "stake RPL effectif." Une lecture plus détaillée peut être trouvée dans le dépôt rocketpool-research.
Si vous êtes un opérateur de nœud avec un pouvoir de vote délégué, vous devez voter pendant la phase de vote 1 pour que le pouvoir de vote délégué compte pour la proposition. Votre vote en phase 1 vaudra votre pouvoir de vote local + pouvoir de vote délégué. Votre vote en phase 2 ne vaut que votre pouvoir de vote local. Veuillez garder à l'esprit qu'un nœud peut voter une fois et une seule fois sur une proposition, alors choisissez avec soin.
Utilisez cette commande pour voter :
Vous serez invité à sélectionner une proposition sur laquelle voter s'il y a au moins une proposition dans une phase de vote active. Le menu devrait afficher toutes les propositions sur lesquelles votre nœud est éligible pour voter :
Après avoir sélectionné une option, on vous demandera comment vous souhaitez voter.
La sélection d'une option affichera ensuite votre pouvoir de vote, puis vous invitera à envoyer la transaction :
Vous avez voté avec succès sur la proposition une fois la transaction incluse dans le bloc ! À ce stade, vous pouvez utiliser rocketpool pdao proposal details <proposal-id> pour voir l'état de la proposition. Une proposition doit atteindre le pouvoir de vote requis de proposal.quorum et une majorité de pouvoir de vote pour pour réussir.
Pour que l'exemple ci-dessus passe, le pouvoir de vote doit dépasser un quorum de 140970562215 pouvoir de vote. Il y a 197980809837 pouvoir de vote en faveur et aucun vote contre ou abstention. La proposition est prête pour le succès et prête pour l'exécution d'ici la fin de proposal.vote.phase2.time.
Exécution d'une proposition réussie
Félicitations ! Votre proposition est passée ! Maintenant, tout ce qui reste à faire est d'exécuter la proposition. Gardez à l'esprit que n'importe qui peut être l'exécuteur d'une proposition. Pour exécuter une proposition réussie, tapez la commande :
La sélection d'une option vous invitera à envoyer une transaction. Une fois cette transaction incluse dans un bloc, le changement sera appliqué au protocole Rocket Pool !
Réclamation des cautions et récompenses
Les proposants ou contestataires peuvent réclamer leurs cautions à la conclusion d'une proposition. Selon le résultat d'une proposition, un proposant ou un contestataire peut ou non être en mesure de réclamer leur proposal.bond et proposal.challenge.bond.
Voici quelques règles qui dictent les conditions dans lesquelles les cautions peuvent être réclamées :
- Si une proposition est défaite, le proposant perd sa caution qui est divisée proportionnellement entre les contestataires qui ont contribué à la défaite de la proposition. Tous les autres contestataires reçoivent uniquement leur caution.
- Contribuer à la défaite d'une proposition signifie qu'un contestataire a soumis un index qui s'est avéré plus tard incorrect par l'incapacité du proposant à répondre à un défi. Il est possible qu'il y ait plusieurs index incorrects, mais seuls ceux qui ont entraîné la défaite de la proposition partagent la récompense. Tous les autres contestataires reçoivent uniquement leur caution.
- Si un contestataire conteste un nœud, le proposant répond, et la proposition n'est pas défaite. Le proposant peut réclamer les cautions de défi des défis invalides.
- Si une proposition est défaite, le proposant perd sa caution qui est divisée proportionnellement entre les contestataires qui ont contribué à la défaite de la proposition.
Utilisez cette commande pour réclamer les cautions :
Cela affichera chaque proposition pour laquelle vous êtes éligible pour réclamer des cautions. Vous pouvez soit réclamer des cautions d'une proposition spécifiée, soit vous pouvez réclamer des cautions et des récompenses de toutes les propositions éligibles.
Une fois que vous avez sélectionné une option, vous serez invité avec les recommandations actuelles des coûts de gaz du réseau ; confirmez votre sélection de prix de gaz et suivez le reste des invites.
Notez que si vous sélectionnez la première option pour réclamer toutes les propositions disponibles, elles s'exécuteront chacune individuellement et non comme une seule transaction.
Création d'une dépense récurrente du trésor
Vous devrez préparer quelques entrées pour créer une dépense récurrente du trésor :
- Un nom de contrat
- L'adresse du destinataire
- Montant de RPL à envoyer par période
- L'heure de début pour le paiement récurrent (sous forme d'horodatage UNIX)
- La durée de chaque période de paiement en heures / minutes / secondes (par exemple, 168h0m0s)
- Nombre de périodes de paiement
Le destinataire devra garder une trace du nom du contrat afin de réclamer les paiements. Ne vous inquiétez pas cependant, car cette information est stockée et peut être récupérée en utilisant la commande rocketpool pdao proposals details <proposal-id>
Pour soulever une proposition pour mettre en place une dépense récurrente du trésor, utilisez la commande smartnode suivante et suivez les invites :
Voici à quoi cela ressemble tout ensemble :
Une fois que vous avez saisi toutes les entrées requises, une proposition pour créer un paiement récurrent sera soulevée. Lorsque le pDAO passe et exécute cette proposition, le destinataire reçoit 1 RPL à partir de 2024-06-09 12:13:53 +0000 UTC toutes les 720 heures pour un total de 24 paiements.
Réclamation d'une dépense récurrente du trésor
Réclamer des paiements récurrents devrait être assez simple ! Accédez à notre outil frontend ici pour le faire. Si vous essayez cela sur le testnet Hoodi, utilisez ce lien à la place.
Une fois sur le site, cliquez sur le bouton connect wallet. Veuillez lire et accepter les Conditions d'utilisation et la Politique de confidentialité, cela activera différentes façons de se connecter, puis cliquez sur connecter metamask.
MetaMask vous invitera à sélectionner un compte pour vous connecter au site Web. Après vous être connecté, vous devrez entrer le nom du contrat. Cela affichera tous les détails pertinents. Assurez-vous de vérifier l'adresse du destinataire. N'importe qui peut appeler la fonction de réclamation, mais chaque contrat de paiement aura un destinataire désigné pour disperser le RPL.
Vous pouvez réclamer vos paiements à tout moment, vous obtiendrez simplement le total de RPL non réclamé jusqu'à la période la plus récente. Alternativement, vous pouvez attendre que toutes les périodes soient passées pour tout collecter en une fois et économiser sur le gaz.
Appuyez simplement sur le gros bouton orange de réclamation lorsque vous êtes prêt et examinez la transaction dans metamask (ou votre portefeuille préféré). Une fois que c'est fait, vous êtes prêt !