Reth
Generar el archivo JWT
Primero necesitamos crear un JSON Web Token (JWT) que permitirá que el software de la capa de ejecución (Reth) y el software de la capa de consenso se comuniquen entre sí.
Ejecute los siguientes comandos (una línea a la vez) para crear una carpeta en el servidor y generar el archivo JWT en ella:
sudo mkdir -p /var/lib/jwtsecret
openssl rand -hex 32 | sudo tee /var/lib/jwtsecret/jwt.hex > /dev/null
Luego apuntaremos los archivos de configuración de los clientes de ejecución y consenso a este archivo JWT.
Descarga Reth y configura el servicio.
Descargue la última versión de Reth y su archivo de firma digital (.asc) para verificar el checksum y garantizar que el archivo descargado no haya sido manipulado.
cd
curl -LO https://github.com/paradigmxyz/reth/releases/download/v0.1.0-alpha.23/reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz
curl -LO https://github.com/paradigmxyz/reth/releases/download/v0.1.0-alpha.23/reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz.asc
Ejecute el proceso de checksum.
gpg --keyserver keyserver.ubuntu.com --recv-keys A3AE097C89093A124049DF1F5391A3C4100530B4
gpg --verify reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz.asc reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz
Verifique la clave de la versión ( --recv-keys
) en el primer comando aquí.

Resultado esperado: verificar el resultado de la verificación de la suma de control
linux-gnu.tar.gz.asc reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz
gpg: Signature made Mon Apr 22 16:57:36 2024 UTC
gpg: using EDDSA key A3AE097C89093A124049DF1F5391A3C4100530B4
gpg: Good signature from "Georgios Konstantopoulos (This is the key used by gakonst to sign Reth releases) <[email protected]>" [expired]
gpg: Note: This key has expired!
Primary key fingerprint: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4
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 reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz
sudo cp reth /usr/local/bin
rm -r reth reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz.asc reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz
Cree una cuenta ( reth
) sin acceso al servidor para que Reth se ejecute como un servicio en segundo plano. Este tipo de cuenta de usuario no tendrá acceso de root, por lo que restringe a los atacantes potenciales únicamente al servicio Reth 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 reth
Cree un directorio para que Reth almacene los datos de blockchain de la capa de ejecución. Luego configure el propietario de este directorio reth
para que este usuario pueda leer y escribir en el directorio.
sudo mkdir -p /var/lib/reth
sudo chown -R reth:reth /var/lib/reth
Cree un archivo de configuración systemd para que el servicio Reth se ejecute en segundo plano.
sudo nano /etc/systemd/system/reth.service
Pegue los siguientes parámetros de configuración en el archivo:
[Unit]
Description=Reth Execution Client (Holesky)
After=network.target
Wants=network.target
[Service]
User=reth
Group=reth
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/reth node \
--chain holesky \
--datadir=/var/lib/reth \
--log.file.directory=/var/lib/reth/logs \
--authrpc.jwtsecret=/var/lib/jwtsecret/jwt.hex \
--full \
--port 30304 \
--http \
--http.api eth,web3,net,txpool,debug,trace \
--http.addr <Internal_IP_address> \
--http.port 8547 \
--ws \
--ws.addr <Internal_IP_address> \
--ws.port 8548 \
--metrics 127.0.0.1:6060
[Install]
WantedBy=default.target
Una vez que haya terminado, guarde con Ctrl+O
y 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 de Reth:
--chain
: Ejecute en la red de prueba Holesky--datadir
: El directorio para que Reth almacene los datos de blockchain de la capa de ejecución--log.file.directory
: La ruta para colocar los logs.--authrpc.jwtsecret
: El directorio que apunta al JWT que generamos anteriormente.--full:
Ejecute el nodo completo.--port
: establece el puerto utilizado para la comunicación peer-to-peer. El valor predeterminado es 30303.--http
: Habilita el servicio HTTP-RPC en HTTP y WebSocket. Esto es para que los clientes de DVT, como el servicio Diva, puedan conectarse a su cliente de ejecución.--http.api
: Módulos RPC que se configurarán para el servidor HTTP.--http.addr
: Utilice aquí la dirección IP interna de su dispositivo (verifique ejecutandoip a
) para conectarse al servicio JSON RPC, por ejemplo192.168.x.x
. De lo contrario, el valor predeterminado es127.0.0.1
--http.port
: Establece el puerto para conectarse al servicio JSON RPC que utilizarán los clientes DVT. Puede elegir cualquier número de puerto no utilizado, pero recuerde permitir conexiones entrantes al puerto elegido en las reglas de su firewall (ufw
). El valor predeterminado es 8545--ws
: ws=Websocket. Habilite el servidor WS-RPC. Esto es para que los clientes de DVT puedan conectarse a su cliente de ejecución.--ws.addr
: Dirección del servidor WebSocket para escuchar. Utilizado por clientes de DVT.--ws.port
: Puerto del servidor WebSocket para escuchar. Utilizado por clientes de DVT.--metrics
: habilite las métricas de monitoreo en el servicio Reth.
Iniciar Reth
Recargar el systemd para registrar los cambios realizados, inicie Reth y verifique su estado para asegurarse de que se esté ejecutando.
sudo systemctl daemon-reload
sudo systemctl start reth.service
sudo systemctl status reth.service
Resultado esperado: el resultado debería decir que Reth está "active (running)". Presione CTRL-C
para salir y Reth continuará ejecutándose. Reth debería tardar alrededor de 6 horas en sincronizarse en la red de prueba de Holesky.

Utilice el siguiente comando para verificar los logs del proceso de sincronización de Reth. Esté atento a cualquier advertencia o error.
sudo apt install ccze -y
sudo journalctl -fu reth -o cat | ccze -A
Resultado esperado:

Presione CTRL-C
para salir.
Si el servicio Reth funciona sin problemas, ahora podemos permitir que se inicie automáticamente al reiniciar el sistema.
sudo systemctl enable reth.service
Rendimiento esperado:
Created symlink /etc/systemd/system/default.target.wants/reth.service → /etc/systemd/system/reth.service.
Recursos:
Lanzamientos: https://github.com/paradigmxyz/reth/releases
Documentación: https://reth.rs/
Telegram: https://t.me/paradigm_reth
Last updated