Teku BN

Instalar las dependencias - Java Runtime Environment

sudo apt install openjdk-17-jdk

Descargar Teku

Descargue la última versión de Teku y ejecute el proceso checksum para asegurarse de que el archivo descargado no haya sido manipulado.

cd
curl -LO https://artifacts.consensys.net/public/teku/raw/names/teku.tar.gz/versions/24.4.0/teku-24.4.0.tar.gz
echo "ca28aa03f7e6b095a89adb34c30b5ec78075031e4396488389b89d6bb2864416 teku-24.4.0.tar.gz" | sha256sum --check

Cada archivo descargable viene con su propio checksum. Reemplace el checksum real y la URL de descarga en el código anterior.

Asegúrate de elegir la versión AMD64. Haga clic derecho en el texto vinculado y seleccione "copiar dirección del enlace" para obtener la URL de descarga curl.

Resultado esperado: verificar el resultado checksum.

teku-24.4.0.tar.gz: OK

Si se verifica el checksum, extraiga los archivos y muévalos al directorio (/usr/local/bin) para mayor claridad y mejores prácticas. Luego, limpie las copias duplicadas.

tar xvf teku-24.4.0.tar.gz
sudo cp -a teku-24.4.0 /usr/local/bin/teku
rm -r teku-24.4.0.tar.gz teku-24.4.0

Configurar el cliente de consenso de Teku

Ejecutaremos el cliente de consenso y el cliente del validador de Teku como servicios separados para que haya más flexibilidad para configurar un nodo de failover para obtener el máximo tiempo de actividad cuando usted decida que es necesario.

Cree una cuenta ( teku) sin acceso al servidor para que el cliente de consenso Teku y el cliente del validador se ejecuten como servicios en segundo plano. Este tipo de cuenta de usuario no tendrá acceso de root, por lo que restringe a los atacantes potenciales únicamente a los servicios del cliente de consenso y del cliente validador en el improbable caso de que logren infiltrarse a través de una actualización de cliente comprometida.

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

Cree un directorio para que Teku almacene la blockchain y los datos de la capa de consenso del validador. Mueva el directorio validator_keys a esta carpeta. Luego configure el propietario de este directorio al usuario tekupara que pueda leer y escribir en el directorio.

sudo mkdir -p /var/lib/teku_beacon
sudo chown -R teku:teku /var/lib/teku_beacon
sudo chmod 700 /var/lib/teku_beacon

Si no hay errores, cree un archivo de configuración systemd para que el servicio del cliente de consenso Teku se ejecute en segundo plano.

sudo nano /etc/systemd/system/tekubeacon.service

Pegue los siguientes parámetros de configuración en el archivo:

[Unit]
Description=Teku Beacon Node (Holesky)
Wants=network-online.target
After=network-online.target
[Service]
User=teku
Group=teku
Type=simple
Restart=always
RestartSec=5
Environment="JAVA_OPTS=-Xmx6g"
Environment="TEKU_OPTS=-XX:-HeapDumpOnOutOfMemoryError"
ExecStart=/usr/local/bin/teku/bin/teku \
  --network=holesky \
  --data-path=/var/lib/teku_beacon \
  --ee-endpoint=http://127.0.0.1:8551 \
  --ee-jwt-secret-file=/var/lib/jwtsecret/jwt.hex \
  --initial-state=https://holesky.beaconstate.ethstaker.cc/ \
  --metrics-enabled=true \
  --metrics-port=8009 \
  --p2p-port=9001 \
  --rest-api-enabled=true \
  --rest-api-interface=0.0.0.0 \
  --rest-api-host-allowlist=<Internal_IP_address> \
  --rest-api-port=5051 \
  --builder-endpoint=http://127.0.0.1:18550 \
  --validators-builder-registration-default-enabled=true \
  --p2p-nat-method=UPNP 

[Install]
WantedBy=multi-user.target

Una vez que haya terminado, guarde con Ctrl+Oy Enter, luego salga con Ctrl+X. Comprenda y revise el resumen de configuración que aparece a continuación y modifíquelo si es necesario.

Resumen de configuración del cliente de consenso Teku:

  1. --network: Ejecute el servicio del cliente de consenso en la red de prueba ETH Holesky

  2. --data-path: Especifique el directorio para que Teku almacene datos relacionados con el cliente de consenso

  3. --ee-endpoint: URL para conectarse al cliente de la capa de ejecución

  4. --ee-jwt-secret: Ruta del archivo para localizar el secreto JWT que generamos anteriormente

  5. --initial-state: Habilita la sincronización casi instantánea del cliente de consenso apuntando a una de las URL de los checkpoints listados aquí: https://eth-clients.github.io/checkpoint-sync-endpoints/

  6. --metrics-enabled: Habilita el seguimiento de las métricas del cliente de consenso

  7. --p2p-port:Establece el puerto para la comunicación peer-to-peer. El valor predeterminado es 9000.

  8. --rest-api-enabled: Permite que el cliente validador se conecte a este cliente de consenso. También permite monitorear los endpoints para extraer métricas de este servicio.

  9. --rest-api-interface: Establece la dirección IP para conectarse a la API REST del cliente de consenso que utilizarán los clientes DVT. Utilice 0.0.0.0 aquí y restrinja a direcciones IP de host específicas de su dispositivo usando --rest-api-host-allowlist.

  10. --rest-api-host-allowlist:Establece la dirección IP que puede conectarse a la API REST del cliente de consenso que utilizarán los clientes DVT. Utilice aquí la dirección IP interna de su dispositivo (verifique ejecutando ip a), por ejemplo 192.168.x.x. De lo contrario, el valor predeterminado es 127.0.0.1

  11. --rest-api-port: Establece el puerto para conectarse al cliente de consenso.

  12. --builder-endpoint: URL para conectarse a constructores externos (por ejemplo, relays MEV)

  13. --validators-builder-registration-default-enabled: Requerido cuando se utilizan constructores externos para construir bloques (por ejemplo, relays MEV)

  14. --p2p-nat-method=UPNP: Permite que su cliente de consenso descubra y se conecte mejor a otros clientes de consenso en la red ETH sin necesidad de utilizar el reenvío de puertos.

Inicie el cliente de consenso de Teku

Recargar el systemd para registrar los cambios realizados, inicie Teku y verifique su estado para asegurarse de que se esté ejecutando.

sudo systemctl daemon-reload
sudo systemctl start tekubeacon.service
sudo systemctl status tekubeacon.service

Resultado esperado: El resultado debería decir que el cliente Teku Client está "active (running)". Presione CTRL-C para salir y Teku continuará ejecutándose. Teku debería tardar solo unos minutos en sincronizarse en Mainnet.

Utilice el siguiente comando para verificar los logs de sincronización de Teku. Esté atento a cualquier advertencia o error.

sudo journalctl -fu tekubeacon -o cat | ccze -A

Resultado esperado:

Presione Ctrl+Cpara salir del monitoreo.

Si el servicio Teku funciona sin problemas, ahora podemos permitir que se inicie automáticamente al reiniciar el sistema.

sudo systemctl enable tekubeacon.service

Verificar las raíces del estado inicial (Checkpoint Sync)

  1. Vaya a https://holesky.beaconcha.in/ en su navegador y busque el número de slot ( slot).

  2. Verifique Block Rooty State Root con su salida en el comando journalctl

  3. Resultado journalctl

Recursos

Last updated