April 11

OG Node Guide | Гайд по ноде ОГ

Требования к серверу:

4/8/500

я взяла на хетцнере

ВИДЕО ГАЙД - тут

Установка

Подготавливаем сервер:

sudo apt-get update -y && sudo apt upgrade -y && sudo apt-get install make build-essential unzip lz4 gcc git jq -y
#устанавливаем го 
sudo rm -rf /usr/local/go

curl -Ls https://go.dev/dl/go1.21.5.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local

eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)

eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)
NODE_MONIKER="MONIKER"
#заменить MONIKER на имя своей ноды (придумать)

Копируем репозиторий:

git clone https://github.com/0glabs/0g-chain.git
#выкачиваем репозиторий проекта
cd 0g-chain
#переходим в папку 0g-evmos

git checkout v0.3.0

make install

0gchaind version
#ответ 0.3.0

Инициализируем проект:

0gchaind config keyring-backend test
0gchaind config chain-id zgtendermint_16600-2

0gchaind init "$NODE_MONIKER" --chain-id zgtendermint_16600-2

Добавляем сиды в конфиг:

sed -i -e 's|^seeds *=.*|seeds = "[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656"|' $HOME/.0gchain/config/config.toml

Доп настройки(прунинг/цена газа)(копируем одной командой):

sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "17"|' \
$HOME/.0gchain/config/app.toml
sed -i -e 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.0025ua0gi"|' $HOME/.0gchain/config/app.toml

Загружаем генезис файл и адрбук:

curl -L https://snapshots-testnet.nodejumper.io/0g-testnet/genesis.json > $HOME/.0gchain/config/genesis.json
curl -L https://snapshots-testnet.nodejumper.io/0g-testnet/addrbook.json > $HOME/.0gchain/config/addrbook.json

Создаем сервисный файл:

sudo tee /etc/systemd/system/0gchaind.service > /dev/null << EOF
[Unit]
Description=OG Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which 0gchaind) start
Restart=on-failure
RestartSec=10
LimitNOFILE=10000

[Install]
WantedBy=multi-user.target
EOF
0gchaind tendermint unsafe-reset-all --home $HOME/.0gchaind --keep-addr-book

Перезапускаем сервисный файл:

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

Просмотр логов:

sudo journalctl -u 0gchaind -f --no-hostname -o cat

Команды кошелька:

0gchaind keys add wallet --eth
#создать новый кошелек
#запишите мнемонику!!!

0gchaind keys add wallet --recover --eth
#восстановить существующий кошелек

0gchaind q bank balances $(0gchaind keys show wallet -a)
#проверка баланса 

Теперь нам необходимо получить кошелек формата евм, для этого:

0gchaind keys unsafe-export-eth-key wallet
#команда выдаст вам приватный ключ - сохраните его!!!
#что бы посмотреть адрес - просто импортируйте этот приватный ключ в свой мм

Получаем токены:

Идем в сюда и запрашиваем токены на адрес из метамаска (который добавили шагом ранее)

Проверяем синхронизацию ноды:

0gchaind status 2>&1 | jq -r '.SyncInfo.catching_up // .sync_info.catching_up'
#ответ false - значит нода синхронизирована

Создание валидатора(делаем после полной синхронизации, а так же необходимо больше 1 токена на балансе):

0gchaind tx staking create-validator \
 --amount=1000000ua0gi \
 --pubkey=$(0gchaind tendermint show-validator) \
 --moniker=$NODE_MONIKER \
 --chain-id=zgtendermint_16600-2 \
 --commission-rate=0.05 \
 --commission-max-rate=0.10 \
 --commission-max-change-rate=0.01 \
 --min-self-delegation=1 \
 --from=wallet \
 --gas=auto \
 --gas-prices=0.0025ua0gi \
 --gas-adjustment=1.5 \
 -y

Эксплорер сети тут

Спасибо за внимание! И поздравляю с новой нодой!
@kulikovae