July 30

Как установить 0G валидатор

Рекомендуемые параметры

Подготовка

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip git build-essential jq nano ufw

открываем порты:

sudo ufw allow 22/tcp
sudo ufw allow 26656/tcp    # p2p
sudo ufw allow 26657/tcp    # rpc
sudo ufw allow 3500/tcp     # node-api
sudo ufw allow 30303/tcp    # geth p2p
sudo ufw enable

1. Скачать архив с бинарниками:

wget -O galileo.tar.gz https://github.com/0glabs/0gchain-NG/releases/download/v1.2.0/galileo-v1.2.0.tar.gz
 2. Распаковать архив:
tar -xzvf galileo.tar.gz -C ~

3. Скопировать конфигурации и выдать права:

cd ~/galileo-v1.2.0
cp -r 0g-home ~/0g-home
chmod 777 ./bin/geth
chmod 777 ./bin/0gchaind

4. Инициализация клиентов

./bin/geth init --datadir ~/0g-home/geth-home ./genesis.json

5. Инициализация 0gchaind (временный конфиг):

./bin/0gchaind init your-node-name --home ~/tmp-0gchaind

6. Перенос ключей:

cp ~/tmp-0gchaind/data/priv_validator_state.json ~/0g-home/0gchaind-home/data/
cp ~/tmp-0gchaind/config/node_key.json ~/0g-home/0gchaind-home/config/
cp ~/tmp-0gchaind/config/priv_validator_key.json ~/0g-home/0gchaind-home/config/

7. Запуск 0gchaind:

nohup ./bin/0gchaind start \
--rpc.laddr tcp://0.0.0.0:26657 \
--chaincfg.chain-spec devnet \
--chaincfg.kzg.trusted-setup-path=kzg-trusted-setup.json \
--chaincfg.engine.jwt-secret-path=jwt-secret.hex \
--chaincfg.kzg.implementation=crate-crypto/go-kzg-4844 \
--chaincfg.block-store-service.enabled \
--chaincfg.node-api.enabled \
--chaincfg.node-api.logging \
--chaincfg.node-api.address 0.0.0.0:3500 \
--pruning=nothing \
--home ~/0g-home/0gchaind-home \
--p2p.seeds 85a9b9a1b7fa0969704db2bc37f7c100855a75d9@8.218.88.60:26656 \
--p2p.external_address ВАШ IP:26656 \
> ~/0g-home/log/0gchaind.log 2>&1 &

8. Запуск geth:

nohup ./bin/geth --config geth-config.toml \
--nat extip:ВАШ IP \
--bootnodes enode://de7b86d8ac452b1413983049c20eafa2ea0851a3219c2cc12649b971c1677bd83fe24c5331e078471e52a94d95e8cde84cb9d866574fec957124e57ac6056699@8.218.88.60:30303 \
--datadir ~/0g-home/geth-home \
--networkid 16601 \
> ~/0g-home/log/geth.log 2>&1 &

ВАШ IP меня на внешний IP сервера

9. Проверка логов

tail -f ~/0g-home/log/0gchaind.log
tail -f ~/0g-home/log/geth.log

Значит все в порядке нода синхронизируется с сетью

Проверяем статус синхронизации:

curl http://localhost:26657/status

"catching_up": true → нода ещё догоняет цепочку

"catching_up": falseнода полностью синхронизировалась

Синхронизация может занять 7-10 дней.

Выполняем синхронизацию через snap (занимает 2-3 часа)

pkill 0gchaind
pkill geth
cp ~/0g-home/0gchaind-home/data/priv_validator_state.json ~/priv_validator_state.json.backup
rm -rf ~/0g-home/0gchaind-home/data
curl https://server-3.itrocket.net/testnet/og/og_2025-07-30_4556600_snap.tar.lz4 | lz4 -dc - | tar -xf - -C ~/0g-home/0gchaind-home
mv ~/priv_validator_state.json.backup ~/0g-home/0gchaind-home/data/priv_validator_state.json
rm -rf ~/0g-home/geth-home/geth
curl https://server-3.itrocket.net/testnet/og/geth_og_2025-07-30_4556600_snap.tar.lz4 | lz4 -dc - | tar -xf - -C ~/0g-home/geth-home/geth

Архив может распаковываться несколько часов

если скачивание прервалось пробуем

sudo apt install aria2 -y
aria2c -x 16 -s 16 -c https://server-3.itrocket.net/testnet/og/geth_og_2025-07-30_4556600_snap.tar.lz4

Когда архив загрузится распаковываем его

lz4 -dc geth_og_2025-07-30_4556600_snap.tar.lz4 | tar -xf - -C ~/0g-home/geth-home/geth

Распаковка так же займет около часа

Запускаем

cd ~/galileo-v1.2.0

nohup ./bin/0gchaind start \
--rpc.laddr tcp://0.0.0.0:26657 \
--chaincfg.chain-spec devnet \
--chaincfg.kzg.trusted-setup-path=kzg-trusted-setup.json \
--chaincfg.engine.jwt-secret-path=jwt-secret.hex \
--chaincfg.kzg.implementation=crate-crypto/go-kzg-4844 \
--chaincfg.block-store-service.enabled \
--chaincfg.node-api.enabled \
--chaincfg.node-api.logging \
--chaincfg.node-api.address 0.0.0.0:3500 \
--pruning=nothing \
--home ~/0g-home/0gchaind-home \
--p2p.seeds 85a9b9a1b7fa0969704db2bc37f7c100855a75d9@8.218.88.60:26656 \
--p2p.external_address ВАШ IP:26656 \
> ~/0g-home/log/0gchaind.log 2>&1 &

потом

nohup ./bin/geth --config geth-config.toml \
--nat extip:ВАШ IP \
--bootnodes enode://de7b86d8ac452b1413983049c20eafa2ea0851a3219c2cc12649b971c1677bd83fe24c5331e078471e52a94d95e8cde84cb9d866574fec957124e57ac6056699@8.218.88.60:30303 \
--datadir ~/0g-home/geth-home \
--networkid 16601 > ~/0g-home/log/geth.log 2>&1 &

После того как убедились что нода синхронизирована можно удалить архив

Сохраняем приватник

nano ~/0g-home/0gchaind-home/config/priv_validator_key.json

копируем и сохраняем в надежное место

Создаем автозапуск

pkill geth
pkill 0gchaind
rm ~/0g-home/log/geth.log
rm ~/0g-home/log/0gchaind.log
sudo nano /etc/systemd/system/geth.service

[Unit]
Description=Geth Node Service
After=network.target

[Service]
User=vm1225
WorkingDirectory=/home/vm1225/galileo-v1.2.0
ExecStart=/home/vm1225/galileo-v1.2.0/bin/geth \
--config geth-config.toml \
--nat extip:ВАШ IP \
--bootnodes enode://de7b86d8ac452b1413983049c20eafa2ea0851a3219c2cc12649b971c1677bd83fe24c5331e078471e52a94d95e8cde84cb9d866574fec957124e57ac6056699@8.218.88.60:30303 \
--datadir /home/vm1225/0g-home/geth-home \
--networkid 16601
Restart=always
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

CTRL+O -> Enter -> CTR+X

sudo nano /etc/systemd/system/0gchaind.service

[Unit]
Description=0gchaind Node Service
After=network.target

[Service]
User=vm1225
WorkingDirectory=/home/vm1225/galileo-v1.2.0
ExecStart=/home/vm1225/galileo-v1.2.0/bin/0gchaind start \
--rpc.laddr tcp://0.0.0.0:26657 \
--chaincfg.chain-spec devnet \
--chaincfg.kzg.trusted-setup-path=kzg-trusted-setup.json \
--chaincfg.engine.jwt-secret-path=jwt-secret.hex \
--chaincfg.kzg.implementation=crate-crypto/go-kzg-4844 \
--chaincfg.block-store-service.enabled \
--chaincfg.node-api.enabled \
--chaincfg.node-api.logging \
--chaincfg.node-api.address 0.0.0.0:3500 \
--pruning=nothing \
--home /home/vm1225/0g-home/0gchaind-home \
--p2p.seeds 85a9b9a1b7fa0969704db2bc37f7c100855a75d9@8.218.88.60:26656 \
--p2p.external_address 95.165.157.208:26656
Restart=always
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

CTRL+O -> Enter -> CTR+X

Активация сервисов

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable geth
sudo systemctl enable 0gchaind
sudo systemctl start geth
sudo systemctl start 0gchaind

Проверка:

sudo systemctl status geth
sudo systemctl status 0gchaind

И логи:

sudo journalctl -u geth -f -l
sudo journalctl -u 0gchaind -f -l

journalctl -u 0gchaind -n 100 --no-pager

journalctl -u geth -n 100 --no-pager