Montaje de nodo validador de Juno
No pretendemos reemplazar la guía oficial en inglés de Juno Network, por el contrario complementar desde nuestra experiencia el proceso; a su vez, de traer esta documentación en lenguaje español.
Requerimientos de hardware
Los requerimientos mínimos que se necesitan para correr juno son:
4 vcpu.
32GB RAM
1TB de storage. (Recomendamos tipo NVME, la base de datos actual de juno no ocupa todo este espacio, pero se recomienda estar sobredimensionado para evitar estar haciendo intervenciones futuras).
Pasos para la instalación y configuración del binario junod
Sistema Operativo
El sistema operativo que nosotros elegimos fue ubuntu 20.04 LTS pero este puede funcionar en la mayoría de distribuciones Linux modernas o con soporte actual, y en las versiones más recientes de macOS.
Instalación de requisitos necesarios
Instalación de Go
Descargue e instale la última versión de Go desde su página oficial https://go.dev/doc/install
en nuestro caso sería la versión 1.18.4. NOTA: Juno necesita la version de Go 1.18 o superior
Configuramos las variables en el archivo ~/.profile
Actualizamos el archivo ~/.profile y verificamos la versión de Go
Construir el binario de juno
Para conocer la versión más actual del binario revisa el repositorio oficial de juno aquí: https://github.com/CosmosContracts/juno
En nuestro caso la versión más actual del binario es la v8.0.0 (Como las blockchain se van actualizando constantemente por mejoras ó fallas, la versión va cambiando).
Iniciar y Crear un nodo de validación en MainNet
Variables de entorno
Una forma más sencilla de configurar el entorno es creando variables, esto nos ayudará a agilizar un poco ya que no tendremos que estar buscando siempre el ID de la cadena, o los peers, entre otras, si no que los dejaremos definidos en variables que sean más sencillas de recordar, para ello las definiremos dentro del archivo ~/.profile.
En el archivo pondremos el ID de la cadena y el nombre como se va a reconocer este validador.
Configuración de Persistent peers
Los peer son los compañeros que necesitamos para poder obtener información de ellos y mantener nuestro nodo en sincronía con los demás. Para obtenerlos podemos crear otras variables de entorno así:
Si no está seguro, puede preguntar por el discord oficial de juno network aquí https://discord.gg/RChBuccb para obtener más peers o nodos semilla para sincronizar su nodo
Inicializar la cadena de bloques
Para iniciar una cadena debemos ejecutar el binario compilado con el comando init y argumentos nombre del validador y el id de la cadena
Si quiere cambiar la carpeta por defecto de .juno para usarla en otra partición con más espacio o en otro lado del sistema puedes anexar --home seguido de la dirección deseada. Por defecto utilizará la carpeta del usuario que corre el comando.
Este comando genera 3 archivos necesarios para el funcionamiento del nodo:
genesis.json
node_key.json (Necesario para recuperar el nodo, Guardarlo muy bien y no compartirlo)
priv_validator_key.json (Necesario para recuperar el nodo, Guardarlo muy bien y no compartirlo)
Los dos archivos necesarios para recuperar el validador, se deben guardar muy bien y en lugares seguros igual como cuando almacenamos las semillas de nuestras wallets, ya que esta será nuestra única garantía para poder recuperar el validador en caso de pérdida, o de migración a otra máquina.
Archivo génesis
En el paso anterior se generó un archivo genesis.json, pero este se debe reemplazar por uno actualizado, para esto recurrimos al archivo que tiene alojado Dimi
Establecer peers
La configuración de peers, se encuentra en el archivo ~/.juno/config/config.toml y para añadir los peers solo debemos ejecutar el siguiente comando:
Establecer el costo del gas
Esto es recomendable para los validadores, ya que esto ayudará a proteger de spam y otros posibles ataques, esta configuración se encuentra por defecto en ~/.juno/config/app.toml
Esta configuración hará que el validador acepte tanto ujuno e IBC atom como tarifa para las transacciones, esta es la configuración que se recomienda.
Creación o Restauración de wallet
El validador necesita tener una billetera asociada para funcionar, aquí llegaran las comisiones, las recompensas de stacking que el nodo propio realice.
Importante, al crear una nueva wallet, esta mostrará una frase nemotécnica, esta debe conservarse en algún lugar seguro ya que en caso de perder la wallet será la única forma de recuperarla, es de vital importancia no perder esta frase.
Sincronizar el nodo
Para ejecutar el binario se tienen dos métodos en el ecosistema de cosmos. Simplemente empezar a correr el binario como cualquier otro ejecutable o usar cosmovisor, nosotros recomendamos usar cosmovisor, ya que es una forma de tener el proceso de inicio, sincronización y actualización mucha más automatizado, para configurarlo con cosmovisor simplemente revise el apartado Cosmovisor de esta guía, en caso de querer hacerlo manualmente puede iniciar de la siguiente forma. Este proceso de sincronización puede tardar bastante, todo depende del tamaño de la blockchain.
Crear el validador en la red
Para realizar este paso, debe estar seguro de que su cadena ya esta sincronizada y tener una cantidad mínima de tokens juno en la wallet creada anteriormente.
Al finalizar con éxito este paso, debería poder ver después de unos segundos su validador dentro del scan de la red aquí https://www.mintscan.io/juno/validators
Configurando Cosmovisor
Cosmovisor es una herramienta de administración de los binarios de Cosmos SDK que constantemente supervisa nuevas actualizaciones y tiene la capacidad de ejecutarlas por sí mismo, de igual manera se recomienda estar al pendiente de toda actualización y si es posible descargar el binario de forma manual. Se recomienda usar cosmovisor para la mainnet, ya que automatiza procesos a la hora de actualizar nuestro nodo, es importante que ya sepa usar cosmovisor para implementarlo en mainnet, si no está familiarizado con este software, se recomienda implementarlo en el testnet y asegurarse de que puede configurarlo y ponerlo en marcha correctamente.
Instalación
Agregar variables de entorno
En el archivo ~/.profile se debe agregar las siguientes lineas
Estructura de Carpetas para Cosmovisor
Cosmovisor siempre espera una misma estructura de carpetas, la cual es la siguiente:
NOTA: este resultado anterior se puede ver con la herramienta tree, la raiz de estas carpetas esta predefinido a través de las variables. Por lo tanto; va quedar en el home definido para la instalación de juno. Para tener la estructura anterior creamos estas carpetas:
Configurar cosmovisor
Para esto cosmovisor necesita conocer el binario que usará para inicializar, en este caso sería v8.0.0, este binario se debe copiar en $DAEMON_HOME/cosmovisor/genesis/bin buscamos el binario, este fue compilado al inicio de la guia.
Configurar el servicio para ejecutarse en segundo plano
Con la anterior configuración lo que logramos es que haya una correspondencia entre los dos binarios (comovisor y junod), por lo que escribir cosmovisor version será igual que escribir junod version.
Igual que se configuraría para el binario junod, usaremos la configuración para cosmovisor, para que este pueda trabajar de forma correcta en segundo plano, y en caso de que ocurra algún bug o daño este se reinicie automáticamente para esto nosotros usamos el servicio systemd, primero creamos el servicio:
La configuración correspondiente debe ajustarla a su sistema y a sus preferencias, compartimos la configuración que nosotros tenemos para que sirva de base, debe verificar bien las rutas de los binarios usados.
Iniciar cosmovisor
Después de crear el servicio, debe habilitarlo y ponerlo a funcionar
Verificación de los procesos:
Realizado por:
Mauricio Gil - maurog@decry.io
fabian - vfabian@decry.io
Last updated