ข้ามไปที่เนื้อหาหลัก

การเชื่อมต่อโหนดกับ JOC

เอกสารนี้ระบุรายละเอียดขั้นตอนในการสร้างโหนด Geth ในสภาพแวดล้อมของผู้ใช้ และเชื่อมต่อกับ Japan Open Chain ทั้ง Mainnet และ Testnet หากคุณต้องการใช้ RPC Endpoints เพื่อเชื่อมต่อ dApps กรุณาอ้างอิงที่ ที่นี่

การเชื่อมต่อโหนดกับ JOC Mainnet​

ขั้นตอนการเชื่อมต่อมีดังนี้

1. การติดตั้งแพ็กเกจที่จำเป็น​

# 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. การสร้างไดเรกทอรีข้อมูล​

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

3. การดาวน์โหลดไฟล์การตั้งค่า​

ดาวน์โหลดไฟล์ด้านล่างนี้ และคัดลอกไปยังตำแหน่งที่ถูกต้อง

FileLink
genesis.jsonดู
config.yamlดู
genesis.sszดาวน์โหลด
deposit_contract.txtดู
deposit_contract_block.txtดู
# 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. การติดตั้งไคลเอนต์​

Geth (Execution Client ทดสอบใช้งานได้ดีกับ v1.13.5):

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

ความระมัดระวัง

ขณะนี้ Geth เวอร์ชัน v1.14.0 ขึ้นไปยังไม่รองรับ

Lighthouse (Consensus Client ทดสอบใช้งานได้ดีกับ v7.0.1):

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

5. การสร้าง JWT Secret​

JWT secret ใช้สำหรับการยืนยันตัวตนในการสื่อสารภายในระหว่าง Geth และ Lighthouse โดยสร้างเพียงครั้งเดียว

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

6. การเริ่มต้นใช้งาน Geth​

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

รันคำสั่งนี้เพียงครั้งเดียวเท่านั้น

7. การรัน Geth​

รายการ BootNodes ปัจจุบันดึงมาจาก 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. การรัน Lighthouse​

รายการ Boot ENR ปัจจุบันดึงมาจาก 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. การตรวจสอบ​

ตรวจสอบสถานะการซิงค์ของ 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

ตรวจสอบสถานะการซิงค์ของ Lighthouse

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

หากข้อความ "Looking for peers" ยังคงแสดงอยู่ แสดงว่าเชื่อมต่อไม่สมบูรณ์ กรุณาตรวจสอบค่า bootnode/ENR และการตั้งค่าไฟร์วอลล์ของคุณ (พอร์ต 30303 TCP+UDP สำหรับ Geth และพอร์ต 9000 TCP+UDP สำหรับ Lighthouse)

Explorer​