Подключение к узлам JOC
В этом документе описаны шаги по настройке узла Geth в вашей среде и подключению к Mainnet и Testnet проекта Japan Open Chain. Если вы хотите использовать RPC Endpoints для подключения dApps, пожалуйста, обратитесь к этому разделу.
- Mainnet
- Testnet
Подключение узла к JOC Mainnet
Процесс подключения состоит из следующих шагов:
1. Установка Geth
Установите Geth на ПК, с которого планируется подключение (тестировалось до версии Geth 1.13.5).
https://geth.ethereum.org/docs/getting-started/installing-geth
2. Первичная настройка
Создайте директорию для данных в произвольной директории. Назовем её «data».
$ mkdir data
Внутри создайте файл «genesis.json» с информацией о блоках.
$ sudo vi data/genesis.json
Содержимое genesis.json предоставляется отдельным файлом.
3. Инициализация Geth
Произведите инициализацию Geth, указав созданный вами genesis.json.
$ geth init --datadir data data/genesis.json
4. Синхронизация
Синхронизируйтесь с узлом. Для подключения к node-1 выполните следующую команду:
$ geth --datadir data --networkid=81 --bootnodes="enode://c387e2b4e5231022ef30144c41fbd883139e9b5f1f4649c3d51c1611adbfaeadfd050c1bd9ac02eec6fa4c234b49a77fb5fb54f739c06d431eabfd981edc51f2@13.56.117.179:30303" --http --http.api="clique,personal,eth,net,web3,miner,admin" --http.corsdomain="*" --http.addr="0.0.0.0" --http.port=8546 --snapshot=false --syncmode="full"
Параметры для мейннета следующие:
| Узел | ID сети | enode |
|---|---|---|
| bootnode-1 | 81 | enode://c387e2b4e5231022ef30144c41fbd883139e9b5f1f4649c3d51c1611adbfaeadfd050c1bd9ac02eec6fa4c234b49a77fb5fb54f739c06d431eabfd981edc51f2@13.56.117.179:30303 |
| bootnode-2 | 81 | enode://db803c26db9dac21e58452646a785b94a466eebffd6038621f78de92ccc6141fcb297650c290487375ab32a6dbc693d5dab49dba9785450002c68944ab0435a2@54.241.98.152:30303 |
5. Проверка
Вы можете убедиться в успешной синхронизации, увидев подобное сообщение. В случае продолжительного сообщения «Looking for peers», убедитесь в корректности команды синхронизации и проверьте сетевые настройки.

Подключение узла к JOC Testnet
Процесс подключения состоит из следующих шагов:
- 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
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 (клиент исполнения):
https://geth.ethereum.org/docs/getting-started/installing-geth
Lighthouse (клиент консенсуса):
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=361257328 \
--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).