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
¡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
crossfid unsafe-reset-all
. Nunca debería usar este comando si no está cambiando el chain-id
. :::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.