Montaje de nodo validador de Stargaze

No pretendemos reemplazar la guía oficial en inglés de Stargaze, 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 Stargaze son:

  • 8 vcpu.

  • 16GB RAM

  • 1TB de storage. (Recomendamos tipo NVME, la base de datos actual de Stargaze 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 starsd

Sistema Operativo

El sistema operativo que nosotros elegimos fue ubuntu 22.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

#Actualizar paquetes
sudo apt update && sudo apt upgrade -y 

#Instalar herramientas necesarias para continuar la instalación
sudo apt-get install make build-essential gcc git jq chrony -y

Instalación de Go

Descargue e instale la última versión de Go desde su página oficial aquí. En este caso sería la versión 1.19.4.

NOTA: Stargaze necesita Go 1.17 o más para funcionar

#Descargar Go
wget https://go.dev/dl/go1.19.4.linux-amd64.tar.gz

#Eliminar Paquetes anteriores de Go (en caso de existir)
rm -rf /usr/local/go 

# extraer archivos en /usr/local
tar -C /usr/local -xzf go1.19.4.linux-amd64.tar.gz

Configuramos las variables en el archivo ~/.profile 

Configuramos las variables en el archivo ~/.profile

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

Actualizamos el archivo ~/.profile y verificamos la versión de Go

#leer el archivo .profile
source ~/.profile
#versión de Go
go version

Construir el binario de Stargaze

Para conocer la versión más actual del binario revisa el repositorio oficial de Stargaze aquí.

git clone https://github.com/public-awesome/stargaze.git
cd Stargaze
git fetch
git checkout <version-tag>

En nuestro caso la versión más actual del binario es la v7.5.0 (Como las blockchain se van actualizando constantemente por mejoras o fallas, la versión va cambiando).

#Se fija la versión a utilizar
git checkout v7.5.0
#revisar versión actual
git status
#Se realiza la compilación del binario
make install
#Se valida que la versión instalada coincida con la que necesitamos
starsd version

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.

CHAIN_ID=Stargaze-1
MONIKER_NAME="Decry"
#“Decry” es solo un ejemplo de apodo, usted debe poner el de su preferencia.

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í:

CHAIN_REPO="https://raw.githubusercontent.com/public-awesome/mainnet/main/$CHAIN_ID" && \
export PEERS="$(curl -s "$CHAIN_REPO/peers.txt")"
#Puede comprobar si los pares se copiaron correctamente dentro de la variable PEERS.
echo $PEERS

Si no está seguro, puede preguntar por el discord oficial de Stargaze para obtener más peers o nodos semilla para sincronizar su nodo, el link de ingreso lo puedes encontrar en la página oficial https://www.stargaze.zone/ justo en la parte de abajo de la página en la sección de comunidad, donde se ven las redes sociales

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

starsd init "$MONIKER_NAME" --chain-id $CHAIN_ID
#utilizando un home personalizado
starsd init "$MONIKER_NAME" --chain-id $CHAIN_ID --home /dirección/.starsd

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, 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 se recurre a descargar el siguiente archivo

curl -s https://raw.githubusercontent.com/public-awesome/mainnet/main/$CHAIN_ID/genesis.tar.gz > genesis.tar.gz
tar -C ~/.starsd/config/ -xvf genesis.tar.gz
rm genesis.tar.gz
#Este comando reemplazará el archivo genesis.json tenga en cuenta que está 
#direccionado  a la ruta por defecto de .starsd, usted debe modificarlo para que 
#coincida con el suyo, si es el caso que haya modificado su ubicación.

Establecer peers

La configuración de peers, se encuentra en el archivo ~/.starsd/config/config.toml y para añadir los peers solo debemos ejecutar el siguiente comando:

sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.starsd/config/config.toml

Nuevamente debe estar seguro de la ubicación a usar es este caso se está usando la ubicación por defecto de Stargaze, si usted la modificó debe cambiarla para que coincida con su dirección.

Establecer gas

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0ustars\"/" ~/.starsd/config/app.toml

Esta configuración hará que el validador acepte ustars para las transacciones, cabe resaltar que para stargaze se está manejando 0 como tarifa para muchas de las transacciones. Esta es la configuración que se recomienda desde el equipo.

Creación o Restauración de wallet

El validador necesita tener una billetera asociada para funcionar, aquí llegarán las comisiones, las recompensas de stacking que el nodo propio realice.

#Crear una nueva wallet si desea cambiar la ubicación use --home dir/.starsd
starsd keys add <nombre de wallet> 
#Recuperar wallet ya existente 
#debe tener su frase mnemonic para poder recuperarla, solo copiela
starsd keys add <nombre de wallet> --recover

Importante, al crear una nueva wallet, esta mostrará una frase mnemonic, 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 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 de cosmovisor, 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.

starsd start --home ubicación/.starsd
#Revisar estado de sincronización 
#true: aún está en proceso de sincronización
#false: ya está sincronizado y puede continuar
curl http://localhost:26657/status | jq .result.sync_info.catching_up
#Revisar altura de la cadena alcanzada 
curl http://localhost:26657/status | jq .result.sync_info.latest_block_height

Crear un validador

Para realizar este paso, debe estar seguro de que su cadena ya está sincronizada y al día. se necesita hacer un transacción tipo create.validator para esto

starsd tx staking create-validator \
  --amount 1000000ustars \
  --commission-max-change-rate "0.1" \
  --commission-max-rate "0.20" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --details "detalles de su preferencia sobre el validador" \
  --pubkey=$(starsd tendermint show-validator --home dir/.starsd) \
  --moniker "$MONIKER_NAME" \
  --chain-id $CHAIN_ID \
  --gas-prices 0.025ustars \
  --from <key-name> \
  –-home dir/.starsd

Al finalizar con éxito este paso, debería poder ver después de unos segundos su validador dentro del scan de la red aquí o en cualquier otro explorador de stargaze

Realizado por: Mauricio Gil - maurog@decry.io

fabian - vfabian@decry.io

Last updated