Instalacion del Cosmovisor
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
#obtenemos cosmovisor
go get github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor
# o puede instalar última versión disponible (recomendado)
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@latest
# para elegir una versión específica use (v1.0.0 es un ejemplo)
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
Agregar variables de entorno
En el archivo ~/.profile se debe agregar las siguientes lineas
export DAEMON_NAME=junod
export DAEMON_HOME=$HOME/.juno
#Cargar las variables nuevamente al entorno
source ~/.profile
Estructura de Carpetas para Cosmovisor
Cosmovisor siempre espera una misma estructura de carpetas, la cual es la siguiente:
.
├── current -> genesis or upgrades/<name>
├── genesis
│ └── bin
│ └── $DAEMON_NAME
└── upgrades
└── <name>
└── bin
└── $DAEMON_NAME
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:
mkdir -p $DAEMON_HOME/cosmovisor/genesis/bin
mkdir -p $DAEMON_HOME/cosmovisor/upgrades
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.
which junod
# Lo copiamos a la nueva ubicación, cambie el origen según sea su caso
cp $HOME/go/bin/junod $DAEMON_HOME/cosmovisor/genesis/bin
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:
nano /etc/systemd/system/cosmovisor.service
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.
[Unit]
Description=cosmovisor juno
After=network-online.target
[Service]
User=<user>
ExecStart=/root/go/bin/cosmovisor start --home /mnt/data/.juno
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=junod"
Environment="DAEMON_HOME=/mnt/data/.juno"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
[Install]
WantedBy=multi-user.target
Iniciar cosmovisor
Después de crear el servicio, debe habilitarlo y ponerlo a funcionar
systemctl daemon-reload
systemctl enable cosmovisor
systemctl start cosmovisor
Verificación de los procesos:
#validar el estado del demonio de cosmovisor
systemctl status cosmovisor
#Para ver los logs del proceso que se está ejecutando:
journalctl -u cosmovisor -f
Last updated