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.
- Mainnet
- Testnet
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
- 2. Tạo Thư mục Dữ liệu
- 3. Tải xuống các Tập tin Cấu hình
- 4. Cài đặt Client
- 5. Tạo JWT Secret
- 6. Khởi tạo Geth
- 7. Chạy Geth
- 8. Chạy Lighthouse
- 9. Xác nhận
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í:
| File | Liên kết |
|---|---|
genesis.json | Xem |
config.yaml | Xem |
genesis.ssz | Tải xuống |
deposit_contract.txt | Xem |
deposit_contract_block.txt | Xem |
# 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
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
Kết nối Node với JOC Testnet
Quá trình kết nối diễn ra như sau:
- 1. Cài đặt các Gói cần thiết
- 2. Tạo Thư mục Dữ liệu
- 3. Tải xuống các Tập tin Cấu hình
- 4. Cài đặt Client
- 5. Tạo JWT Secret
- 6. Khởi tạo Geth
- 7. Chạy Geth
- 8. Chạy Lighthouse
- 9. Xác nhận
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í:
| File | Liên kết |
|---|---|
genesis.json | Xem |
config.yaml | Xem |
genesis.ssz | Tải xuống |
deposit_contract.txt | Xem |
deposit_contract_block.txt | Xem |
# 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
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=361257328 \
--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).