Search

El proceso de construcción de un nodo/validador para Humans.ai

how-to-create-your-testnet-validator.png

Mucha gente piensa que ser validador necesitas habilidades técnicas imposibles, otros piensan que es muy fácil si eres un programador, por ejemplo, y muchos otros no tienen ni idea de lo que esto significa. 

Como acabamos de comenzar el Testnet para el proyecto Humans.ai, queremos dejar más claro qué es un validador y cómo se puede crear uno. El Proyecto Humans es un proyecto que tiene como objetivo principal la inteligencia artificial utilizada para mejorar y hacer más fácil nuestra vida, trabajo, ganar nuevas habilidades y tiempo, también.

El siguiente artículo estará lleno de material técnico, pero el objetivo principal es traducir lo que se debe hacer y de una forma más fácil de entender incluso si eres al principio.

I) Que significa un validador?              
 Un validador es un tipo especial de nodo que participa en el consenso y se vuelve responsable de verificar, votar y mantener un registro de transacciones.
Los validadores almacenan una copia de la cadena de bloques de la red y deben realizar ciertas funciones para mantener la seguridad del sistema. Dependiendo de la red, puede haber un número limitado de nodos Validator o ilimitado. Por ejemplo, para Humans.ai solo hubo 50 validadores elegidos para Testnet, y otros 25 están en lista pendiente.

La parte más esencial del sistema POS (Proof of stake) está representada por validadores. Actúan como moderadores del sistema de staking y tienen la importante tarea de agregar nuevos bloques en la cadena.
Para tener el sistema lo más descentralizado posible, es importante elegir un buen número de validadores. Esto ayuda a la comunidad al ofrecer una mayor variedad de opciones de participación, así como a proteger el sistema al evitar que la cadena de bloques sea controlada por un validador muy rico.

II) Qué necesitas para ejecutar un Validador?              


Requisitos o requisitos del sistema
Para los proyectos técnicos, estas necesidades se llaman requisitos . ¡Al igual que con cualquier otro servicio, los requisitos son muy importantes!

a) Fuerte conexión al internet

b) Deberá asegurarse de obtener un servidor con al menos 32 GB de memoria (RAM)

c) Unidad de estado sólido con al menos 500 GB de almacenamiento en disco SSD

d) Al menos 1000mbps de ancho de banda de red

e) Abra varios puertos para conectarse a la red peer-to-peer de Humans

Para exportar métricas de tendermint, Prometheus escucha la dirección: 26660
Exportador de Prometeo: 9464
Para conectarse a la red peer-to-peer de Humans: 26656
Exportar métricas del SDK de Cosmos: 1317
Tenga en cuenta que a medida que crece el uso de la cadena de bloques, los requisitos del servidor también pueden aumentar, por lo que también debe tener un plan para actualizar su servidor.

III) Cómo construir su nodo/validador Humans              
Todos los proyectos comparten tutoriales e información muy útil en su Github. Entonces, asegúrate de hacer de Github tu mejor amigo :)

A partir de aquí te recomendamos seguir el tutorial oficial que puedes encontrar aquí: https://github.com/humansdotai/testnets

Además de los pasos anteriores, también deberá realizar la configuración de nuestro servicio de la siguiente manera:

 1. Asegúrese de que su máquina funcione con Ubuntu 20.04

 2. Comience actualizando la lista de paquetes:

sudo apt update

  3. Instale el paquete build-essential escribiendo:

sudo apt upgrade -y

 4. Este comando instala un montón de paquetes nuevos, incluidos gcc, g ++ y make.

sudo apt-get install manpages-dev

 5. Instale los paquetes necesarios para ejecutar Go

sudo apt install build-essential -y

 6. Comproba la versión de gcc

gcc --version

 7. Primero elimine cualquier instalación Go antigua existente

sudo rm -rf /usr/local/go
sudo rm -rf /root/go

 8. Instale la versión Go compatible y correcta

curl https://dl.google.com/go/go1.20.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -

 9. Actualice las variables de entorno para incluir Go

cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile

 10. Consulta la versión GO

go version

En respuesta, deberíamos obtener algo como esto:

go1.20.1 linux / amd64

11. Instale la utilidad git (en caso de que aún no esté instalada)

apt install git

 12. Instale la última versión de humand y asegúrese de verificar la etiqueta correcta

git clone https://github.com/humansdotai/humans
cd humans && git checkout tags/v0.1.0
make install

 13. Verifique la versión instalada con

humansd version --long

 14. Establece tu nombre de validador

humansd init stake2earn --chain-id=humans_3000-1

 15. Crea una clave local o recuperar una existente

humansd keys add wallet_test
humansd keys add --recover wallet_test

 Â¡No olvides guardar tu semilla mnemotécnica!

 Nunca cree sus claves de validación de red principal utilizando un backend de claves de prueba. Si lo hace, podría provocar una pérdida de fondos al hacer que sus fondos sean accesibles de forma remota a través del punto final eth-sendTransaction JSON -RPC. 

16. Comprueba todas las llaves que tienes con

humansd keys list

IV) Cómo iniciar y administrar su nodo/validador Humans               
 

Systemd
Para realizar un seguimiento de sus registros y errores, puede crear los siguientes archivos y archivos de servicio. Esto es obligatorio solo si desea sincronizar el nodo automáticamente y reiniciar el demonio de Humans Cosmos siempre que sea necesario debido a la falla:

1. Cree los archivos para rastrear errores:

sudo mkdir -p /var/log/humans && sudo touch /var/log/humans/humans.log && sudo touch /var/log/humans/humans_error.log

2. Y copie el siguiente script en su servicio de sistema

sudo tee /etc/systemd/system/humans.service > /dev/null <<'EOF'
[Unit]
Description=humans sync node service
After=network-online.target
[Service]
User=root
TimeoutStartSec=0
CPUWeight=90
IOWeight=90
Environment=OTEL_EXPORTER_PROMETHEUS_PORT=9464
ExecStart=/root/go/bin/humansd start - log_level=warn
StandardOutput=file:/var/log/humans/humans.log
StandardError=file:/var/log/humans/humans_error.log
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF


3. Comprueba el servicio de tu sistema

cat /etc/systemd/system/humans.service


4. Controle y rastree sus registros a través de los siguientes comandos:

systemctl daemon-reload
sudo systemctl enable humans
sudo systemctl start humans
sudo systemctl stop humans
sudo systemctl restart humans
systemctl -l status humans
sudo journalctl -u humans-f
tail -f /var/log/humans/humans.log
tail -f /var/log/humans/humans_error.log


5. Consulta el estado de tu nodo/validador

humansd status 2>&1 | jq .SyncInfo

Preste atención a "catching_up"
Si es "True" significa que NO está sincronizado todavía.
Si es "False" significa sincronizado.

6. Crear validador

Después de que catch_up sea False (falso), debe crear su validador:

humansd tx staking create-validator \
--amount=9850000aheart \
--pubkey=$(humansd tendermint show-validator) \
--moniker=stake2earn 🌜 \
--website="https://stake2earn.com" \
--details="Blockhain validator in POS networks - Decentralized and noncustodial crypto staking services 🌜" \
--identity=D153AB5E9F506C47 \
--chain-id=humans_3000-1 \
--commission-rate="0.05" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.1" \
--min-self-delegation="1" \
--gas-prices 0.025aheart \
--from=wallet_test

¡Felicidades! ¡Acabas de construir tu nodo/validador! :)

Gabriela Tarabuta

Gabriela Tarabuta

CCO & Lead Product Manager