Как установить 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 дней.
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
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
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