Participer aux propositions pDAO on-chain
Tout nœud ayant un pouvoir de vote non nul peut soumettre ou participer à une proposition pDAO à tout moment. Les propositions peuvent être de l'un des types suivants :
- Modification des paramètres pDAO
- Dépenses ponctuelles de la trésorerie
- Dépenses récurrentes de la trésorerie (comités de gestion)
- Adhésion au conseil de sécurité
Pour plus de détails et de justifications, 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 annoncé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 selon 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 DAO Forum, où elle fait l'objet de recherches approfondies, de modélisations et d'examens en préparation d'une Rocket Pool Improvement Proposal (RPIP). Ensuite, un projet de RPIP est préparé et examiné par des réviseurs RPIP désignés pour garantir sa qualité et sa préparation pour la présentation à la DAO. Le projet de proposition est ensuite présenté à la DAO sur le forum pour un examen plus approfondi, des retours et l'intégration de tout changement nécessaire. Une fois que la proposition a été 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 de la 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 pendant laquelle la 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 changements sont appliqués au protocole.
Une représentation visuelle très 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
direct, le pouvoir de vote sera initialisé à votre nœud et vous pourrez voter directement sur les propositions de la Protocol DAO. - Si vous répondez
delegate, vous aurez la possibilité d'économiser un peu de gas en initialisant le vote et en définissant un délégué dans la même transaction.
Vous n'avez besoin de 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 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é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é Auto Initialize Vote Power, conçue pour initialiser automatiquement le pouvoir de vote sur les nœuds qui ne l'ont pas encore fait. Le pouvoir de vote automatiquement initialisé 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 Auto-Init Vote Power Gas Threshold est une limite (en gwei) pour cette transaction automatique. Vous pouvez désactiver cette tâche en définissant le seuil à 0. N'hésitez pas à désactiver 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
Définir 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 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 signalisation)
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 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 chaud. 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 verrez ensuite cette boîte de 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 devez confirmer l'adresse de votre nœud, vous pouvez rapidement la récupérer 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 bien 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 extension de portefeuille pour signer le message suivant :
La signature ne vous coûtera aucun gas 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 à ceci :
Si vous voyez ce message dans votre CLI, c'est bon !
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 avec les mêmes entrées.
Cliquez ici pour en savoir plus.
Effacer votre adresse de signalisation est assez simple, utilisez simplement cette commande dans le CLI :
Autoriser le 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 de RPL à quelque fin que ce soit sera désactivé. Les opérateurs de nœuds s'inscriront 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. À l'inverse, vous pouvez utiliser la commande suivante pour désactiver le verrouillage RPL :
Le RPL verrouillé agit de la même manière que le RPL staké régulier pour les récompenses, le vote et les exigences de garantie. Le RPL verrouillé n'est pas compté dans les seuils pour retirer le 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 le réinitialiser en définissant l'adresse du délégué sur l'adresse de votre propre nœud.
- Pendant la phase 1 d'une proposition : Les votants et les 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 la possibilité 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 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é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 RPL
- A un stake RPL (moins tout RPL déjà verrouillé) supérieur au bond de proposition
Les propositions existent pour modifier 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 demandera 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 d'invitation d'un nœud au conseil de sécurité, vous utiliseriez la commande :
Gardez à l'esprit que cette étape aura quelques légères variations selon le type de proposition. Cette commande particulière : rocketpool pdao propose security-council invite vous demandera d'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 la 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 avec l'ID 71. Il existe 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 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 à consulter le cycle de vie d'une proposition pour un rappel.
Voter sur une proposition
Pendant une période de vote, les opérateurs de nœuds et les 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 repo 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 ne peut voter qu'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.
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 que la transaction est 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 abstenu. La proposition est prête à réussir 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 est passée ! Il ne reste plus qu'à 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 bonds et récompenses
Les proposants ou contestataires peuvent réclamer leurs bonds à 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 son proposal.bond et proposal.challenge.bond.
Voici quelques règles qui dictent les conditions dans lesquelles les bonds peuvent être réclamés :
- Si une proposition est rejetée, le proposant perd son bond qui est divisé proportionnellement entre les contestataires qui ont contribué à la défaite de la proposition. Tous les autres contestataires reçoivent uniquement leur bond.
- Contribuer à la défaite d'une proposition signifie qu'un contestataire a soumis un index qui s'est révélé 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 conduit à la défaite de la proposition partagent la récompense. Tous les autres contestataires reçoivent uniquement leur bond.
- Si un contestataire conteste un nœud, que le proposant répond et que la proposition n'est pas rejetée, le proposant peut réclamer les bonds de contestation des contestations invalides.
- Si une proposition est rejetée, le proposant perd son bond qui est divisé proportionnellement entre les contestataires qui ont contribué à la défaite de la proposition.
Utilisez cette commande pour réclamer les bonds :
Cela affichera chaque proposition pour laquelle vous êtes éligible pour réclamer des bonds. Vous pouvez soit réclamer des bonds d'une proposition spécifiée, soit réclamer des bonds et des récompenses de toutes les propositions éligibles.
Une fois que vous avez sélectionné une option, vous recevrez les recommandations actuelles de coûts de gas du réseau ; confirmez votre sélection de prix de gas 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 individuellement et non en une seule transaction.
Créer une dépense récurrente de la trésorerie
Vous devrez préparer quelques entrées pour créer une dépense récurrente de la trésorerie :
- 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 (en timestamp 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 noter le nom du contrat pour réclamer les paiements. Ne vous inquiétez pas, car ces informations sont stockées et peuvent être récupérées en utilisant la commande rocketpool pdao proposals details <proposal-id>
Pour soulever une proposition de mise en place d'une dépense récurrente de la trésorerie, 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 de création de paiement récurrent sera soulevée. Lorsque la pDAO passe 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 de la trésorerie
Réclamer des paiements récurrents devrait être assez simple ! Naviguez vers notre outil frontend ici pour le faire. Si vous essayez ceci 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 connect metamask.
MetaMask vous demandera de sélectionner un compte à 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 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 gas.
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, c'est tout !