Ir al contenido principal

Ejecutar un Nodo Completo

C贸mo ejecutar en la Mainnet Network usando una imagen preconstruida de Docker.


Nodos Alojados

Si prefieres una configuraci贸n simple y con un clic alojada para ejecutar un nodo en uno de los principales proveedores de la nube (AWS y GCP), revisa nuestra documentaci贸n de hosted nodes.

informaci贸n

Si desea estar al d铆a de todas las noticias que ocurren en la comunidad Celo, incluyendo la validaci贸n, operaci贸n de nodo y gobernanza, por favor reg铆strese en nuestra Celo Signal mailing list here.

Puede a帽adir el Celo Signal public calendar que tambi茅n tiene fechas relevantes.

Los nodos completos tienen un prop贸sito especial en el ecosistema de Celo, actuando como un puente entre las billeteras m贸viles (ejecut谩ndose como clientes ligeros) y los nodos validadores.

Cuando un cliente ligero env铆a transacciones, pueden incluir una comisi贸n de pasarela para ser pagada al nodo que chispa las transacciones a los otros nodos y validadores completos.

Por esta raz贸n, a pesar del hecho de que Celo utiliza un protocolo de prueba, los usuarios pueden ganar criptomonedas sin primero tener que poseer ninguna, simplemente ejecutando un nodo completo.

peligro

A煤n no se han habilitado todos los incentivos de los nodos completos porque el mecanismo para negociar una tasa de pasarela todav铆a est谩 en desarrollo. Actualmente, los clientes ligeros est谩n configurados para enviar una tarifa de pasarela de 0 y los nodos completos est谩n configurados para aceptar una tarifa m铆nima de pasarela de 0.

Prerequisitos

  • Tener Docker instalado. Si a煤n no lo tiene, siga las instrucciones aqu铆: Comenzar con Docker. Esto implicar谩 crear o iniciar sesi贸n con una cuenta de Docker, descargar una aplicaci贸n de escritorio, y luego lanzar la aplicaci贸n para poder usar la Docker CLI. Si se est谩 ejecutando en un servidor Linux, siga las instrucciones para su distribuci贸n aqu铆. Es posible que deba ejecutar Docker con sudo dependiendo de su entorno de instalaci贸n.
informaci贸n

C贸digo que ver谩s en esta p谩gina son comandos bash y su salida.

Cuando vea texto en corchetes de 谩ngulo <>, reempl谩celos y el texto dentro con su propio valor de lo que se refiere. No incluir el <> en el comando.

Redes de Celo

Primero vamos a configurar las variables de entorno necesarias para la red mainnet. Ejecuta:

export CELO_IMAGE=us.gcr.io/celo-org/geth:mainnet

Pull la imagen de Celo Docker

Vamos a usar una imagen Docker que contiene el software del nodo Celo en este tutorial.

Si est谩 reejecutando estas instrucciones, la imagen de Celo Docker puede haber sido actualizada, y es importante obtener la 煤ltima versi贸n.

docker pull $CELO_IMAGE

Configurar un directorio de datos

Primero, cree el directorio que almacenar谩 la configuraci贸n de su nodo y su copia de la Blockchain. Este directorio puede ser nombrado como quieras, pero aqu铆 hay un valor por defecto que puede usar. Los siguientes comandos crean un directorio y luego navegan por 茅l. El resto de los pasos asumen que est谩 ejecutando los comandos desde dentro de este directorio.

mkdir celo-data-dir
cd celo-data-dir

Crear una cuenta y obtener su direcci贸n

En este paso, crear谩s una cuenta en la red. Si ya lo has hecho y tienes una direcci贸n de cuenta, puedes saltarlo y pasar a configurar tu nodo.

Ejecutar el comando para crear una nueva cuenta:

docker run -v $PWD:/root/.celo --rm -it $CELO_IMAGE account new

Te pedir谩 una frase de acceso, te la pedir谩 que la confirmes y luego enviar谩 la direcci贸n de tu cuenta: Public address of the key: {<YOUR-ACCOUNT-ADDRESS>

Guarda esta direcci贸n en una variable de entorno, para que puedas referenciarla a continuaci贸n (no incluir las llaves):

export CELO_ACCOUNT_ADDRESS=<YOUR-ACCOUNT-ADDRESS>
informaci贸n

Esta variable de entorno s贸lo persistir谩 mientras tengas esta ventana de terminal abierta. Si quieres que esta variable de entorno est茅 disponible en el futuro, puedes a帽adirla a tu ~/.bash_profile

Iniciar el nodo

Este comando especifica la configuraci贸n necesaria para ejecutar el nodo y lo inicia.

docker run --name celo-fullnode -d --restart unless-stopped --stop-timeout 300 -p 127.0.0.1:8545:8545 -p 127.0.0.1:8546:8546 -p 30303:30303 -p 30303:30303/udp -v $PWD:/root/.celo $CELO_IMAGE --verbosity 3 --syncmode full --http --http.addr 0.0.0.0 --http.api eth,net,web3,debug,admin,personal --light.serve 90 --light.maxpeers 1000 --maxpeers 1100 --etherbase $CELO_ACCOUNT_ADDRESS --datadir /root/.celo

Empezar谩s a ver algunos resultados. Despu茅s de unos minutos, deber铆a ver l铆neas que se parecen a esto. Esto significa que su nodo ha comenzado a sincronizar con la red y est谩 recibiendo bloques.

INFO [07-16|14:04:24.924] Imported new chain segment               blocks=139  txs=319 mgas=61.987 elapsed=8.085s mgasps=7.666 number=406  hash=9acf16鈥4fddc8 age=6h58m44s cache=1.51mB
INFO [07-16|14:04:32.928] Imported new chain segment blocks=303 txs=179 mgas=21.837 elapsed=8.004s mgasps=2.728 number=709 hash=8de06a鈥77bb92 age=6h33m37s cache=1.77mB
INFO [07-16|14:04:40.918] Imported new chain segment blocks=411 txs=0 mgas=0.000 elapsed=8.023s mgasps=0.000 number=1120 hash=3db22a鈥9fa95a age=5h59m30s cache=1.92mB
INFO [07-16|14:04:48.941] Imported new chain segment blocks=335 txs=0 mgas=0.000 elapsed=8.023s mgasps=0.000 number=1455 hash=7eb3f8鈥32ebf0 age=5h31m43s cache=2.09mB
INFO [07-16|14:04:56.944] Imported new chain segment blocks=472 txs=0 mgas=0.000 elapsed=8.003s mgasps=0.000 number=1927 hash=4f1010鈥1414c1 age=4h52m31s cache=2.34mB

Habr谩 sincronizado completamente con la red una vez que haya sacado el 煤ltimo n煤mero de bloqueo, que puedes buscar visitando las p谩ginas Network Stats o Block Explorer.

peligro

Seguridad: La l铆nea de comandos anterior incluye el par谩metro --http.addr 0.0.0. que hace que el software Celo Blockchain escuche las peticiones RPC entrantes en todos los adaptadores de red. Precauci贸n extrema al hacer esto al correr fuera de Docker, ya que significa que cualquier cuenta desbloqueada y sus fondos pueden ser accedidos desde otras m谩quinas en Internet. En el contexto de ejecutar un contenedor Docker en su m谩quina local, esto junto con las banderas docker -p le permite hacer llamadas RPC desde fuera del contenedor, por ejemplo desde su host local, pero no desde fuera de su m谩quina. Lea m谩s sobre Docker Networking aqu铆.

Ejecuci贸n de un nodo de archivo

Si desea ejecutar un nodo de archivo para celo-blockchain, puede ejecutar el siguiente comando:

docker run --name celo-fullnode -d --restart unless-stopped --stop-timeout 300 -p 127.0.0.1:8545:8545 -p 127.0.0.1:8546:8546 -p 30303:30303 -p 30303:30303/udp -v $PWD:/root/.celo $CELO_IMAGE --verbosity 3 --syncmode full --gcmode archive --txlookuplimit=0 --cache.preimages --http --http.addr 0.0.0.0 --http.api eth,net,web3,debug,admin,personal --light.serve 90 --light.maxpeers 1000 --maxpeers 1100 --etherbase $CELO_ACCOUNT_ADDRESS --datadir /root/.celo

Agregamos las siguientes banderas: --gcmode file --txlookuplimit=0 --cache.preimages

En celo-blockchain, esto se llama gcmode que se refiere al concepto de recolecci贸n de basura. Establecerlo para archivar b谩sicamente lo desactiva.

Interfaz de l铆nea de comandos

Una vez que el nodo completo se est茅 ejecutando, puede servir la herramienta Command Line Interface celocli. Por ejemplo:

$ npm install -g @celo/celocli
...
$ celocli node:synced
true
$ celocli account:new
...

Servicio de cliente ligero

Clientes ligeros pueden conectarse contigo a medida que la gente ejecute el Celo Mobile Wallet y comenzar谩 a ganar comisiones de pasarela por cualquier transacci贸n que estos usuarios inicien, que puede leer m谩s en el documento Full Node Incentives. La cuenta que este nodo anuncia para clientes ligeros a usar para estas comisiones es dada por el par谩metro etherbase. El par谩metro light.serve define el porcentaje de tiempo que este nodo debe pasar sirviendo clientes ligeros. Los valores v谩lidos son 0-100. Si este nodo est谩 teniendo problemas para llegar al bloque actual, caer a un porcentaje menor puede ayudar. Los par谩metros light.maxpeers y maxpeers establecen l铆mites en el n煤mero de clientes ligeros y pares de nodos completos que el nodo aceptar谩.