Skip to main content

Actualiza tu Nodo

Cosmovisor

El SDK de Cosmos proporciona un administrador de procesos conveniente que envuelve el binario crossfid y puede intercambiar automáticamente nuevos binarios tras la propuesta exitosa de una actualización de gobernanza. Cosmovisor es completamente opcional pero recomendable. Puede encontrar más información en los docs de cosmos.network y en el readme de cosmos-sdk/cosmovisor.

Configuración

Para empezar con Cosmovisor primero descárguelo

go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor

Configura las variables de entorno

echo "# Configurar Cosmovisor" >> ~/.profile
echo "exportar DAEMON_NAME=crossfid" >> ~/.profile
echo "exportar DAEMON_HOME=$HOME/.crossfi" >> ~/.profile
source ~/.profile

Cree los directorios apropiados

bash
mkdir -p ~/.crossfi/cosmovisor/upgrades
mkdir -p ~/.crossfi/cosmovisor/genesis/bin/
cp $(which crossfid) ~/.crossfi/cosmovisor/genesis/bin/

# verificar la configuración.

# Debería devolver la misma versión que crossfid
cosmovisor version

Ahora crossfid puede empezar ejecutando

cosmovisor start

Preparando una Actualización

Cosmovisor inspeccionará de forma continua el $DAEMON_HOME/data/upgrade-info.json en busca de nuevas instrucciones de actualización. Cuando una actualización esté lista, los operadores de nodos pueden descargar el nuevo binario y colocarlo bajo $DAEMON_HOME/cosmovisor/upgrades//bin, donde `` es el nombre codificado URI de la actualización según lo especificado en el plan del módulo de actualización.

Es posible que Cosmovisor descargue automáticamente el nuevo binario. Para hacerlo, configure la siguiente variable de entorno.

export DAEMON_ALLOW_DOWNLOAD_BINARIES=true

Actualización de Software Manual

Primero, detenga su instancia de crossfid. Luego, actualice el software:

cd gaia
git fetch --all && git checkout
make install
NOTA: Si tiene problemas en este paso, asegúrese de tener instalada la última versión estable de GO. :::

¡Su nodo completo ha sido actualizado de manera limpia! Si no hay cambios críticos, simplemente puede reiniciar el nodo ejecutando:

crossfid start

Actualizar Archivo Genesis

Para actualizar el archivo génesis, puede obtenerlo de una fuente confiable o exportarlo localmente.

Obteniendo desde una Fuente Confiable

Si se une a la red principal, obtenga el génesis del repositorio de la red principal. Si se une a una testnet pública, obtenga el génesis de la testnet apropiada en el repositorio de la testnet. De lo contrario, obténgalo de su fuente confiable.

Guarde el nuevo génesis como new_genesis.json. Luego reemplace el antiguo genesis.json con new_genesis.json

cd $HOME/.crossfi/config
cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json

Exportar Estado a un Nuevo Genesis Localmente

Si ejecutaba un nodo en la versión anterior de la red y desea construir su nuevo génesis localmente desde un estado de esta red anterior, use el siguiente comando:

cd $HOME/.crossfi/config
crossfid export --for-zero-height --height=<export-height> > new_genesis.json

El comando anterior toma un estado en una cierta altura <export-height> y lo convierte en un nuevo archivo génesis que se puede usar para iniciar una nueva red.

Luego, reemplace el viejo genesis.json con new_genesis.json.

cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json

En este punto, podría querer ejecutar un script para actualizar el génesis exportado a un génesis compatible con su nueva versión. Por ejemplo, si los atributos de un tipo Cuenta cambiaron, un script debería consultar la cuenta codificada desde el almacén de cuentas, deserializarla, actualizar su tipo, volver a serializarla y volver a almacenarla. Puede encontrar un ejemplo de dicho script aquí.

Restablecer Datos

Si está ejecutando un nodo validador en la red principal, siempre tenga cuidado al hacer crossfid unsafe-reset-all. Nunca debería usar este comando si no está cambiando el chain-id. :::
IMPORTANTE Asegúrese de que cada nodo tenga un priv_validator.json único. No copie el priv_validator.json de un nodo antiguo a varios nodos nuevos. ¡Ejecutar dos nodos con el mismo priv_validator.json provocará que sea sancionado por doble firma! :::

Primero, elimine los archivos desactualizados y restablezca los datos. Si está ejecutando un nodo validador, asegúrese de entender lo que está haciendo antes de restablecer.

crossfid unsafe-reset-all

Su nodo ahora está en un estado impecable mientras mantiene el priv_validator.json y config.toml originales. Si tenía configurados nodos de centinela o nodos completos antes, su nodo aún intentará conectarse a ellos, pero puede fallar si ellos no han sido actualizados también.