الاتصال بالعقدة لـ JOC
تُقدم هذه الوثيقة خطوات إعداد عقدة Geth في بيئة المستخدم والاتصال بشبكة Japan Open Chain الرئيسية وتست نيت. إذا كنت ترغب في استخدام نقاط نهاية RPC وربط dApps، يُرجى الرجوع إلى هنا.
- Mainnet
- Testnet
الاتصال بعقدة JOC Mainnet
الإجراءات المطلوبة للاتصال موضحة في الخطوات التالية.
- 1. تثبيت الحزم المطلوبة
- 2. إنشاء أدلة البيانات
- 3. تنزيل ملفات الإعداد
- 4. تثبيت العميل
- 5. إنشاء سر JWT
- 6. تهيئة Geth
- 7. تشغيل Geth
- 8. تشغيل Lighthouse
- 9. التأكيد
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. تنزيل ملفات الإعداد
قم بتنزيل الملفات التالية ثم انسخها إلى المواقع الصحيحة.
| File | Link |
|---|---|
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 (عميل التنفيذ، تم التحقق منه مع الإصدار v1.13.5):
https://geth.ethereum.org/docs/getting-started/installing-geth
في الوقت الحالي، لا يتم دعم Geth الإصدار v1.14.0 أو أحدث.
Lighthouse (عميل الإجماع، تم التحقق منه مع الإصدار v7.0.1):
https://lighthouse-book.sigmaprime.io/installation.html
5. إنشاء سر JWT
يُستخدم سر JWT للتحقق من الاتصال الداخلي بين 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).