Conexión de nodos a JOC
Este documento describe los pasos para configurar un nodo Geth en el entorno del usuario y conectarse tanto a la Mainnet como a la Testnet de Japan Open Chain. Si prefieres utilizar RPC Endpoints para conectar dApps, consulta aquí.
- Mainnet
- Testnet
Conectar un nodo a JOC Mainnet
El proceso de conexión es el siguiente:
- 1. Instalación de los paquetes necesarios
- 2. Creación de los directorios de datos
- 3. Descarga de los archivos de configuración
- 4. Instalación del cliente
- 5. Generación del JWT Secret
- 6. Inicialización de Geth
- 7. Ejecución de Geth
- 8. Ejecución de Lighthouse
- 9. Verificación
1. Instalación de los paquetes necesarios
# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y curl openssl
# Amazon Linux 2023 / RHEL-based
sudo dnf install -y curl openssl
2. Creación de los directorios de datos
sudo mkdir -p /data/ethereum
sudo mkdir -p /data/ethereum/consensus/config
3. Descarga de los archivos de configuración
Descarga los archivos siguientes y cópialos en las ubicaciones correctas:
| Archivo | Enlace |
|---|---|
genesis.json | Ver |
config.yaml | Ver |
genesis.ssz | Descargar |
deposit_contract.txt | Ver |
deposit_contract_block.txt | Ver |
# genesis.json -> /data/ethereum/genesis.json
# config.yaml -> /data/ethereum/consensus/config/config.yaml
# genesis.ssz -> /data/ethereum/consensus/config/genesis.ssz
# deposit_contract_block.txt -> /data/ethereum/consensus/config/deposit_contract_block.txt
4. Instalación del cliente
Geth (cliente de ejecución, verificado con v1.13.5):
https://geth.ethereum.org/docs/getting-started/installing-geth
Actualmente, Geth v1.14.0 o posterior no es compatible.
Lighthouse (cliente de consenso, verificado con v7.0.1):
https://lighthouse-book.sigmaprime.io/installation.html
5. Generación del JWT Secret
El JWT secret autentica la comunicación interna entre Geth y Lighthouse. Genéralo una sola vez:
openssl rand -hex 32 | tr -d "\n" > /data/ethereum/jwtsecret
chmod 644 /data/ethereum/jwtsecret
6. Inicialización de Geth
geth init \
--datadir=/data/ethereum \
/data/ethereum/genesis.json
Ejecuta este comando una sola vez.
7. Ejecución de Geth
La lista actual de BootNodes se obtiene de enodes.yaml.
geth --datadir=/data/ethereum \
--networkid=81 \
--http \
--authrpc.vhosts="*" \
--authrpc.addr=127.0.0.1 \
--authrpc.jwtsecret=/data/ethereum/jwtsecret \
--bootnodes="$BOOTNODES"
8. Ejecución de Lighthouse
La lista actual de Boot ENR se obtiene de bootstrap_nodes.yaml.
lighthouse beacon_node \
--datadir=/data/ethereum/consensus \
--http \
--execution-endpoint=http://127.0.0.1:8551 \
--execution-jwt=/data/ethereum/jwtsecret \
--testnet-dir=/data/ethereum/consensus/config \
--boot-nodes="$BOOT_ENRS"
9. Verificación
Comprueba el estado de sincronización de Geth:
curl -s -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'
# false → fully synced
# object → syncing, shows currentBlock / highestBlock
Comprueba el estado de sincronización de Lighthouse:
curl -s http://localhost:5052/eth/v1/node/peer_count
Si el mensaje "Looking for peers" continúa, significa que la conexión no se ha realizado correctamente. Verifica los valores del bootnode/ENR y la configuración de tu firewall (puertos 30303 TCP+UDP para Geth y puerto 9000 TCP+UDP para Lighthouse).
Explorer
Conectar un nodo a JOC Testnet
El proceso de conexión es el siguiente:
- 1. Instalación de los paquetes necesarios
- 2. Creación de los directorios de datos
- 3. Descarga de los archivos de configuración
- 4. Instalación del cliente
- 5. Generación del JWT Secret
- 6. Inicialización de Geth
- 7. Ejecución de Geth
- 8. Ejecución de Lighthouse
- 9. Verificación
1. Instalación de los paquetes necesarios
# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y curl openssl
# Amazon Linux 2023 / RHEL-based
sudo dnf install -y curl openssl
2. Creación de los directorios de datos
sudo mkdir -p /data/ethereum
sudo mkdir -p /data/ethereum/consensus/config
3. Descarga de los archivos de configuración
Descarga los archivos siguientes y cópialos en las ubicaciones correctas:
| Archivo | Enlace |
|---|---|
genesis.json | Ver |
config.yaml | Ver |
genesis.ssz | Descargar |
deposit_contract.txt | Ver |
deposit_contract_block.txt | Ver |
# genesis.json -> /data/ethereum/genesis.json
# config.yaml -> /data/ethereum/consensus/config/config.yaml
# genesis.ssz -> /data/ethereum/consensus/config/genesis.ssz
# deposit_contract_block.txt -> /data/ethereum/consensus/config/deposit_contract_block.txt
4. Instalación del cliente
Geth (cliente de ejecución, verificado con v1.13.5):
https://geth.ethereum.org/docs/getting-started/installing-geth
Lighthouse (cliente de consenso, verificado con v7.0.1):
https://lighthouse-book.sigmaprime.io/installation.html
5. Generación del JWT Secret
El JWT secret autentica la comunicación interna entre Geth y Lighthouse. Genéralo una sola vez:
openssl rand -hex 32 | tr -d "\n" > /data/ethereum/jwtsecret
chmod 644 /data/ethereum/jwtsecret
6. Inicialización de Geth
geth init \
--datadir=/data/ethereum \
/data/ethereum/genesis.json
Ejecuta este comando una sola vez.
7. Ejecución de Geth
La lista actual de BootNodes se obtiene de enodes.yaml.
geth --datadir=/data/ethereum \
--networkid=361257328 \
--http \
--authrpc.vhosts="*" \
--authrpc.addr=127.0.0.1 \
--authrpc.jwtsecret=/data/ethereum/jwtsecret \
--bootnodes="$BOOTNODES"
8. Ejecución de Lighthouse
La lista actual de Boot ENR se obtiene de bootstrap_nodes.yaml.
lighthouse beacon_node \
--datadir=/data/ethereum/consensus \
--http \
--execution-endpoint=http://127.0.0.1:8551 \
--execution-jwt=/data/ethereum/jwtsecret \
--testnet-dir=/data/ethereum/consensus/config \
--boot-nodes="$BOOT_ENRS"
9. Verificación
Comprueba el estado de sincronización de Geth:
curl -s -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'
# false → fully synced
# object → syncing, shows currentBlock / highestBlock
Comprueba el estado de sincronización de Lighthouse:
curl -s http://localhost:5052/eth/v1/node/peer_count
Si el mensaje "Looking for peers" continúa, significa que la conexión no se ha realizado correctamente. Verifica los valores del bootnode/ENR y la configuración de tu firewall (puertos 30303 TCP+UDP para Geth y puerto 9000 TCP+UDP para Lighthouse).