Participando de Propostas On-Chain do pDAO
Qualquer nó com poder de voto diferente de zero pode criar ou participar de uma proposta do pDAO a qualquer momento. As propostas podem ser de um dos seguintes tipos:
- Alteração 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 maior detalhamento e fundamentação, consulte tipos de proposta. É importante entender que uma proposta do 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 chegar on-chain.
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 completa, modelagem e análise em preparação para uma Proposta de Melhoria do Rocket Pool (RPIP). Em seguida, um rascunho de RPIP é preparado e revisado por revisores designados de RPIP para garantir sua qualidade e prontidão para apresentação ao DAO. O rascunho da proposta é então apresentado ao DAO no fórum para revisão adicional, feedback e incorporação de quaisquer mudanças necessárias. Depois que a proposta foi refinada com base no feedback da comunidade, uma enquete é criada no fórum do DAO para avaliar a prontidão para finalizar o texto da RPIP. Se a enquete for aprovada, indicando aprovação da comunidade, a RPIP é marcada como final e pronta 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 criará uma proposta on-chain. Existe uma janela na qual o Protocol DAO, Oracle DAO e a comunidade podem revisar a proposta. Se houver consenso, 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. Isso 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 restante desta página o guiará pelas etapas necessárias para participar de propostas on-chain do pDAO.
Inicializando a Votação
Se você é um operador de nó que se registrou antes da atualização Houston, 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 exibirá o prompt abaixo. Por favor, leia com atenção:
- Se você responder com
direct, o poder de voto será inicializado para o seu nó e você poderá votar diretamente em propostas do Protocol DAO. - Se você responder com
delegate, terá a oportunidade de economizar um pouco de gas inicializando a votação e definindo um delegado na mesma transação.
Você só precisa fazer isso uma vez. Ele configura as informações de snapshot iniciais para um nó. Depois de 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 criada antes de você inicializar a votação. rocketpool pdao status exibirá o poder de voto do seu nó no
último bloco, que pode ou não ser representativo do seu poder de voto em uma proposta específica.
Inicialização Automática do 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) para esta transação automática. Você pode desativar esta tarefa definindo o limite como 0. Sinta-se à vontade para desativar 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 as chaves do nó a uma carteira quente.
Há algumas coisas para preparar:
- O endereço do seu nó
- Um endereço que você deseja usar para votação no 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. Depois de 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á apresentado a este diálogo para procurar o endereço do seu nó.
Em seguida, você inserirá o endereço do seu nó e clicará no botão laranja "Find". Isso verificará se o endereço é um nó registrado e então o levará para a próxima etapa.
Certifique-se de ter o endereço de nó correto antes de fazer isso! Se precisar confirmar o endereço do seu nó, você pode
recuperá-lo rapidamente via CLI usando o comando rocketpool node status.
Depois de fazer login e confirmar o endereço do seu nó, você verá seu endereço de sinalização do Snapshot. Deve ser o mesmo da conta em que você entrou no site. Verifique novamente se isso está correto antes de prosseguir. Quando estiver confiante de que está logado na conta desejada, clique no botão laranja "Sign Message". Você verá um prompt no seu aplicativo de extensão de carteira para assinar a seguinte mensagem:
Assinar não custará nenhum gas, mas definir custará. Depois de assinar, o frontend fornecerá um comando para colar no smartnode. Vá em frente e cole-o no CLI do seu smartnode e siga as etapas solicitadas. O comando deve ser algo assim:
Se você ver esta mensagem no seu CLI, está tudo pronto!
Não se preocupe se fechar acidentalmente o site ou perder o comando. Você pode simplesmente repetir as etapas 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 dado a mesma entrada.
Clique aqui para saber mais.
Limpar seu endereço de sinalização é bem fácil, basta usar este comando no CLI:
Permitindo Bloqueio de RPL
Você pode ignorar esta etapa se estiver interessado apenas em votar em uma proposta. Permitir o bloqueio de RPL é necessário apenas para aqueles que desejam propor ou contestar uma proposta.
O bloqueio de RPL é necessário para propor e contestar. Por padrão, o bloqueio de RPL para qualquer finalidade estará desabilitado. Os operadores de nó optarão por realizar atividades de governança habilitando o bloqueio de RPL de seu nó ou endereço de retirada primário. Você pode fazer isso usando este comando no Smartnode:
Isso solicitará que você permita o bloqueio de RPL ao criar ou contestar propostas de governança. Por outro lado, você pode usar o seguinte comando para desativar o bloqueio de RPL:
O RPL bloqueado age da mesma forma que o RPL stake regular para fins de recompensas, votação e requisitos de garantia. O RPL bloqueado não é contado para os limites de retirada de RPL.
Delegando Poder de Voto
Um operador de nó pode optar por delegar seu poder de voto para outro operador de nó. O único requisito é que seu delegado seja um nó registrado.
Para delegar poder de voto on-chain para outro nó, use o seguinte comando:
Se você delegou seu poder de voto para outro operador de nó, 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 anular o voto de seu Delegado, se discordarem.
Se você é um operador de nó com poder de voto delegado, deve votar durante a fase de votação 1 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 após Houston)
- Deve ter pelo menos um minipool
- Tem poder de voto diferente de zero
- Permitiu bloqueio de RPL
- Tem um stake de RPL (menos qualquer RPL já bloqueado) maior que o bond da proposta
Propostas existem para alterar 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 exibir um menu de opções
Cada um desses comandos solicitará uma lista de entradas para criar a proposta desejada. Neste guia, convidaremos um nó para o conselho de segurança como exemplo. Para criar uma proposta para convidar um nó para o conselho de segurança, você usaria o comando:
Tenha em mente que esta etapa terá alguma variação leve dependendo do tipo de proposta. Este comando específico:
rocketpool pdao propose security-council invite solicitará que você insira um ID seguido de um endereço de membro.
Depois que isso for incluído em um bloco, uma proposta do pDAO será criada! A proposta entrará no período de atraso de voto após a criação.
Visualizando o Estado de uma Proposta
Toda 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 do 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,
contestadores podem contestar a validade do
merkle pollard (usado para calcular o poder de voto) fornecido pelo proponente. Quando proposal.vote.delay.time terminar,
a proposta passará para as fases de votação ativas. Sinta-se à vontade 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 "effective RPL stake." Uma leitura mais detalhada pode ser encontrada no repositório rocketpool-research.
Se você é um operador de nó com poder de voto delegado, deve votar durante a fase de votação 1 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. Tenha em mente que um nó pode votar apenas uma vez em uma proposta, então escolha com cuidado.
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á questionado sobre como deseja votar.
Selecionar uma opção exibirá seu poder de voto e, em seguida, solicitará que você envie a transação:
Você votou com sucesso na proposta depois que a transação for 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
poder de voto necessário de proposal.quorum e uma maioria de 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 abstenção. A proposta está pronta 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 solicitará que você envie 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 Contestadores podem reivindicar seus bonds após a conclusão de uma proposta. Dependendo do resultado de uma proposta,
um Proponente ou Contestador 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 os bonds podem ser reivindicados:
- Se uma proposta for derrotada, o proponente perde seu bond que é dividido proporcionalmente entre os contestadores que contribuíram para a derrota da proposta. Todos os outros contestadores recebem apenas seu bond de volta.
- Contribuir para a derrota de uma proposta significa que um contestador enviou um índice que mais tarde foi provado ser 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 contestadores recebem apenas seu bond de volta.
- Se um contestador 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 contestadores que contribuíram para a derrota da proposta.
Use este comando para reivindicar bonds:
Isso exibirá todas as propostas das quais 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.
Depois de selecionar uma opção, você receberá as recomendações de custos de gas atuais da rede; confirme sua seleção de preço de gas e siga o restante dos prompts.
Observe 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 algumas entradas para criar um gasto recorrente do tesouro:
- Um nome de contrato
- O endereço do destinatário
- Quantidade de RPL a ser enviada 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á anotar o nome do contrato para reivindicar os pagamentos. Não se preocupe, pois esta
informação está armazenada e pode ser recuperada usando o comando rocketpool pdao proposals details <proposal-id>
Para criar uma proposta de configuração de gasto recorrente do tesouro, use o seguinte comando do smartnode e siga os prompts:
Aqui está como tudo fica junto:
Depois de inserir todas as entradas necessárias, uma proposta para criar um pagamento recorrente será criada. 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 na testnet Hoodi, use este link.
Quando estiver 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 se conectar, depois clique em connect metamask.
O MetaMask solicitará que você selecione uma conta para se conectar ao site. Depois de fazer login, você precisará inserir o nome do contrato. Fazer isso exibirá todos os detalhes relevantes. Certifique-se de verificar novamente 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ê receberá apenas o RPL total 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 gas.
Basta apertar o grande botão laranja de reivindicação quando estiver pronto e revisar a transação no metamask (ou sua carteira preferida). Depois que isso for feito, está tudo pronto!