Skip to main content

Actualizando la Cadena

Iniciar la Red

Inicia la red y desencadena la actualización después de que la propuesta haya sido aprobada.


# inicia un nodo completo de la aplicación gaia
$ crossfid start

# configura la cli
$ crossfid config trust-node true
$ crossfid config chain-id testing

# crea una propuesta de gobernanza de actualización de software
$ crossfid tx gov submit-proposal software-upgrade \
--title --description \
--from --upgrade-height --deposit 10000000mpx

# una vez que la propuesta sea aprobada, puedes consultar el plan pendiente
$ crossfid query upgrade plan

Realizando una actualización

Asumiendo que la propuesta pasa, la cadena se detendrá en la altura de actualización dada.

Puedes detener y iniciar el binario original todo lo que quieras, pero se negará a ejecutarse después de la altura de actualización.

Necesitamos un nuevo binario con el manejador de actualización instalado. Los registros deberían verse como:

E[2019-11-05|12:44:18.913] SE NECESITA ACTUALIZACIÓN "
" a la altura: : módulo=main
E[2019-11-05|12:44:18.914] ¡¡¡FALLA DE CONSENSO!!!
...

Ten en cuenta que el proceso se colgará indefinidamente (no sale para evitar bucles de reinicio). Por lo tanto, debes matar manualmente el proceso y reemplazarlo con un nuevo binario. Hazlo ahora con Ctrl+C o killall crossfid.

En gaia/app/app.go, después de que se inicializa y se configura el upgrade.Keeper en la aplicación, establece el Handler de actualización correspondiente con el correcto :

    app.upgradeKeeper.SetUpgradeHandler("
", func(ctx sdk.Context, plan upgrade.Plan) {
// lógica personalizada después de que se haya ejecutado la actualización de la red
})

Recibirás un pánico ante cualquier error: esto haría que la actualización falle si no se pudiera ejecutar la migración, y ningún nodo avanzaría, permitiendo una recuperación manual. Si ignoramos los errores, procederíamos con una actualización incompleta y tendríamos un tiempo muy difícil recuperando el estado adecuado.

Compilar el Nuevo Binario

Ahora, compila el nuevo binario y ejecuta el código actualizado para completar la actualización:


# crea un nuevo binario de gaia con el manejador de actualización agregado
$ make install

# Reinicia la cadena usando el nuevo binario. Deberías ver que la cadena se reanuda desde

# la altura de la actualización:

# `I[2019-11-05|12:48:15.184] aplicando actualización
a la altura: módulo=main`
$ crossfid start

# verifica que no haya un plan pendiente
$ crossfid query upgrade plan

# verifica que puedas consultar el encabezado del bloque de la actualización completada
$ crossfid query upgrade applied