Participer aux propositions pDAO on-chain
Tout nœud avec un pouvoir de vote non nul peut créer ou participer à une proposition pDAO à tout moment. Les propositions peuvent être de l'un des types suivants :
- Modification des paramètres de la pDAO
- Dépenses uniques du trésor
- Dépenses récurrentes du trésor (comités de gestion)
- Adhésion au conseil de sécurité
Pour plus de détails et de justification, consultez les 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 anticipée par le processus de gouvernance avant qu'elle ne se retrouve on-chain.
Les changements au protocole Rocket Pool sont proposés, votés et exécutés 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 fait l'objet de recherches approfondies, de modélisation et d'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 à la DAO. Le projet de proposition est ensuite présenté à la DAO sur le forum pour examen supplémentaire, retours et intégration de tout changement nécessaire. Une fois la proposition affinée en fonction des commentaires de la communauté, un sondage est lancé sur le forum DAO pour évaluer la disponibilité à finaliser le texte de la RPIP. Si le sondage passe, indiquant l'approbation de la communauté, la RPIP est marquée comme finale et prête pour un vote de la DAO de Protocole, qui est conduit via snapshot pour déterminer si la proposition doit être mise en œuvre.
À partir de là, l'Oracle DAO créera une proposition on-chain. Il y a une fenêtre durant laquelle la DAO de Protocole, l'Oracle DAO et la communauté peuvent examiner la proposition. Si un consensus est atteint, la proposition est exécutée et les changements sont appliqués 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 pendant chaque période.
Le reste de cette page vous guidera à travers les étapes requises pour participer aux propositions pDAO on-chain.
Initialiser le 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 de la DAO de Protocole. - 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 ne devez faire cela qu'une seule fois. Cela configure les informations de snapshot initiales pour un nœud. Après avoir initialisé le vote, chaque action prise mettra à jour les informations de snapshot 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 snapshot du pouvoir de vote du réseau et des informations de délégué 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é créé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éfinir votre adresse de signalisation snapshot
La définition de votre adresse de signalisation snapshot vous permettra de participer aux votes snapshot sur un navigateur ou un appareil mobile sans avoir à exposer les clés du nœud à un portefeuille actif.
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 signalisation)
Vous allez signer un message indiquant que l'adresse de votre nœud peut déléguer à la nouvelle adresse. Ce message indique votre intention d'utiliser l'adresse de votre portefeuille comme adresse de signalisation snapshot.
Sélectionnez le réseau que vous utilisez parmi l'un des onglets ci-dessous.
Ne chargez pas la clé privée de votre nœud sur un portefeuille actif. Veuillez choisir un autre compte pour être votre adresse de signalisation. Après avoir défini l'adresse de signalisation, 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 signalisation au site web en utilisant MetaMask, WalletConnect, ou l'une des autres méthodes prises en charge par le site web. Vous serez alors présenté avec ce dialogue pour rechercher l'adresse de votre nœud.
Ensuite, vous entrerez l'adresse de votre 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 avez besoin de confirmer l'adresse de votre nœud, vous pouvez la récupérer rapidement via le CLI en utilisant la commande rocketpool node status.
Une fois que vous vous êtes connecté et avez confirmé l'adresse de votre nœud, vous verrez votre adresse de signalisation 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 l'extension de votre portefeuille pour signer le message suivant :
La signature ne vous coûtera pas de gaz mais la définition le fera. Après avoir signé, le frontend vous donnera une commande à coller dans le smartnode. Allez-y et collez-la dans le CLI de votre smartnode et suivez les étapes demandé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 signalisation. Le frontend utilise signer.Signmessage() de la bibliothèque ethers, ce qui signifie que votre signature est déterministe pour la même entrée.
Cliquez ici pour en savoir plus.
Effacer votre adresse de signalisation est assez simple, utilisez simplement cette commande dans le CLI :
Autoriser le verrouillage de RPL
Vous pouvez ignorer cette étape si vous êtes uniquement intéressé par voter sur une proposition. Autoriser le verrouillage de RPL n'est requis que pour ceux qui souhaitent proposer ou contester une proposition.
Le verrouillage de RPL est requis pour proposer et contester. Par défaut, le verrouillage de RPL pour n'importe quel usage sera désactivé. Les opérateurs de nœuds devront s'inscrire pour effectuer des activités de gouvernance en activant 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 de 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 garantie. Le RPL verrouillé n'est pas compté dans les seuils pour retirer du RPL.
Déléguer le 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 de délégué à l'adresse de votre propre nœud.
- Durant la phase 1 d'une proposition : Les votants et Les délégués peuvent exprimer leur vote sur une proposition.
- Durant la phase 2 d'une proposition : Les opérateurs de nœuds qui ont délégué leur vote ont l'opportunité d'annuler le vote de leur délégué, s'ils ne sont pas d'accord.
Si vous êtes un opérateur de nœud avec un pouvoir de vote délégué, vous devez voter durant 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 vaut votre pouvoir de vote local uniquement.
Créer une proposition
Pour être éligible à proposer, un nœud doit répondre à quelques exigences :
- Inclus dans le snapshotting (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 de RPL
- A un stake RPL (moins tout RPL déjà verrouillé) supérieur à la caution de proposition
Les propositions existent pour changer les paramètres et exécuter du code au niveau du protocole ! Il devrait y avoir discussion et consensus à travers le processus de gouvernance avant qu'une proposition ne soit créée on-chain.
Utilisez la commande rocketpool pdao propose pour afficher 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 créer une proposition pour inviter un nœud au conseil de sécurité, vous utiliseriez la commande :
Gardez à l'esprit que cette étape aura quelques variations 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 dès sa création.
Voir 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 l'ID 71. Il y a quelques 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 inviter 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 merkle (utilisé pour calculer le pouvoir de vote) fourni par le proposeur. Lorsque proposal.vote.delay.time se termine, la proposition passera aux phases de vote actives. N'hésitez pas à revoir le cycle de vie d'une proposition pour un rappel.
Voter sur une proposition
Durant une période de vote, les opérateurs de nœuds et les délégués peuvent exprimer un vote 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 durant 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 vaut votre pouvoir de vote local uniquement. Veuillez garder à l'esprit qu'un nœud peut voter une fois et une seule fois sur une proposition, alors choisissez soigneusement.
Utilisez cette commande pour exprimer un vote :
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 à voter :
Après avoir sélectionné une option, on vous demandera comment vous voulez exprimer votre vote.
Sélectionner une option affichera alors 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 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 abstenu. La proposition est sur la voie du succès et prête pour l'exécution d'ici la fin de proposal.vote.phase2.time.
Exécuter une proposition réussie
Félicitations ! Votre proposition a été adoptée ! Maintenant, tout ce qu'il 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 :
Sélectionner une option vous invitera à envoyer une transaction. Une fois cette transaction incluse dans un bloc, le changement sera appliqué au protocole Rocket Pool !
Réclamer les cautions et récompenses
Les proposeurs ou contestataires peuvent réclamer leurs cautions à la conclusion d'une proposition. Selon le résultat d'une proposition, un proposeur ou 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 rejetée, le proposeur perd sa caution qui est divisée proportionnellement entre les contestataires qui ont contribué au rejet de la proposition. Tous les autres contestataires reçoivent uniquement leur caution en retour.
- Contribuer au rejet d'une proposition signifie qu'un contestataire a soumis un index qui a ensuite été prouvé incorrect par l'incapacité du proposeur à répondre à une contestation. Il est possible qu'il y ait plusieurs index incorrects mais seuls ceux qui ont abouti au rejet de la proposition partagent la récompense. Tous les autres contestataires reçoivent uniquement leur caution en retour.
- Si un contestataire conteste un nœud, que le proposeur répond, et que la proposition ne soit pas rejetée. Le proposeur peut réclamer les cautions de contestation des contestations invalides.
- Si une proposition est rejetée, le proposeur perd sa caution qui est divisée proportionnellement entre les contestataires qui ont contribué au rejet de la proposition.
Utilisez cette commande pour réclamer les cautions :
Cela affichera chaque proposition dont vous êtes éligible à réclamer les cautions. Vous pouvez soit réclamer les cautions d'une proposition spécifiée, soit réclamer les cautions et récompenses de toutes les propositions éligibles.
Une fois que vous avez sélectionné une option, vous serez invité avec les recommandations de coûts de gaz actuelles 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éer 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 de timestamp UNIX)
- La longueur de chaque période de paiement en heures / minutes / secondes (par ex., 168h0m0s)
- Nombre de périodes de paiement
Le destinataire devra noter le 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 créer 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 dans son ensemble :
Une fois que vous avez entré toutes les entrées requises, une proposition pour créer un paiement récurrent sera créée. Lorsque la pDAO adopte et exécute cette proposition, le destinataire se voit allouer 1 RPL à partir du 2024-06-09 12:13:53 +0000 UTC tous les 720 heures pour un total de 24 paiements.
Réclamer une dépense récurrente du trésor
Réclamer les paiements récurrents devrait être assez simple ! Naviguez vers 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 connecter le portefeuille. 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 bien 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é vers lequel disperser le RPL.
Vous pouvez réclamer vos paiements à tout moment, vous recevrez simplement le total du 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 cela fait, vous êtes prêt !