Conexão de Nó ao JOC
Este documento descreve o procedimento para configurar um nó Geth no ambiente do usuário e conectar-se ao Mainnet e Testnet do Japan Open Chain. Se você deseja conectar dApps usando RPC Endpoints, consulte aqui.
- Mainnet
- Testnet
Conectar um Nó ao JOC Mainnet
O fluxo até a conexão é o seguinte:
- 1. Instalação dos Pacotes Necessários
- 2. Criação dos Diretórios de Dados
- 3. Download dos Arquivos de Configuração
- 4. Instalação do Cliente
- 5. Geração do JWT Secret
- 6. Inicialização do Geth
- 7. Execução do Geth
- 8. Execução do Lighthouse
- 9. Verificação
1. Instalação dos Pacotes Necessários
# 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. Criação dos Diretórios de Dados
sudo mkdir -p /data/ethereum
sudo mkdir -p /data/ethereum/consensus/config
3. Download dos Arquivos de Configuração
Baixe os arquivos abaixo e copie-os para os locais corretos:
| File | Link |
|---|---|
genesis.json | Visualizar |
config.yaml | Visualizar |
genesis.ssz | Download |
deposit_contract.txt | Visualizar |
deposit_contract_block.txt | Visualizar |
# 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. Instalação do Cliente
Geth (Cliente de Execução, verificado com v1.13.5):
https://geth.ethereum.org/docs/getting-started/installing-geth
No momento, o Geth v1.14.0 ou posterior não é compatível.
Lighthouse (Cliente de Consenso, verificado com v7.0.1):
https://lighthouse-book.sigmaprime.io/installation.html
5. Geração do JWT Secret
O JWT secret autentica a comunicação interna entre o Geth e o Lighthouse. Gere-o uma única vez:
openssl rand -hex 32 | tr -d "\n" > /data/ethereum/jwtsecret
chmod 644 /data/ethereum/jwtsecret
6. Inicialização do Geth
geth init \
--datadir=/data/ethereum \
/data/ethereum/genesis.json
Execute este comando apenas uma vez.
7. Execução do Geth
A lista atual de BootNodes é obtida em 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. Execução do Lighthouse
A lista atual de Boot ENR é obtida em 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. Verificação
Verifique o status de sincronização do 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
Verifique o status de sincronização do Lighthouse:
curl -s http://localhost:5052/eth/v1/node/peer_count
Se a mensagem "Looking for peers" continuar, a conexão não está funcionando corretamente. Verifique os valores do bootnode/ENR e as configurações do seu firewall (portas 30303 TCP+UDP para o Geth e porta 9000 TCP+UDP para o Lighthouse).
Explorer
Conectar um Nó ao JOC Testnet
O fluxo até a conexão é o seguinte:
- 1. Instalação dos Pacotes Necessários
- 2. Criação dos Diretórios de Dados
- 3. Download dos Arquivos de Configuração
- 4. Instalação do Cliente
- 5. Geração do JWT Secret
- 6. Inicialização do Geth
- 7. Execução do Geth
- 8. Execução do Lighthouse
- 9. Verificação
1. Instalação dos Pacotes Necessários
# 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. Criação dos Diretórios de Dados
sudo mkdir -p /data/ethereum
sudo mkdir -p /data/ethereum/consensus/config
3. Download dos Arquivos de Configuração
Baixe os arquivos abaixo e copie-os para os locais corretos:
| File | Link |
|---|---|
genesis.json | Visualizar |
config.yaml | Visualizar |
genesis.ssz | Download |
deposit_contract.txt | Visualizar |
deposit_contract_block.txt | Visualizar |
# 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. Instalação do Cliente
Geth (Cliente de Execução, verificado com v1.13.5):
https://geth.ethereum.org/docs/getting-started/installing-geth
Lighthouse (Cliente de Consenso, verificado com v7.0.1):
https://lighthouse-book.sigmaprime.io/installation.html
5. Geração do JWT Secret
O JWT secret autentica a comunicação interna entre o Geth e o Lighthouse. Gere-o uma única vez:
openssl rand -hex 32 | tr -d "\n" > /data/ethereum/jwtsecret
chmod 644 /data/ethereum/jwtsecret
6. Inicialização do Geth
geth init \
--datadir=/data/ethereum \
/data/ethereum/genesis.json
Execute este comando apenas uma vez.
7. Execução do Geth
A lista atual de BootNodes é obtida em 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. Execução do Lighthouse
A lista atual de Boot ENR é obtida em 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. Verificação
Verifique o status de sincronização do 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
Verifique o status de sincronização do Lighthouse:
curl -s http://localhost:5052/eth/v1/node/peer_count
Se a mensagem "Looking for peers" continuar, a conexão não está funcionando corretamente. Verifique os valores do bootnode/ENR e as configurações do seu firewall (portas 30303 TCP+UDP para o Geth e porta 9000 TCP+UDP para o Lighthouse).