Перейти к основному содержимому

Подключение к узлам JOC

В этом документе описаны шаги по настройке узла Geth в вашей среде и подключению к Mainnet и Testnet проекта Japan Open Chain. Если вы хотите использовать RPC Endpoints для подключения dApps, пожалуйста, обратитесь к этому разделу.

Подключение узла к JOC Mainnet​

Процесс подключения состоит из следующих шагов:

1. Установка необходимых пакетов​

# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y curl openssl

# Amazon Linux 2023 / на базе RHEL
sudo dnf install -y curl openssl

2. Создание директорий для данных​

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

3. Загрузка конфигурационных файлов​

Скачайте указанные ниже файлы и скопируйте их в соответствующие директории:

ФайлСсылка
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 → синхронизация завершена
# объект → идёт синхронизация, показаны 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​