Lodestar VC

Crear una nueva cuenta de usuario

sudo useradd --no-create-home --shell /bin/false lodestar_validator

Instalación de dependencias - Docker

El siguiente script realiza lo siguiente:

  1. Descargue y ejecute el script de instalación oficial de Docker

  2. Crea un nuevo grupo de usuarios llamado "docker"

  3. Agrega su cuenta de usuario actual de Linux a este nuevo grupo de Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

sudo groupadd docker
sudo usermod -aG docker $USER

Cierre sesión y vuelva a iniciarla para que la configuración del nuevo grupo de usuarios surta efecto.

exit
ssh <user>@<IP_address> -p <port_no.> -i <SSH_key> -v

Cree una nueva cuenta de usuario de Lodestar

  • Omita este paso si está utilizando el cliente de consenso Lodestar.

sudo useradd --no-create-home --shell /bin/false lodestar

Prepare el directorio de datos del validador.

1) Cree 3 carpetas nuevas para almacenar los datos del cliente validador, el keystore del validador y la contraseña del keystore.

2) Copie los keystores del validador y su archivo de contraseña en sus respectivas carpetas.

3) Cambie el propietario de estas nuevas carpetas al usuario lodestar.

4) Restrinja los permisos en esta nueva carpeta de modo que solo el propietario pueda leer, escribir y ejecutar archivos en esta carpeta.

5) Recupere el UID y el GID de la cuenta de usuario lodestar que se utilizará en su archivo docker-compose.yml en el siguiente paso

sudo mkdir -p /var/lib/lodestar_validator/validator_keystores /var/lib/lodestar_validator/keystore_password
sudo cp ~/validator_keys/<validator_keystore.json> /var/lib/lodestar_validator/validator_keystores
sudo cp ~/validator_keys/<validator_keystore_password.txt> /var/lib/lodestar_validator/keystore_password
sudo chown -R lodestar_validator:lodestar_validator /var/lib/lodestar_validator
sudo chmod 700 /var/lib/lodestar_validator
id lodestar_validator

Aparte de la extensión del archivo, el archivo validator_keystore_password deberá tener el mismo nombre que el archivo keystore de firma del validador (por ejemplo, keystore-m-123.json, keystore-m-123.txt).

Resultado esperado:

uid=1004(lodestar) gid=1005(lodestar) groups=1005(lodestar)

Nuevas carpetas creadas:

/var/lib/lodestar_validator/
/var/lib/lodestar_validator/validator_keystores
/var/lib/lodestar_validator/keystore_password

Descargando Lodestar

Cree una nueva carpeta para el cliente del validador Lodestar.

cd
sudo mkdir lodestar_validator

Crea un archivo docker-compose.yml en la carpeta Lodestar.

cd ~/lodestar_validator
sudo nano docker-compose.yml

Pegue la siguiente configuración en el archivo docker-compose.yml. Nota: Esto es similar al archivo de configuración systemd utilizado en la configuración de otros clientes en este plan de estudios.

services:
  validator_client:
    image: chainsafe/lodestar:latest
    container_name: lodestar_validator
    user: <UID>:<GID>
    restart: unless-stopped
    volumes:
      - /var/lib/lodestar_validator:/var/lib/lodestar_validator
    command:
      - validator
      - --dataDir
      - /var/lib/lodestar_validator
      - --importKeystores
      - /var/lib/lodestar_validator/validator_keystores
      - --importKeystoresPassword
      - /var/lib/lodestar_validator/keystore_password/<validator_signing_keystore_password_file_name>.txt
      - --network
      - holesky
      - --beaconNodes
      - http://<Internal_IP_address>:5051
      - --builder
      - --suggestedFeeRecipient
      - "<your_designated_ETH_wallet_address>"
      - --doppelgangerProtection
      - --metrics
      - --metrics.port
      - "5064"
      - --graffiti
      - "your_graffiti_of_choice"
    environment:
      NODE_OPTIONS: --max-old-space-size=2048
    ports:
      - "5064:5064"

Una vez que haya terminado, guarde con Ctrl+Oy Enter, luego salga con Ctrl+X.

Ahora, analicemos lo que estamos configurando en este archivo yml.

  1. image: chainsafe/lodestar:latest: Obtiene y ejecuta la última versión estable de Lodestar

  2. container_name: lodestar_validator: Nombre dado a este contenedor Docker, que puede depender de usted.

  3. restart: unless-stopped: reinicia automáticamente este contenedor cuando se reinicia su dispositivo, a menos que el usuario lo detenga explícitamente.

  4. volumes:: vincula las carpetas de su máquina host a las carpetas del contenedor Docker para que el contenedor pueda acceder a ellas. Aquí, vinculamos las carpetas utilizadas por los flags --dataDir, --importKeystoresy --importKeystoresPassword.

  5. network_mode: host: Permite que el contenedor Docker comparta el espacio de nombres de la red con el host -

    • Por ejemplo localhost, se refiere tanto al host como al contenedor Docker, los puertos se comparten entre el host y el contenedor.

  6. command:: Las banderas con las que ejecutar Lodestar. Similar a las banderas utilizadas en el método de configuración systemd.

    • Cada - indica un salto de línea.

    • Las variables con un prefijo -- son banderas y las demás son los valores de las banderas.

    • El primer valor ( validator) indica a Lodestar que ejecute solo el cliente de consenso y sin el cliente validador.

    • --dataDir:Especifique el directorio donde Lodestar almacenará los datos relacionados con el cliente validador

    • --network: Ejecute el servicio Validator Client en la red de prueba ETH Holesky.

    • --beacon-nodes: URL para conectarse a los clientes de consenso principal y de respaldo, si los hay. Debe ser la misma dirección IP configurada en su cliente de consenso. Vuelva a consultarla aquí si no la recuerda.

    • --builder: Requerido cuando se utilizan constructores externos para construir bloques (por ejemplo, relés MEV)

    • --suggestedFeeRecipient: Dirección de billetera ETH para recibir recompensas de propuestas de bloque y sobornos MEV

    • --doppelganger-detection: Ayuda a evitar la penalización debido a la doble firma al verificar si las claves de validación ya están activas en la red. No es una solución infalible.

    • --metrics: Habilitar métricas para monitoreo

    • --metrics.port: establece el puerto para obtener métricas

    • --graffiti: Texto opcional para mostrar en cadena cuando su validador propone un bloque

  7. environment: Le indica a Node.js que permita utilizar una mayor cantidad de memoria antes de iniciar los procesos de recolección de basura para liberar memoria.

  8. ports:Asigna los puertos utilizados por el contenedor Docker a los puertos del dispositivo host para que sean accesibles a través de 127.0.0.1 o localhost.

Inicie el contenedor del cliente Lodestar Validator

1) Asegúrese de estar en la misma carpeta que el archivo docker-compose.yml que creó anteriormente.

cd ~/lodestar_validator

2) Inicie el contenedor Docker.

docker compose up -d

Resultado esperado:

3) Asegúrese de que no haya mensajes de error monitoreando los logs durante unos minutos.

docker logs lodestar_validator -f

Eliminar keystores duplicados de validación

Para evitar errores de configuración que conduzcan a una doble firma en el futuro, elimine las copias duplicadas de los kestore de firma del validador una vez que todo esté funcionando sin problemas.

sudo rm -r ~/validator_keys

Recursos

Last updated