Participando en propuestas on-chain del pDAO
Cualquier nodo con un poder de voto distinto de cero puede presentar o participar en una propuesta del pDAO en cualquier momento. Las propuestas pueden ser de uno de los siguientes tipos:
- Cambiar configuraciones del pDAO
- Gastos únicos del tesoro
- Gastos recurrentes del tesoro (comités de gestión)
- Membresía del consejo de seguridad
Para mayor detalle y justificación, consulta tipos de propuestas. Es importante entender que una propuesta del pDAO es una entidad on-chain que existe para ejecutar cambios a nivel del protocolo.
Proceso de gobernanza
Una propuesta debe ser anticipada por el proceso de gobernanza antes de que termine on-chain.
Los cambios al protocolo Rocket Pool se proponen, votan y ejecutan mediante un proceso de gobernanza estricto pero transparente. El proceso comienza con una discusión informal de una idea dentro de la comunidad de Discord. Esta idea luego progresa a discusiones formales en el canal #governance de Discord y el Foro DAO, donde se somete a investigación exhaustiva, modelado y escrutinio en preparación para una Propuesta de Mejora de Rocket Pool (RPIP). Después de esto, se prepara un borrador de RPIP y es revisado por revisores designados de RPIP para garantizar su calidad y preparación para presentación al DAO. El borrador de propuesta se presenta luego al DAO en el foro para una mayor revisión, retroalimentación e incorporación de cualquier cambio necesario. Una vez que la propuesta ha sido refinada según los comentarios de la comunidad, se realiza una encuesta en el foro del DAO para medir la preparación para finalizar el texto del RPIP. Si la encuesta es aprobada, indicando la aprobación de la comunidad, el RPIP se marca como final y listo para un voto del DAO del Protocolo, que se realiza mediante Snapshot para determinar si la propuesta debe ser implementada.
Desde aquí, el Oracle DAO presentará una propuesta on-chain. Hay una ventana en la que el DAO del Protocolo, el Oracle DAO y la comunidad pueden revisar la propuesta. Si se alcanza un consenso, la propuesta se ejecuta y los cambios se aplican al protocolo.
Una práctica representación visual de este proceso se puede encontrar en el sitio web de Rocket Pool.
Requisito previo
Lee el ciclo de vida de una propuesta antes de continuar. Explicará las diferencias entre todos los períodos de votación y las acciones que se pueden tomar durante cada período.
El resto de esta página te guiará a través de los pasos necesarios para participar en propuestas on-chain del pDAO.
Inicializando la votación
Si eres un operador de nodo que se registró antes de la actualización Houston, necesitas inicializar la votación para desbloquear el poder de voto. Ten en cuenta que tener al menos un minipool es un requisito para tener poder de voto.
Este comando mostrará el siguiente mensaje. Léelo cuidadosamente:
- Si respondes con
direct, el poder de voto se inicializará en tu nodo y podrás votar directamente en propuestas del DAO del Protocolo. - Si respondes con
delegate, tendrás la oportunidad de ahorrar un poco de gas al inicializar la votación y establecer un delegado dentro de la misma transacción.
Solo necesitas hacer esto una vez. Configura la información de snapshot inicial para un nodo. Después de inicializar la votación, cada acción tomada actualizará la información de snapshot de tu nodo. Una vez que tu poder de voto esté inicializado, puedes verificar cuánto tienes usando el siguiente comando de smartnode:
Siempre que se crea una nueva propuesta, se crea un árbol de votación que representa un snapshot del poder de voto de la red y la información del delegado en conjunto con la nueva propuesta. Esto significa que el poder de voto de tu nodo no se incluirá en una propuesta si se presentó antes de que inicializaras la votación. rocketpool pdao status mostrará el poder de voto de tu nodo en el último bloque, que puede o no ser representativo de tu poder de voto en una propuesta particular.
Inicialización automática del poder de voto
La versión 1.13.8 del Smartnode introduce una nueva característica Inicialización automática del poder de voto, que está diseñada para inicializar automáticamente el poder de voto en nodos que aún no lo han hecho. El poder de voto inicializado automáticamente es auto-delegado. Esta característica puede configurarse en la configuración del Smartnode ejecutando rocketpool service config y navegando a la sección Smartnode and TX Fees.
El Umbral de gas de inicialización automática del poder de voto es un límite (en gwei) para esta transacción automática. Puedes optar por no participar en esta tarea estableciendo el umbral en 0. Siéntete libre de optar por no participar si tu nodo fue registrado después de la actualización Houston o si el poder de voto ya está habilitado.
Configurando tu dirección de señalización de Snapshot
Configurar tu dirección de señalización de Snapshot te permitirá participar en votos de Snapshot en un navegador o dispositivo móvil sin tener que exponer las claves de nodo a una billetera caliente.
Hay algunas cosas que preparar:
- La dirección de tu nodo
- Una dirección que desees usar para votar en Snapshot (dirección de señalización)
Firmarás un mensaje diciendo que la dirección de tu nodo puede delegar a la nueva dirección. Este mensaje declara tu intención de usar tu dirección de billetera como una dirección de señalización de Snapshot.
Selecciona qué red estás usando de una de las pestañas a continuación.
No cargues la clave privada de tu nodo en una billetera caliente. Elige otra cuenta para que sea tu dirección de señalización. Después de configurar la dirección de señalización, puedes usarla para votar en Snapshot con el poder de voto de tu nodo.
Comienza conectando la dirección que deseas usar como dirección de señalización al sitio web usando MetaMask, WalletConnect, o cualquiera de los otros métodos que el sitio web admita. Luego se te presentará este diálogo para buscar tu dirección de nodo.
A continuación, ingresarás tu dirección de nodo y luego harás clic en el botón naranja "Find". Esto verificará si la dirección es un nodo registrado y luego te llevará al siguiente paso.
Asegúrate de tener la dirección de nodo correcta antes de hacer esto! Si necesitas confirmar la dirección de tu nodo, puedes recuperarla rápidamente mediante la CLI usando el comando rocketpool node status.
Una vez que hayas iniciado sesión y confirmado tu dirección de nodo, verás tu dirección de señalización de Snapshot. Debería ser la misma que la cuenta con la que has iniciado sesión en el sitio. Verifica que esto sea correcto antes de continuar. Una vez que estés seguro de que has iniciado sesión en la cuenta deseada, haz clic en el botón naranja "Sign Message". Verás una solicitud en tu extensión de billetera para firmar el siguiente mensaje:
Firmar no te costará gas, pero configurar sí lo hará. Después de firmar, el frontend te dará un comando para pegar en el smartnode. Adelante y pégalo en la CLI de tu smartnode y sigue los pasos solicitados. El comando debería verse algo así:
Si ves este mensaje en tu CLI, estás listo!
No te preocupes si cierras accidentalmente el sitio o pierdes el rastro del comando. Simplemente puedes repetir los pasos y firmar nuevamente usando la misma dirección de nodo y dirección de señalización. El frontend usa signer.Signmessage() de la biblioteca ethers, lo que significa que tu firma es determinística dado el mismo input.
Haz clic aquí para aprender más.
Limpiar tu dirección de señalización es bastante fácil, solo usa este comando en la CLI:
Permitiendo el bloqueo de RPL
Puedes ignorar este paso si solo estás interesado en votar en una propuesta. Permitir el bloqueo de RPL solo es necesario para aquellos que deseen proponer o desafiar una propuesta.
El bloqueo de RPL es requerido para proponer y desafiar. Por defecto, el bloqueo de RPL para cualquier propósito estará deshabilitado. Los operadores de nodo optarán por realizar actividades de gobernanza al habilitar el bloqueo de RPL desde su nodo o dirección de retiro principal. Puedes hacerlo usando este comando en el Smartnode:
Esto te pedirá que permitas el bloqueo de RPL al crear o desafiar propuestas de gobernanza. Por el contrario, puedes usar el siguiente comando para optar por no participar en el bloqueo de RPL:
El RPL bloqueado actúa de la misma manera que el RPL apostado regular para los propósitos de recompensas, votación y requisitos de colateral. El RPL bloqueado no se cuenta hacia los umbrales para retirar RPL.
Delegando el poder de voto
Un operador de nodo puede elegir delegar su poder de voto a otro operador de nodo. El único requisito es que tu delegado sea un nodo registrado.
Para delegar el poder de voto on-chain a otro nodo, usa el siguiente comando:
Si has delegado tu poder de voto a otro operador de nodo, puedes restablecer esto configurando la dirección del delegado a la dirección de tu propio nodo.
- Durante la fase 1 de una propuesta: Los votantes y delegados pueden emitir su voto en una propuesta.
- Durante la fase 2 de una propuesta: Los operadores de nodo que han delegado su voto tienen la oportunidad de anular el voto de su delegado, si no están de acuerdo.
Si eres un operador de nodo con poder de voto delegado, debes votar durante la fase de votación 1 para que el poder de voto delegado cuente hacia la propuesta. Tu voto en la fase 1 valdrá tu poder de voto local + poder de voto delegado. Tu voto en la fase 2 vale solo tu poder de voto local.
Creando una propuesta
Para ser elegible para proponer, un nodo debe cumplir algunos requisitos:
- Incluido en el snapshot (ya sea inicializando la votación o registrándose después de Houston)
- Debe tener al menos un minipool
- Tiene poder de voto distinto de cero
- Ha permitido el bloqueo de RPL
- Tiene una participación de RPL (menos cualquier RPL ya bloqueado) mayor que el bono de propuesta
Las propuestas existen para cambiar parámetros y ejecutar código a nivel del protocolo! Debe haber discusión y consenso a través del proceso de gobernanza antes de que se cree una propuesta on-chain.
Usa el comando rocketpool pdao propose para abrir un menú de opciones
Cada uno de estos comandos te pedirá una lista de entradas para crear tu propuesta deseada. En esta guía, invitaremos a un nodo al consejo de seguridad para servir como ejemplo. Para presentar una propuesta para invitar a un nodo al consejo de seguridad, usarías el comando:
Ten en cuenta que este paso tendrá una ligera variación dependiendo del tipo de propuesta. Este comando en particular:
rocketpool pdao propose security-council invite te pedirá que ingreses un ID seguido de una dirección de miembro.
Después de que esto se incluya en un bloque, se creará una propuesta del pDAO! La propuesta entrará en el período de retraso de votación al momento de la creación.
Viendo el estado de una propuesta
A cada propuesta se le asigna un proposalID. En este caso, nuestra propuesta para invitar a 0xBdbc... al consejo de seguridad está representada con el ID 71. Hay algunas formas de ver el estado de la propuesta. Un método mostrará una lista de cada propuesta del pdao junto con su estado (pendiente, exitosa, ejecutada, etc.). El segundo método muestra detalles en profundidad sobre una propuesta específica.
Para listar todas las propuestas, usa el siguiente comando:
Esto mostrará una lista de todas las propuestas y su estado
Aquí podemos ver que nuestra propuesta invite test-member tiene un ID de 71 y está en estado pendiente. En este estado,
los retadores pueden disputar la validez del
pollard de Merkle (usado para calcular el poder de voto) suministrado por el proponente. Cuando expire proposal.vote.delay.time,
la propuesta pasará a las fases de votación activas. Siéntete libre de revisar el ciclo de vida de una
propuesta para un repaso.
Votando en una propuesta
Durante un período de votación, los operadores de nodo y los delegados pueden emitir un voto con una de cuatro opciones:
Su poder de voto se aplicará a la opción de su elección. El poder de voto es una función de la "participación efectiva de RPL". Una lectura más detallada se puede encontrar en el repositorio rocketpool-research.
Si eres un operador de nodo con poder de voto delegado, debes votar durante la fase de votación 1 para que el poder de voto delegado cuente hacia la propuesta. Tu voto en la fase 1 valdrá tu poder de voto local + poder de voto delegado. Tu voto en la fase 2 vale solo tu poder de voto local. Ten en cuenta que un nodo puede votar una sola vez en una propuesta, así que elige cuidadosamente.
Usa este comando para emitir un voto:
Se te pedirá que selecciones una propuesta para votar si hay al menos una propuesta en una fase de votación activa. El menú debería mostrar todas las propuestas en las que tu nodo es elegible para votar:
Después de seleccionar una opción, se te preguntará cómo deseas emitir tu voto.
Seleccionar una opción mostrará tu poder de voto y luego te pedirá que envíes la transacción:
Has votado con éxito en la propuesta una vez que la transacción se incluye en el bloque! En este punto, puedes usar
rocketpool pdao proposal details <proposal-id> para ver el estado de la propuesta. Una propuesta necesita alcanzar
proposal.quorum poder de voto requerido y una mayoría de poder de voto a favor para tener éxito.
Para que el ejemplo anterior sea aprobado, el poder de voto necesita exceder un quórum de 140970562215 poder de voto. Hay
197980809837 poder de voto a favor y no hay votos en contra o abstenciones. La propuesta está preparada para el éxito y lista
para ejecución al final de proposal.vote.phase2.time.
Ejecutando una propuesta exitosa
Felicidades! Tu propuesta ha sido aprobada! Ahora todo lo que queda por hacer es ejecutar la propuesta. Ten en cuenta que cualquiera puede ser el ejecutor de una propuesta. Para ejecutar una propuesta exitosa, escribe el comando:
Seleccionar una opción te pedirá que envíes una transacción. Una vez que esta transacción se incluya en un bloque, el cambio se aplicará al protocolo Rocket Pool!
Reclamando bonos y recompensas
Los proponentes o retadores pueden reclamar sus bonos al concluir una propuesta. Dependiendo del resultado de una propuesta, un proponente o retador puede o no ser capaz de reclamar su proposal.bond y proposal.challenge.bond.
Aquí hay algunas reglas que dictan las condiciones bajo las cuales se pueden reclamar los bonos:
- Si una propuesta es derrotada, el proponente pierde su bono que se divide proporcionalmente entre los retadores que contribuyeron a la derrota de la propuesta. Todos los demás retadores reciben solo su bono de vuelta.
- Contribuir a la derrota de una propuesta significa que un retador presentó un índice que luego se demostró que era incorrecto por la incapacidad del proponente de responder a un desafío. Es posible que haya múltiples índices incorrectos pero solo aquellos que resultaron en la derrota de la propuesta comparten la recompensa. Todos los demás retadores reciben solo su bono de vuelta.
- Si un retador desafía a un nodo, el proponente responde, y la propuesta no es derrotada. El proponente puede reclamar los bonos de desafío de los desafíos inválidos.
- Si una propuesta es derrotada, el proponente pierde su bono que se divide proporcionalmente entre los retadores que contribuyeron a la derrota de la propuesta.
Usa este comando para reclamar bonos:
Esto mostrará cada propuesta de la que eres elegible para reclamar bonos. Puedes reclamar bonos de una propuesta especificada, o puedes reclamar bonos y recompensas de todas las propuestas elegibles.
Una vez que hayas seleccionado una opción, se te presentarán las recomendaciones de costos de gas actuales de la red; confirma tu selección de precio de gas y sigue el resto de las indicaciones.
Ten en cuenta que si seleccionas la primera opción para reclamar todas las propuestas disponibles, cada una se ejecutará individualmente y no como una transacción.
Creando un gasto recurrente del tesoro
Necesitarás preparar algunas entradas para crear un gasto recurrente del tesoro:
- Un nombre de contrato
- La dirección del destinatario
- Cantidad de RPL a enviar por período
- La hora de inicio para el pago recurrente (como una marca de tiempo UNIX)
- La duración de cada período de pago en horas / minutos / segundos (por ejemplo, 168h0m0s)
- Número de períodos de pago
El destinatario necesitará tomar nota del nombre del contrato para reclamar pagos. No te preocupes, ya que esta
información se almacena y puede recuperarse usando el comando rocketpool pdao proposals details <proposal-id>
Para presentar una propuesta para configurar un gasto recurrente del tesoro, usa el siguiente comando de smartnode y sigue las indicaciones:
Así es como se ve todo junto:
Una vez que hayas ingresado todas las entradas requeridas, se presentará una propuesta para crear un pago recurrente. Cuando el pDAO apruebe y ejecute esta propuesta, al destinatario se le asignará 1 RPL comenzando en 2024-06-09 12:13:53 +0000 UTC cada
720 horas para un total de 24 pagos.
Reclamando un gasto recurrente del tesoro
Reclamar pagos recurrentes debería ser bastante simple! Navega a nuestra herramienta frontend aquí para hacerlo. Si estás probando esto en la testnet Hoodi, usa este enlace en su lugar.
Una vez que estés en el sitio, haz clic en el botón connect wallet. Lee y acepta los Términos de Servicio y Política de Privacidad, esto habilitará diferentes formas de conectarse, luego haz clic en conectar metamask.
MetaMask te pedirá que selecciones una cuenta para conectarte al sitio web. Después de haber iniciado sesión, necesitarás ingresar el nombre del contrato. Hacerlo mostrará todos los detalles relevantes. Asegúrate de verificar la dirección del destinatario. Cualquiera puede llamar a la función de reclamo, pero cada contrato de pago tendrá un destinatario designado para dispersar RPL.
Puedes reclamar tus pagos en cualquier momento, solo recibirás el total de RPL no reclamado hasta el período más reciente. Alternativamente, puedes esperar hasta que todos los períodos hayan pasado para recoger todo de una vez y ahorrar en gas.
Solo presiona el gran botón naranja de reclamo cuando estés listo y revisa la transacción en metamask (o tu billetera preferida). Una vez que eso esté hecho, estás listo!