Nhảy tới nội dung

Kết nối Node với JOC

Tài liệu này mô tả các bước để thiết lập node Geth trong môi trường người dùng và kết nối với Japan Open Chain trên Mainnet và Testnet. Nếu bạn muốn sử dụng RPC Endpoints để kết nối dApps, vui lòng xem tại đây.

Kết nối Node với JOC Mainnet​

Quá trình kết nối diễn ra như sau:

1. Cài đặt các Gói cần thiết​

# 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. Tạo Thư mục Dữ liệu​

sudo mkdir -p /data/ethereum
sudo mkdir -p /data/ethereum/consensus/config

3. Tải xuống các Tập tin Cấu hình​

Tải xuống các tập tin dưới đây và sao chép chúng vào đúng vị trí:

FileLiên kết
genesis.jsonXem
config.yamlXem
genesis.sszTải xuống
deposit_contract.txtXem
deposit_contract_block.txtXem
# 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. Cài đặt Client​

Geth (Execution Client, đã kiểm chứng hoạt động tốt với v1.13.5):

https://geth.ethereum.org/docs/getting-started/installing-geth

cẩn thận

Hiện tại, Geth v1.14.0 trở lên chưa được hỗ trợ.

Lighthouse (Consensus Client, đã kiểm chứng hoạt động tốt với v7.0.1):

https://lighthouse-book.sigmaprime.io/installation.html

5. Tạo JWT Secret​

JWT secret dùng để xác thực giao tiếp nội bộ giữa Geth và Lighthouse. Chỉ cần tạo một lần:

openssl rand -hex 32 | tr -d "\n" > /data/ethereum/jwtsecret
chmod 644 /data/ethereum/jwtsecret

6. Khởi tạo Geth​

geth init \
--datadir=/data/ethereum \
/data/ethereum/genesis.json

Chỉ chạy lệnh này một lần duy nhất.

7. Chạy Geth​

Danh sách BootNode hiện tại được lấy từ 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. Chạy Lighthouse​

Danh sách Boot ENR hiện tại được lấy từ 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. Xác nhận​

Kiểm tra trạng thái đồng bộ hóa của 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

Kiểm tra trạng thái đồng bộ hóa của Lighthouse:

curl -s http://localhost:5052/eth/v1/node/peer_count

Nếu tin nhắn "Looking for peers" tiếp tục xuất hiện, điều đó có nghĩa là kết nối không thành công. Vui lòng kiểm tra lại các giá trị bootnode/ENR và cài đặt tường lửa của bạn (cổng 30303 TCP+UDP cho Geth, cổng 9000 TCP+UDP cho Lighthouse).

Explorer​