Participando de Propostas pDAO On-Chain
Qualquer nó com poder de voto diferente de zero pode propor ou participar de uma proposta pDAO a qualquer momento. As propostas podem ser de um dos seguintes tipos:
- Mudança de configurações do pDAO
- Gastos únicos do tesouro
- Gastos recorrentes do tesouro (comitês de gestão)
- Membros do conselho de segurança
Para maiores detalhes e fundamentos, consulte tipos de proposta. É importante entender que uma proposta pDAO é uma entidade on-chain que existe para executar mudanças no nível do protocolo.
Processo de Governança
Uma proposta deve ser prevista pelo processo de governança antes de acabar on-chain.
As mudanças no protocolo Rocket Pool são propostas, votadas e executadas usando um processo de governança rigoroso, porém transparente. O processo começa com uma discussão informal de uma ideia dentro da comunidade do Discord. Essa ideia então progride para discussões formais no canal #governance no Discord e no Fórum DAO, onde passa por pesquisa, modelagem e escrutínio completos em preparação para uma Proposta de Melhoria do Rocket Pool (RPIP). Após isso, um rascunho de RPIP é preparado e revisado por revisores de RPIP designados para garantir sua qualidade e prontidão para apresentação ao DAO. A proposta de rascunho é então apresentada ao DAO no fórum para revisão adicional, feedback e incorporação de quaisquer mudanças necessárias. Uma vez que a proposta tenha sido refinada com base no input da comunidade, uma enquete é levantada no fórum do DAO para avaliar a prontidão para finalizar o texto do RPIP. Se a enquete passar, indicando aprovação da comunidade, o RPIP é marcado como final e pronto para uma votação do Protocol DAO, que é conduzida via Snapshot para determinar se a proposta deve ser implementada.
A partir daqui, o Oracle DAO levantará uma proposta on-chain. Existe uma janela na qual o Protocol DAO, Oracle DAO e a comunidade podem revisar a proposta. Se o consenso for alcançado, a proposta é executada e as mudanças são aplicadas ao protocolo.
Uma representação visual útil deste processo pode ser encontrada no site do Rocket Pool.
Pré-requisito
Por favor, leia o ciclo de vida de uma proposta antes de prosseguir. Ele explicará as diferenças entre todos os períodos de votação e as ações que podem ser tomadas durante cada período.
O resto desta página o guiará pelos passos necessários para participar de propostas pDAO on-chain.
Inicializando a Votação
Se você é um operador de nó que se registrou antes da atualização Houston, você precisa inicializar a votação para desbloquear o poder de voto. Tenha em mente que ter pelo menos um minipool é um requisito para ter poder de voto.
Este comando levantará o prompt abaixo. Por favor, leia-o cuidadosamente:
- Se você responder com
direct, o poder de voto será inicializado para o seu nó e você poderá votar diretamente nas propostas do Protocol DAO. - Se você responder com
delegate, você terá a oportunidade de economizar um pouco de gás ao inicializar a votação e definir um delegado dentro da mesma transação.
Você só precisa fazer isso uma vez. Isso configura as informações de snapshot inicial para um nó. Após você inicializar a votação, cada ação tomada atualizará as informações de snapshot do seu nó. Uma vez que seu poder de voto esteja inicializado, você pode verificar quanto você tem usando o seguinte comando do smartnode:
Sempre que uma nova proposta é criada, uma árvore de votação representando um snapshot do poder de voto da rede e informações de delegados é criada em conjunto com a nova proposta. Isso significa que o poder de voto do seu nó não será incluído em uma proposta se ela foi levantada antes de você inicializar a votação. rocketpool pdao status exibirá o poder de voto do seu nó no bloco mais recente, que pode ou não ser representativo do seu poder de voto em uma proposta específica.
Auto Inicializar Poder de Voto
A versão 1.13.8 do Smartnode introduz um novo recurso Auto Initialize Vote Power, que foi projetado para inicializar automaticamente o poder de voto em nós que ainda não o fizeram. O poder de voto inicializado automaticamente é auto-delegado. Este recurso pode ser configurado nas configurações do Smartnode executando rocketpool service config e navegando até a seção Smartnode and TX Fees.
O Auto-Init Vote Power Gas Threshold é um limite (em gwei) nesta transação automática. Você pode optar por não participar desta tarefa definindo o limite como 0. Sinta-se livre para optar por não participar se o seu nó foi registrado após a atualização Houston ou se o poder de voto já está habilitado.
Definindo seu Endereço de Sinalização do Snapshot
Definir seu endereço de sinalização do Snapshot permitirá que você participe de votações do Snapshot em um navegador ou dispositivo móvel sem ter que expor chaves de nó para uma carteira quente.
Existem algumas coisas para preparar:
- O endereço do seu nó
- Um endereço que você deseja usar para votação de snapshot (endereço de sinalização)
Você estará assinando uma mensagem dizendo que o endereço do seu nó pode delegar para o novo endereço. Esta mensagem declara sua intenção de usar o endereço da sua carteira como um endereço de sinalização do Snapshot.
Selecione qual rede você está usando em uma das abas abaixo.
Não carregue a chave privada do seu nó em uma carteira quente. Por favor, escolha outra conta para ser seu endereço de sinalização. Após definir o endereço de sinalização, você pode usá-lo para votar no Snapshot com o poder de voto do seu nó.
Comece conectando o endereço que você deseja usar como endereço de sinalização ao site usando MetaMask, WalletConnect, ou qualquer um dos outros métodos que o site suporta. Você será então apresentado com este diálogo para procurar o endereço do seu nó.
Em seguida, você digitará o endereço do seu nó e então clicará no botão laranja "Find". Isso verificará se o endereço é um nó registrado e então o levará para o próximo passo.
Certifique-se de ter o endereço de nó correto antes de fazer isso! se você precisar confirmar o endereço do seu nó, você pode recuperá-lo rapidamente via CLI usando o comando rocketpool node status.
Uma vez que você tenha feito login e confirmado o endereço do seu nó, você verá seu endereço de sinalização do Snapshot. Deve ser o mesmo que a conta com a qual você fez login no site. Verifique novamente se está correto antes de prosseguir. Uma vez que esteja confiante de que está conectado à conta desejada, clique no botão laranja "Sign Message". Você verá um prompt na extensão da sua carteira para assinar a seguinte mensagem:
Assinar não custará gás, mas definir custará. Após você assinar, o frontend lhe dará um comando para colar no smartnode. Vá em frente e cole-o na CLI do seu smartnode e siga os passos solicitados. O comando deve parecer algo assim:
Se você ver esta mensagem na sua CLI, está tudo pronto!
Não se preocupe se você fechar acidentalmente o site ou perder o comando. Você pode simplesmente repetir os passos e assinar novamente usando o mesmo endereço de nó e endereço de sinalização. O frontend usa signer.Signmessage() da biblioteca ethers, o que significa que sua assinatura é determinística dada a mesma entrada. Clique aqui para saber mais.
Limpar seu endereço de sinalização é bastante fácil, apenas use este comando na CLI:
Permitindo Bloqueio de RPL
Você pode ignorar este passo se estiver interessado apenas em votar em uma proposta. Permitir o bloqueio de RPL só é necessário para aqueles que desejam propor ou desafiar uma proposta.
O bloqueio de RPL é necessário para propor e desafiar. Por padrão, bloquear RPL para qualquer finalidade será desabilitado. Os operadores de nó optarão por realizar atividades de governança habilitando o bloqueio de RPL do seu nó ou endereço de retirada primária. Você pode fazer isso usando este comando no Smartnode:
Isso o solicitará a permitir o bloqueio de RPL ao criar ou desafiar propostas de governança. Por outro lado, você pode usar o seguinte comando para optar por não participar do bloqueio de RPL:
O RPL bloqueado age da mesma forma que o RPL em stake regular para fins de recompensas, votação e requisitos de colateral. O RPL bloqueado não é contado para limites de retirada de RPL.
Delegando Poder de Voto
Um operador de nó pode eleger delegar seu poder de voto a outro operador de nó. O único requisito é que seu delegado seja um nó registrado.
Para delegar poder de voto on-chain a outro nó, use o seguinte comando:
Se você delegou seu poder de voto a outro operador de nó, você pode redefinir isso definindo o endereço do delegado para o endereço do seu próprio nó.
- Durante a fase 1 de uma proposta: Votantes e Delegados podem votar em uma proposta.
- Durante a fase 2 de uma proposta: Operadores de Nó que delegaram seu voto têm a oportunidade de reverter o voto do seu Delegado, se discordarem.
Se você é um operador de nó com poder de voto delegado, você deve votar durante a fase 1 de votação para que o poder de voto delegado conte para a proposta. Seu voto na fase 1 valerá seu poder de voto local + poder de voto delegado. Seu voto na fase 2 vale apenas seu poder de voto local.
Criando uma Proposta
Para ser elegível para propor, um nó deve atender a alguns requisitos:
- Incluído no snapshotting (seja inicializando a votação ou registrando-se pós Houston)
- Deve ter pelo menos um minipool
- Tem poder de voto diferente de zero
- Permitiu o bloqueio de RPL
- Tem um stake de RPL (menos qualquer RPL já bloqueado) maior que o bond da proposta
Propostas existem para mudar parâmetros e executar código no nível do protocolo! Deve haver discussão e consenso através do processo de governança antes que uma proposta seja criada on-chain.
Use o comando rocketpool pdao propose para abrir um menu de opções
Cada um desses comandos o solicitará com uma lista de inputs para criar sua proposta desejada. Neste guia, convidaremos um nó para o conselho de segurança para servir como exemplo. Para levantar uma proposta para convidar um nó para o conselho de segurança, você usaria o comando:
Tenha em mente que este passo terá alguma variação leve dependendo do tipo de proposta. Este comando específico: rocketpool pdao propose security-council invite o solicitará a inserir um ID seguido de um endereço de membro.
Após isso ser incluído em um bloco, uma proposta pDAO será criada! A proposta entrará no período de atraso de voto após a criação.
Visualizando o Estado de uma Proposta
Cada proposta recebe um proposalID. Neste caso, nossa proposta para convidar 0xBdbc... para o conselho de segurança é representada com ID 71. Existem algumas maneiras de visualizar o estado da proposta. Um método exibirá uma lista de cada proposta pdao junto com seu estado (pendente, bem-sucedida, executada, etc). O segundo método exibe detalhes aprofundados sobre uma proposta específica.
Para listar todas as propostas, use o seguinte comando:
Isso exibirá uma lista de todas as propostas e seu estado
Aqui podemos ver que nossa proposta invite test-member tem um ID de 71 e está no estado pendente. Neste estado,
desafiadores podem disputar a validade da
merkle pollard (usada para calcular o poder de voto) fornecida pelo proponente. Quando proposal.vote.delay.time terminar,
a proposta fará a transição para fases de votação ativas. Sinta-se livre para revisar ciclo de vida de uma
proposta para uma atualização.
Votando em uma Proposta
Durante um período de votação, Operadores de Nó e Delegados podem votar com uma das quatro opções:
Seu poder de voto será aplicado à opção de sua escolha. O poder de voto é uma função do "stake efetivo de RPL". Uma leitura mais detalhada pode ser encontrada no repositório rocketpool-research.
Se você é um operador de nó com poder de voto delegado, você deve votar durante a fase 1 de votação para que o poder de voto delegado conte para a proposta. Seu voto na fase 1 valerá seu poder de voto local + poder de voto delegado. Seu voto na fase 2 vale apenas seu poder de voto local. Por favor, tenha em mente que um nó pode votar uma vez e apenas uma vez em uma proposta, então escolha cuidadosamente.
Use este comando para votar:
Você será solicitado a selecionar uma proposta para votar se houver pelo menos uma proposta em uma fase de votação ativa. O menu deve exibir todas as propostas nas quais seu nó é elegível para votar:
Após selecionar uma opção, você será perguntado como deseja votar.
Selecionar uma opção exibirá então seu poder de voto e o solicitará a enviar a transação:
Você votou com sucesso na proposta uma vez que a transação esteja incluída no bloco! Neste ponto, você pode usar rocketpool pdao proposal details <proposal-id> para visualizar o estado da proposta. Uma proposta precisa atingir proposal.quorum poder de voto necessário e uma maioria poder de voto a favor para ser bem-sucedida.
Para o exemplo acima passar, o poder de voto precisa exceder um quórum de 140970562215 poder de voto. Há 197980809837 poder de voto a favor e nenhum voto contra ou abstido. A proposta está preparada para o sucesso e pronta para execução até o final de proposal.vote.phase2.time.
Executando uma Proposta Bem-Sucedida
Parabéns! Sua proposta foi aprovada! Agora tudo o que resta fazer é executar a proposta. Tenha em mente que qualquer pessoa pode ser o executor de uma proposta. Para executar uma proposta bem-sucedida, digite o comando:
Selecionar uma opção o solicitará a enviar uma transação. Uma vez que esta transação seja incluída em um bloco, a mudança será aplicada ao protocolo Rocket Pool!
Reivindicando Bonds e Recompensas
Proponentes ou Desafiadores podem reivindicar seus bonds após a conclusão de uma proposta. Dependendo do resultado de uma proposta, um Proponente ou Desafiador pode ou não ser capaz de reivindicar seu proposal.bond e proposal.challenge.bond.
Aqui estão algumas regras que ditam as condições nas quais bonds podem ser reivindicados:
- Se uma proposta for derrotada, o proponente perde seu bond que é dividido proporcionalmente entre os desafiadores que contribuíram para a derrota da proposta. Todos os outros desafiadores recebem apenas seu bond de volta.
- Contribuir para a derrota de uma proposta significa que um desafiador enviou um índice que mais tarde foi provado estar incorreto pela incapacidade do proponente de responder a um desafio. É possível que existam múltiplos índices incorretos, mas apenas aqueles que resultaram na derrota da proposta compartilham a recompensa. Todos os outros desafiadores recebem apenas seu bond de volta.
- Se um desafiador desafiar um nó, o proponente responder, e a proposta não for derrotada. O proponente pode reivindicar os bonds de desafio dos desafios inválidos.
- Se uma proposta for derrotada, o proponente perde seu bond que é dividido proporcionalmente entre os desafiadores que contribuíram para a derrota da proposta.
Use este comando para reivindicar bonds:
Isso exibirá cada proposta da qual você é elegível para reivindicar bonds. Você pode reivindicar bonds de uma proposta especificada, ou pode reivindicar bonds e recompensas de todas as propostas elegíveis.
Uma vez que você tenha selecionado uma opção, você será solicitado com as recomendações de custos de gás atuais da rede; confirme sua seleção de preço de gás e siga o resto dos prompts.
Note que se você selecionar a primeira opção para reivindicar todas as propostas disponíveis, elas serão executadas individualmente e não como uma transação.
Criando um Gasto Recorrente do Tesouro
Você precisará preparar alguns inputs para criar um gasto recorrente do tesouro:
- Um nome de contrato
- O endereço do destinatário
- Quantidade de RPL a enviar por período
- A hora de início para o pagamento recorrente (como um timestamp UNIX)
- A duração de cada período de pagamento em horas / minutos / segundos (por exemplo, 168h0m0s)
- Número de períodos de pagamento
O destinatário precisará manter nota do nome do contrato para reivindicar pagamentos. Não se preocupe, pois esta informação é armazenada e pode ser recuperada usando o comando rocketpool pdao proposals details <proposal-id>
Para levantar uma proposta para configurar um gasto recorrente do tesouro, use o seguinte comando do smartnode e siga os prompts:
Aqui está como fica tudo junto:
Uma vez que você tenha inserido todos os inputs necessários, uma proposta para criar um pagamento recorrente será levantada. Quando o pDAO aprovar e executar esta proposta, o destinatário receberá 1 RPL começando em 2024-06-09 12:13:53 +0000 UTC a cada 720 horas por um total de 24 pagamentos.
Reivindicando um Gasto Recorrente do Tesouro
Reivindicar pagamentos recorrentes deve ser bem simples! Navegue até nossa ferramenta frontend aqui para fazer isso. Se você está experimentando isso no Hoodi testnet, use este link.
Uma vez que esteja no site, clique no botão connect wallet. Por favor, leia e aceite os Termos de Serviço & Política de Privacidade, isso habilitará diferentes maneiras de conectar, então clique em connect metamask.
O MetaMask o solicitará a selecionar uma conta para conectar ao site. Depois de ter feito login, você precisará inserir o nome do contrato. Fazer isso exibirá todos os detalhes relevantes. Certifique-se de verificar duas vezes o endereço do destinatário. Qualquer pessoa pode chamar a função de reivindicação, mas cada contrato de pagamento terá um destinatário designado para dispersar RPL.
Você pode reivindicar seus pagamentos a qualquer momento, você apenas receberá o total de RPL não reivindicado até o período mais recente. Alternativamente, você pode esperar até que todos os períodos tenham passado para coletar tudo de uma vez e economizar em gás.
Apenas aperte o grande botão laranja de reivindicação quando estiver pronto e revise a transação no metamask (ou sua carteira preferida). Uma vez feito isso, está tudo pronto!