Ir al contenido principal

AutoCustodia CELO

Acceso a la cuenta y detalles de recompensa para el titular de CELO con autocustodia en Celo Mainnet


Prerequisitos

Esta gu铆a supone que:

  • Usted se autocustodia (tiene la clave privada de su direcci贸n) y ha proporcionado esa direcci贸n directamente a cLabs. Si est谩s usando un proveedor de custodia (Anclaje, Coinbase, Lista de Monedas, u otras), por favor contacte con ellos para obtener direcciones.

  • Su direcci贸n es el beneficiario de un contrato de ReleaseGold, que libera CELO program谩ticamente a un beneficiario durante un per铆odo de tiempo.

  • cLabs le ha informado que se ha implementado la instancia ReleaseGold correspondiente a su direcci贸n.

  • Tiene su clave privada guardada en un dispositivo Ledger Nano S o Ledger Nano X y tiene un segundo dispositivo disponible para administrar una clave de votaci贸n. Si solo tienes un solo Ledger disponible, consulta debajo.

:::precauci贸n

Advertencia: Las claves de autocustodia tienen asociados riesgos financieros y de seguridad. La p茅rdida o robo de claves puede resultar en una p茅rdida irrecuperable de fondos. Esta gu铆a tambi茅n requiere conocimientos t茅cnicos. Debe sentirse c贸modo con el uso de una interfaz de l铆nea de comandos (CLI) y comprender los conceptos b谩sicos de c贸mo funcionan las cuentas de red criptogr谩ficas.

:::

Soporte

Si tiene alguna pregunta o necesita ayuda con estas instrucciones, comun铆quese con cLabs o pregunte en el canal #celo-holders en el Servidor Discord de Celo. Recuerda que Discord es un canal p煤blico: nunca divulgues frases de recuperaci贸n (tambi茅n conocidas como claves de respaldo o mnemot茅cnicos), claves privadas, resultados de registro no santificados o informaci贸n personal.

Consulte la Resoluci贸n de problemas de Ledger para obtener informaci贸n sobre problemas al usar Ledger con Celo CLI.

Resumen general

En esta gu铆a, ver谩s:

  • Instalar Celo CLI (y opcionalmente, un nodo local para conectarse a la red)
  • Acceda a la cuenta de ReleaseGold asociada a su direcci贸n usando su Ledger existente
  • Autorizar una clave de votaci贸n, la cual mantendr谩 un nuevo y segundo Ledger
  • Bloquea parte del Oro en tu cuenta de ReleaseGold
  • Use ese Oro Bloqueado para votar por los grupos de validaci贸n para operar la red Proof of Stake de Celo (y al hacerlo, prep谩rese para recibir recompensas de 茅poca del 6% cuando la comunidad habilite en una pr贸xima propuesta de gobernanza)

Preparando Ledgers

Necesitar谩s:

  • Tu Ledger Beneficiario: Un Ledger Nano S o X configurado con tu clave de beneficiario (usado para producir la direcci贸n que proporcionaste cLabs). Una vez que hayas completado esta gu铆a, esto se convertir谩 en una "cartera fr铆a" que puedes mantener fuera de l铆nea la mayor parte del tiempo.

  • Su Ledger de firmantes de votos: un Ledger Nano S o X configurado con una clave nueva sin usar. Esto se convertir谩 en un "monedero caliente" que puedes usar cuando quieras participar en las elecciones de validadores o propuestas de gobernanza.

Como primer paso, sigue estas instrucciones para que ambos Ledgers instalen la aplicaci贸n Ledger Celo, obtener y verificar las direcciones asociadas, y (recomendado) ejecutar una transacci贸n de prueba en la red de pruebas de Alfajores.

informaci贸n

La 煤ltima versi贸n de la aplicaci贸n Celo Ledger es la 1.1.8. Si ya est谩 utilizando un Ledger con una versi贸n anterior instalada, por favor actualice.

El resto de esta gu铆a asume que est谩 utilizando la primera direcci贸n disponible en cada Ledger. Puede agregar las banderas descritas en estas instrucciones a los comandos a continuaci贸n para usar diferentes direcciones.

Utilizando un solo Ledger

Si s贸lo tiene un Ledger, y se siente c贸modo perdiendo la ventaja de seguridad de mantener la clave del beneficiario fuera de l铆nea al votar, puede configurar una segunda direcci贸n en el mismo Ledger que su clave de votaci贸n.

Primero, lee estas instrucciones cuidadosamente. Luego, dondequiera que vea las instrucciones para conectar su Ledger de firmas de voto, para cada l铆nea de comandos que contiene --useLedger tambi茅n a帽ade --ledgerCustomAddresses "[1]". En caso de duda, pida ayuda.

Despliegue

Si a煤n no lo has hecho, abre una ventana de terminal e instala el Celo CLI:

 npm install -g @celo/celocli

Si ha instalado previamente la CLI, aseg煤rese de que est谩 utilizando la versi贸n 0.0.47 o posterior:

celocli --version

Y si no, actualice ejecutando el mismo comando anterior.

Ahora tendr谩 que apuntar Celo CLI a un nodo sincronizado con la red Mainnet. Aqu铆 hay dos opciones:

  • Nodo local de Celo Blockchain: Puedes ejecutar un nodo completo en tu m谩quina local que se comunicar谩 con otros nodos y verificar谩 criptogr谩ficamente todos los datos que reciba. Como este enfoque no requiere que conf铆es en la red, es el m谩s seguro.

    Para hacer esto, sigue el tutorial para ejecutar un nodo completo (y aseg煤rate de pasar --usb).

    Luego ejecute:

    celocli config:set --node http://localhost:8545
  • Nodo operado por cLabs: Como alternativa al uso de su propio nodo, puede utilizar un servicio de nodo de transacci贸n existente. Forno, operado por cLabs, es un ejemplo. Aunque este enfoque no requiere que despliegue un nodo localmente, requiere que conf铆e en cLabs y en los nodos remotos de Forno (del mismo modo que confiar铆a en un servicio web centralizado). Un atacante puede ser capaz de manipular los datos devueltos a usted desde el servicio, en el que el CLI puede confiar para completar las operaciones.

    Para usar Forno, ejecuta este comando:

    celocli config:set --node https://forno.celo.org

Localice y verifique su direcci贸n de contrato ReleaseGold

Primero, copie la direcci贸n del beneficiario en el portapapeles, y establ茅zcala en una variable de entorno:

export CELO_BENEFICIARY_ADDRESS=<Beneficiary>

A continuaci贸n, encontrar谩 la direcci贸n del contrato ReleaseGold desplegado para su direcci贸n de beneficiario. El contrato ReleaseGold tiene su propia direcci贸n y es independiente de la direcci贸n del beneficiario pero hay ciertos aspectos del mismo que s贸lo pueden ser controlados por el beneficiario. Para obtener m谩s detalles, consulte la p谩gina Entendiendo ReleaseGold.

Abra la lista de todos los despliegues de ReleaseGold y localice su direcci贸n (utilice Editar>Buscar en su navegador, luego pegue la direcci贸n del beneficiario). Copie el valor coincidente junto a ContractAddress en su portapapeles.

Si no puede localizar su direcci贸n en estos mapeos, p贸ngase en contacto con cLabs.

Si tiene m谩s de una direcci贸n de beneficiario, querr谩 pasar por esta gu铆a y completar los pasos para cada una por separado.

Grabe el valor de ContractAddress en una variable de entorno:

export CELO_RG_ADDRESS=<ContractAddress>

Deber铆a encontrar que su cuenta de beneficiario ya tiene un saldo de CELO muy peque帽o para pagar las tasas de transacci贸n (los valores se muestran en wei, as铆 que, por ejemplo, 1 CELO = 1000000000000000000):

celocli account:balance $CELO_BENEFICIARY_ADDRESS

A continuaci贸n, compruebe los detalles de su contrato de ReleaseGold:

celocli releasegold:show --contract $CELO_RG_ADDRESS

Verifique la configuraci贸n, el saldo y los detalles del beneficiario. Puede encontrar una explicaci贸n de estos par谩metros en la p谩gina ReleaseGold.

Si alguno de estos detalles parece ser incorrecto, p贸ngase en contacto con cLabs y no proceda con el resto de esta gu铆a.

Si la configuraci贸n muestra canVote: true, tu contrato te permite participar en la elecci贸n de grupos de validadores para el protocolo Proof of Stake de Celo, y potencialmente ganar recompensas de epoch por hacerlo. Por favor contin煤e siguiendo el resto de esta gu铆a (o puede volver y continuar en cualquier momento).

De lo contrario, ya est谩 todo listo. No es necesario tomar ninguna acci贸n en este momento.

Autorizar claves de firmantes de voto

Para permitirle mantener su Ledger de Beneficiario fuera de l铆nea d铆a a d铆a, se recomienda utilizar una Cuenta de Firmador de Voto Autorizada separada que votar谩 en nombre del beneficiario.

informaci贸n

Un votante puede ser otro dispositivo Ledger o un Hardware Security Module (HSM). Explora esta gu铆a para obtener m谩s informaci贸n sobre la configuraci贸n HSM en la nube y la integraci贸n con celocli.

Se trata de un proceso de dos pasos. Primero, se crea una "prueba de posesi贸n" que muestra que el titular de la clave del beneficiario tambi茅n tiene la clave de firmante de voto. Luego lo usar谩 cuando el beneficiario firme una transacci贸n autorizando la clave de firmante de voto. Esto demuestra a la red Celo que una sola entidad posee ambas claves.

informaci贸n

Conecta tu Ledger Firmante del Voto ahora, desbloqu茅alo y abre la aplicaci贸n de Celo.

Primero obtenga su direcci贸n de firmante de voto:

# Using the Vote Signer Ledger
celocli account:list --useLedger

Tu direcci贸n est谩 listada en Direcciones de Ledger. Crear una variable de entorno para su direcci贸n de firmante de voto.

export CELO_VOTE_SIGNER_ADDRESS=<YOUR-VOTE-SIGNER-ADDRESS>

Luego cree la prueba de posesi贸n:

# Using the Vote Signer Ledger
celocli account:proof-of-possession --signer $CELO_VOTE_SIGNER_ADDRESS --account $CELO_RG_ADDRESS --useLedger

La aplicaci贸n Ledger Celo te pedir谩 que confirmes la transacci贸n. Despl谩zate hacia la derecha en el dispositivo hasta que veas Firma Mensaje en la pantalla. Pulse ambos botones al mismo tiempo para confirmar.

Toma nota de la firma producida por el comando proof-of-possession y crea una variable de entorno para ella.

export CELO_VOTE_SIGNER_SIGNATURE=<YOUR-VOTE-SIGNER-SIGNATURE>

Ahora cambia los Ledgers.

informaci贸n

Conecta tu Ledger de Beneficiario ahora, desbloqu茅alo y abre la aplicaci贸n de Celo.

A continuaci贸n, registre el contrato ReleaseGold como una cuenta "Locked Gold":

# Using the Beneficiary Ledger
celocli releasegold:create-account --contract $CELO_RG_ADDRESS --useLedger

Tendr谩 que pulsar a la derecha en el Ledger varias veces para revisar los detalles de las transacciones y, a continuaci贸n, cuando el dispositivo diga "Aceptar y enviar", pulse los dos botones a la vez.

Compruebe que la direcci贸n del contrato ReleaseGold est谩 asociada con una cuenta Locked Gold registrada:

celocli account:show $CELO_RG_ADDRESS

Ahora, utilizando la prueba de posesi贸n que gener贸 anteriormente, como cuenta de la Gold Account Bloqueada, autorizar谩 a la clave de firma de votos a votar en nombre de la Gold Account Bloqueada:

# Using the Beneficiary Ledger
celocli releasegold:authorize --contract $CELO_RG_ADDRESS --role=vote --signer $CELO_VOTE_SIGNER_ADDRESS --signature $CELO_VOTE_SIGNER_SIGNATURE --useLedger

Finalmente, verifique que su firmante fue autorizado correctamente:

celocli account:show $CELO_RG_ADDRESS

La direcci贸n del voto bajo authorizedSigners debe coincidir con $CELO_VOTE_SIGNER_ADDRESS.

El contrato ReleaseGold se financi贸 con 1 CELO adicional que env铆a a la primera cuenta firmante de votos que se autoriza. Esto permite que la cuenta del firmante del voto cubra las comisiones de las transacciones. Puedes confirmarlo:

celocli account:balance $CELO_VOTE_SIGNER_ADDRESS

:::precauci贸n

Alerta: Si autorizas un segundo firmante de votos, no ser谩 financiado autom谩ticamente por el contrato ReleaseGold. Necesitar谩s transferir una fracci贸n de 1 CELO desde tu direcci贸n de beneficiario a ella para cubrir las comisiones de transacci贸n al usarlo.

:::

Bloquear CELO

Para votar por los grupos de validadores y sobre las propuestas de gobernanza deber谩 bloquear la CELO. Esto es para mantener la seguridad de la red asegurando que cada unidad de CELO s贸lo pueda ser utilizada para votar una vez.

Especifique la cantidad de CELO que desea bloquear (no incluya las < > llaves). Todos los montos son dados como wei, es decir, unidades de 10^-18 CELO. Por ejemplo, 1 CELO = 1000000000000000000.

:::precauci贸n

Aseg煤rese de dejar al menos 1 CELO desbloqueado para pagar las comisiones de transacci贸n.

:::

# Using the Beneficiary Ledger
celocli releasegold:locked-gold --contract $CELO_RG_ADDRESS --action lock --useLedger --value <CELO-GOLD-AMOUNT>

Compruebe que su CELO ha sido bloqueado correctamente.

celocli lockedgold:show $CELO_RG_ADDRESS

Votar por un grupo de validadores

De forma similar al Staking o la delegaci贸n en otros protocolos de criptomoneda Proof of Stake, los titulares de CELO pueden bloquear CELO y votar por los Grupos Validadores en la red Celo. Al hacerlo, no s贸lo contribuyes a la salud y la seguridad de la red, sino que tambi茅n puedes ganar recompensas de epoc.

Para obtener m谩s detalles, consulte la p谩gina Votar por los validadores, que contiene informaci贸n 煤til sobre el funcionamiento de las elecciones de validadores, as铆 como m谩s orientaci贸n sobre c贸mo seleccionar un grupo de validadores para votar. Por ahora, todo lo que necesitas saber es que:

  • en Celo, los titulares del CELO votan directamente por los grupos de validadores, no por los validadores
  • s贸lo ganas recompensas de epoch si el grupo de validadores que votaste obtiene al menos 1 validador elegido

Teniendo esto en cuenta, tendr谩s que encontrar un Grupo de Validadores por el que votar y copiar su direcci贸n. Puede encontrar esta informaci贸n en los exploradores de validadores comunitarios tales como el cLabs Validator explorer y Bi23 Labs thecelo dashboard.

Tambi茅n puede ver grupos de validadores registrados a trav茅s de Celo CLI. Esto mostrar谩 una lista de Grupos de Validadores, el n煤mero de votos que han recibido, el n煤mero de votos adicionales que pueden recibir, y si son o no elegibles para elegir Validadores:

celocli election:list

Una vez que hayas encontrado uno o m谩s Grupos de Validadores por los cuales te gustar铆a votar, crear una variable de entorno para su direcci贸n de Grupo (no incluir las < > llaves):

export CELO_VALIDATOR_GROUP_ADDRESS=<VALIDATOR-GROUP-ADDRESS-TO-VOTE-FOR>

Para cada voto tendr谩s que seleccionar la cantidad de CELO bloqueado con la que deseas votar. Puedes volver a consultar tu saldo si lo necesitas:

celocli account:balance $CELO_RG_ADDRESS

Todas las cantidades de CELO deben expresarse en wei: es decir, 1 CELO = 1000000000000000000. No incluya las llaves < > en la siguiente l铆nea.

Para votar, usar谩s tu clave de firmante de votos, que es votar en nombre de tu cuenta Locked Gold.

informaci贸n

Conecta tu Ledger Firmante del Voto ahora, desbloqu茅alo y abre la aplicaci贸n de Celo.

# Using the Vote Signer Ledger
celocli election:vote --from $CELO_VOTE_SIGNER_ADDRESS --for $CELO_VALIDATOR_GROUP_ADDRESS --useLedger --value <CELO-GOLD-AMOUNT>

Compruebe que sus votos se han emitido correctamente. Puesto que tu cuenta de firmante de voto vota en nombre de la cuenta de Celo Locked Gold, quieres comprobar el estado de la elecci贸n de esa cuenta:

celocli election:show $CELO_RG_ADDRESS --voter

Tus votos bloqueados de CELO deber铆an mostrarse junto a pending con menos votes.

Al d铆a siguiente: Activa tu voto

Tu voto se aplicar谩 a partir de la pr贸xima Elecci贸n de Validador, que se celebrar谩 una vez al d铆a y seguir谩 aplic谩ndose en cada elecci贸n posterior hasta que lo cambie.

Despu茅s de que se hayan celebrado esas elecciones, tendr谩 que activar su voto. Esto te permitir谩 recibir recompensas de 茅poca si en esa elecci贸n (o en cualquier otra posterior, hasta que cambies tu voto) el Grupo de Validadores por el que votaste eligi贸 al menos un Validador. Las recompensas se a帽adir谩n a tus votos para ese Grupo y se acumular谩n autom谩ticamente.

informaci贸n

Las longitudes de Epoch en Mainnet se definen como el n煤mero de bloques producidos en un d铆a. Como resultado, las votaciones pueden necesitar activarse hasta 24 horas despu茅s de que se emitan.

Comprueba que tus votos hayan sido emitidos en un epoch anterior:

celocli election:show $CELO_RG_ADDRESS --voter

Tu voto deber铆a mostrarse junto a pending debajo de votes.

informaci贸n

Conecta tu Ledger Firmante del Voto ahora, desbloqu茅alo y abre la aplicaci贸n de Celo.

Ahora activa tus votos:

# Using the Vote Signer Ledger
# You must do this in an epoch after the one you voted in: this may take up to 24h
celocli election:activate --from $CELO_VOTE_SIGNER_ADDRESS --useLedger

Si ejecutas election:show de nuevo, tu voto deber铆a mostrarse junto a active bajo votes.

隆Felicidades! Ya est谩s listo.

Al final de la 茅poca siguiente a la activaci贸n de tu voto, puedes recibir recompensas de votante (si al menos un Validador del Grupo de Validadores por el que has votado ha sido elegido).

Puedes ver recompensas usando:

celocli rewards:show --voter $CELO_RG_ADDRESS

O buscando su direcci贸n ReleaseGold en el Block Explorer y haciendo clic en la pesta帽a "Celo Info".

Siguientes pasos

Ya est谩s preparado para participar en la red Celo!

Puede que quieras leer m谩s sobre elegir un Grupo Validador para votar, y c贸mo se calculan las recompensas de los votantes. Puedes votar hasta diez Grupos diferentes desde una sola cuenta.

Ahora que has bloqueado CELO, puedes utilizarlo para participar en la votaci贸n a favor o en contra de propuestas de gobernanza. Puedes hacer esto sin que afecte a ning煤n voto que hayas hecho para los Grupos de Validaci贸n.

Tambi茅n puedes leer m谩s sobre el funcionamiento de los mecanismos de Proof of Stake y la Gobernanza on-chain de Celo.

Revocando votos

En cualquier momento puedes revocar los votos emitidos por un Grupo de Validadores. Por ejemplo, un Grupo puede tener un mal rendimiento y afectar sus recompensas, y usted puede preferir votar a otro Grupo.

informaci贸n

Cuando revoques tus votos dejar谩s de recibir las recompensas de los votantes.

Especifique la cantidad de CELO que desea revocar (no incluya las llaves < >). Todos los importes CELO deben expresarse con 18 decimales. Por ejemplo, 1 CELO = 1000000000000000000.

informaci贸n

Conecta ahora tu Ledger de firmas de votos, desbloqu茅alo y abre la aplicaci贸n Celo.

Revocar votos para el Grupo:

# Using the Vote Signer Ledger
celocli election:revoke --from $CELO_VOTE_SIGNER_ADDRESS --for $CELO_VALIDATOR_GROUP_ADDRESS --value <CELO-GOLD-AMOUNT> --useLedger

Puedes reutilizar inmediatamente este CELO bloqueado para votar a otro Grupo.

Desbloqueando y retirando

En alg煤n momento, las condiciones de su contrato ReleaseGold le permitir谩n retirar fondos y transferirlos a su direcci贸n beneficiaria.

En realidad hay varios pasos para este proceso:

  1. En primer lugar, revocar todos los votos pendientes seg煤n lo indicado anteriormente (incluso para las propuestas de gobernanza)
  2. Desbloquear el Locked Gold sin derecho a voto, iniciando un periodo de desbloqueo de 72 horas
  3. Una vez finalizado el periodo de desbloqueo de tres d铆as, retira el CELO de nuevo al contrato de ReleaseGold
  4. Suponiendo que se cumplan los requisitos de adquisici贸n y distribuci贸n, retire la CELO a la direcci贸n del beneficiario

Compruebe el estado actual de los votos pendientes:

celocli election:show $CELO_RG_ADDRESS --voter

Puedes ver el saldo del CELO bloqueado:

celocli account:balance $CELO_RG_ADDRESS
informaci贸n

Conecta tu Ledger de Beneficiario ahora, desbloqu茅alo y abre la aplicaci贸n de Celo.

Asumiendo que tienes LockedGold sin voto, puedes iniciar el proceso para desbloquear:

# Using the Beneficiary Ledger
celocli releasegold:locked-gold --contract $CELO_RG_ADDRESS --action unlock --useLedger --value <CELO-GOLD-AMOUNT>

Despu茅s de que haya pasado el periodo de desbloqueo de 72 horas, retire el CELO de vuelta al contrato ReleaseGold:

# Using the Beneficiary Ledger
celocli releasegold:locked-gold --contract $CELO_RG_ADDRESS --action withdraw --useLedger --value <CELO-GOLD-AMOUNT>

Finalmente, solicite que el contrato ReleaseGold transfiera una cantidad a su direcci贸n de beneficiario:

# Using the Beneficiary Ledger
celocli releasegold:withdraw --contract $CELO_RG_ADDRESS --useLedger --value <CELO-GOLD-AMOUNT>

Para votar con cualquier CELO en su cuenta de beneficiario, querr谩 registrarlo como una cuenta Locked Gold, autorizar una nueva clave para firmar votos, luego bloquear CELO.