Coda Testnet: Convertirse en un Operador de Nodo

From Coda Wiki
Jump to navigation Jump to search

Originalmente publicado aquí


Atención

Los comandos del operador de nodo todavía se están terminando de ajustar, por lo que están sujetos a cambios. ¡Pruébalos y abre una solicitud para arreglar cualquier error que detectes!


Ahora que hemos configurado nuestro nodo Coda y hemos enviado nuestra primera transacción, pasemos a otras formas de interactuar con la red Coda, por ejemplo, participando en el consenso o ayudando a comprimir datos generando zk-SNARKs. Al operar un nodo ayudamos a proteger la red, y recibimos CODA por el trabajo realizado.


Participar en el Consenso

La seguridad de la red Coda está basada en el mecanismo de consenso conocido como Proof-of-Stake. Para participar en este mecanismo de consenso no es necesario disponer de máquinas potentes como en el caso de la minería de Bitcoin. Simplemente teniendo coda en nuestra cartera podemos elegir entre hacer staking nosotros mismos o delegarlo en otro nodo. Primero veamos cómo hacer staking nosotros mismos:


Hacer staking en Coda

Como ya tenemos algunos fondos en nuestra cartera procedentes del paso anterior, ahora podemos lanzar el demonio con el parámetro -propose-key para comenzar a hacer staking. Primero vamos a detener el proceso actual y luego a reiniciarlo con el siguiente comando, indicando la ruta del archivo que contiene la clave privada asociada (por defecto, los pares de claves están alojados en ~/.coda-config/wallets/store). Como en el paso anterior lo guardamos convenientemente como una variable de entorno, podemos ejecutar el siguiente comando:


coda daemon \
-external-port 8302 \
-discovery-port 8303 \
-peer /dns4/seed-one.genesis-redux.o1test.net/tcp/10002/ipfs/12D3KooWP7fTKbyiUcYJGajQDpCFo2rDexgTHFJTxCH8jvcL1eAH \
-peer /dns4/seed-two.genesis-redux.o1test.net/tcp/10002/ipfs/12D3KooWL9ywbiXNfMBqnUKHSB1Q1BaHFNUzppu6JLMVn9TTPFSA \
-propose-key $CODA_PRIVATE_KEY_FILE


Nota

Si se desea hacer staking con varias cuentas al mismo tiempo se puede proporcionar una lista con los archivos donde se encuentran alojadas las diferentes claves.


Siempre podemos verificar con qué cuentas estamos haciendo staking en un momento dado utilizando el comando coda client status:

coda client status

Coda daemon status
-----------------------------------

Global number of accounts: 372
Block height: 20
Max observed block length: 20
Local uptime: 1m48s
Ledger Merkle root: ...
Protocol state hash: ...
Staged Hash: ...
Git SHA-1: ...
Configuration directory: ...
Peers: 5 (...)
User_commands sent: 0
SNARK worker: None
SNARK work fee: 1
Sync status: Synced
Block producers running: 1 (...)
Best tip consensus time: epoch=0, slot=133
Next proposal: None this epoch… checking at in 5.284h
Consensus time now: epoch=0, slot=134
Consensus mechanism: proof_of_stake
Consensus configuration:
...
Addresses and ports:
...
Libp2p PeerID: ...


El campo Block producers running devuelve el número de cuentas que están actualmente haciendo staking, así como su clave asociada.


Aviso

Ten en cuenta que si estás haciendo staking tú mismo con tus propios fondos, deberás permanecer conectado a la red en todo momento para producir bloques con éxito. Si necesitas desconectarte con frecuencia, puede que sea mejor opción delegar tu stake a otro operador.


Delegar coda

Delegar Coda es una opción alternativa a hacer staking tú mismo, con la ventaja de no tener que permanecer conectado a la red en todo momento. Sin embargo, ten en cuenta que:

  • Deberás pagar una pequeña comisión de transacción si en un momento dado deseas realizar un cambio de delegado, ya que este cambio se implementa como una transacción que queda registrada en la blockchain.
  • El delegado que hace staking en tu nombre puede decidir cobrarte una comisión por proporcionar dicho servicio.


Primero asegúrate de haber desbloqueado tu cuenta:

coda account unlock -public-key $CODA_PUBLIC_KEY


Y luego ejecuta este comando para delegar tu stake:

coda client delegate-stake \
-delegate <delegate-public-key> \
-privkey-path <file> \
-fee <fee>


Los diferentes campos que aparecen en este comando son los siguientes:

  • El parámetro delegate requiere la clave pública del delegado que has elegido.
  • privkey-path es la ruta del archivo de la clave privada de los fondos que deseas delegar.
  • fee es la comisión necesaria para registrar tu transacción en la blockchain.


Delegar tu stake puede ser útil si estás interesado en:

  • Ejecutar tu propio nodo de staking utilizando fondos de una cold wallet.
  • Delegar en un pool de staking que nos transfiera periódicamente los correspondientes pagos.


Nota

Existe un período de espera de un día, antes de que este cambio entre en vigor para evitar abusar de los recursos de la red.


Comprimir datos en la red Coda

El protocolo Coda es único en el sentido de que no requiere que los nodos mantengan el historial completo de la blockchain, tal y como sucede con los protocolos de otras criptomonedas. Mediante el uso recursivo de demostraciones criptográficas, el protocolo Coda comprime la blockchain permanentemente a un tamaño fijo y constante. Llamamos a esto compresión, ya que a través de este proceso se reducen terabytes de datos a unos pocos kilobytes.


Sin embargo, este proceso no debe entenderse como una codificación o compresión de datos en el sentido tradicional, sino que los nodos "comprimen" datos en la red al generar demostraciones criptográficas. Los operadores de los nodos desempeñan un papel crucial en este proceso al designarse a sí mismos como "trabajadores snark" que generan los zk-SNARKs necesarios para que las transacciones se vayan agregando a los bloques de la cadena.


Cuando inicies el demonio, configura estos parámetros adicionales para operar también como trabajador snark:

coda daemon \
-external-port 8302 \
-discovery-port 8303 \
-peer /dns4/seed-one.genesis-redux.o1test.net/tcp/10002/ipfs/12D3KooWP7fTKbyiUcYJGajQDpCFo2rDexgTHFJTxCH8jvcL1eAH \
-peer /dns4/seed-two.genesis-redux.o1test.net/tcp/10002/ipfs/12D3KooWL9ywbiXNfMBqnUKHSB1Q1BaHFNUzppu6JLMVn9TTPFSA \
-run-snark-worker $CODA_PUBLIC_KEY \
-snark-worker-fee <fee>


Como trabajador snark, puedes recibir parte de la recompensa de bloque por cada bloque que se genere y que incluya las transacciones que has comprimido. El productor de bloques es el responsable de reunir todas las transacciones comprimidas antes de incluirlas en un determinado bloque, pero será incentivado por el propio protocolo a recompensar a los trabajadores snark.

Todo esto abarca los roles y responsabilidades que tiene un operador de nodo de Coda. Dado que Coda es una red peer-to-peer que no requiere permiso, todo se ejecuta y administra por los nodos distribuidos por todo el mundo de manera descentralizada. Del mismo modo, el proyecto Coda también se distribuye libremente y no requiere de permisos para unirse a él. El código es abierto y hay mucho trabajo por hacer, tanto técnico como no técnico. Para obtener más información sobre cómo puedes colaborar con Coda, por favor consulta la sección contribuir a Coda.