April 10

0G Labs. Устанавливаем ноду

CryptoFortochka — гайды, ноды, новости, тестнеты

0G — это модульная цепочка искусственного интеллекта с масштабируемым программируемым уровнем доступности данных (DA), адаптированным для dapps с искусственным интеллектом. Его модульная технология обеспечивает беспрепятственное взаимодействие между цепочками, обеспечивая безопасность, устраняя фрагментацию и максимизируя возможности подключения

Проект появился на радаре еще около 2х недель назад, после инвестиции в $35M от тир1 фондов, а уже сегодня они запускают оплачиваемый тестнет на Galxe — первая неделя. Еще можно поставить ноду, который будет также оплачиваемая, об этом активно пишут модеры в дискорде

Расписал для вас понятный гайд с установкой ноды, ставиться просто, сервак советую брать (минимум как требуется в рекомендации), чтобы избежать дальнейшие траблы с синхронизацией.

Не забываем ежедневно запрашивать токены с крана и делегировать

Советую начать проявить активность в дискорде, там сейчас маленькая конкуренция, пока еще больше людей не набежало

Galxe. Перед установкой ноды

  • Выполняем таск на Galxe

Что делать?

  • Подключаемся на арендованный сервер через root
  • Выполняем команды по списку
  • Обновляем и устанавливаем необходимые пакеты
sudo apt update && \
sudo apt install curl git jq build-essential gcc unzip wget lz4 -y
  • Устанавливаем GO
cd $HOME && \
ver="1.21.3" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \
source ~/.bash_profile && \
go version
  • Ставим evmosd бинарик
git clone https://github.com/0glabs/0g-evmos.git
cd 0g-evmos
git checkout v1.0.0-testnet
make install
evmosd version
  • Настраиваем переменные
echo 'export MONIKER="My_Node"' >> ~/.bash_profileecho '
export CHAIN_ID="zgtendermint_9000-1"' >> ~/.bash_profileecho '
export WALLET_NAME="wallet"' >> ~/.bash_profileecho '
export RPC_PORT="26657"' >> ~/.bash_profile
source $HOME/.bash_profile
  • Инициализируем ноду
cd $HOME
evmosd init $MONIKER --chain-id $CHAIN_ID
evmosd config chain-id $CHAIN_ID
evmosd config node tcp://localhost:$RPC_PORT
evmosd config keyring-backend os
  • Устанавливаем релиз
wget https://github.com/0glabs/0g-evmos/releases/download/v1.0.0-testnet/genesis.json -O $HOME/.evmosd/config/genesis.json
  • Добавляем сиды и пиры в config.toml
PEERS="1248487ea585730cdf5d3c32e0c2a43ad0cda973@peer-zero-gravity-testnet.trusted-point.com:26326" && \
SEEDS="[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656" && \
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.evmosd/config/config.toml
  • Ставим минимальный прайс
sed -i "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.00252aevmos\"/" $HOME/.evmosd/config/app.toml
  • Создаем сервисный файл
sudo tee /etc/systemd/system/ogd.service > /dev/null <<EOF
[Unit]
Description=OG Node
After=network.target

[Service]
User=$USER
Type=simple
ExecStart=$(which evmosd) start --home $HOME/.evmosd
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
  • Запускам ноду
sudo systemctl daemon-reload && \
sudo systemctl enable ogd && \
sudo systemctl restart ogd && \
sudo journalctl -u ogd -f -o cat
  • Ждём немного и побегут хейты (чтобы выйти из логов, прожимаем Cntr+C)
  • Делаем перерыв!
Делаем перерыв! Чтобы продолжить создание валидатора, нам нужно дождаться синхронизации ноды, как узнать, синхронизировалась ли нода?
  • Проверяем командой, если пишет false — значит нода синхронизировалась, можно продолжать создание валидатора
  • Если статус true — значит еще рано
evmosd status | jq .SyncInfo
  • В логах мы можем увидеть количество хейт и сравнить с Explorer

Создаем валидатора

  • Создаем кошелек для нашего валидатора
evmosd keys add $WALLET_NAME
  • Если уже ранее создали кошелек, то импортируйте по сидке с помощью этой команды
evmosd keys add $WALLET_NAME --recover
  • Вставляем пароль (Не вписывать, а заранее скопируйте пароль и вставьте его в белый квадратик + Enter)
  • Нам выдаст наш кошелек с сидкой — сохраняем в надежное место
  • Запрашиваем EVM адрес
echo "0x$(evmosd debug addr $(evmosd keys show $WALLET_NAME -a) | grep hex | awk '{print $3}')"
  • Отправляемся к крану и запрашиваем тестовые токены
  • Проверяем баланс в терминале
evmosd q bank balances $(evmosd keys show $WALLET_NAME -a) 
Кран дает вам 100000000000000000aevmos . Чтобы валидатор присоединился к активному набору нужно минимум 1000000000000000000aevmos (в 10 раз больше)
  • Создаем валидатора
  • Можно заменить на свои значение identity, website, details (по желанию)
evmosd tx staking create-validator \
  --amount=10000000000000000aevmos \
  --pubkey=$(evmosd tendermint show-validator) \
  --moniker=$MONIKER \
  --chain-id=$CHAIN_ID \
  --commission-rate=0.05 \
  --commission-max-rate=0.10 \
  --commission-max-change-rate=0.01 \
  --min-self-delegation=1 \
  --from=$WALLET_NAME \
  --identity="" \
  --website="" \
  --details="0G to the moon!" \
  --gas=500000 --gas-prices=99999aevmos \
  -y
  • Запрашиваем адрес вашего валидатора
evmosd q staking validator $(evmosd keys show $WALLET_NAME --bech val -a) 
  • Делегируем токены самому себе
evmosd tx staking delegate $(evmosd keys show $WALLET_NAME --bech val -a)  10000000000000000aevmos --from $WALLET_NAME --gas=500000 --gas-prices=99999aevmos -y
  • Делегируем другому валидатору
evmosd tx staking delegate evmosvaloper1n30zgt2nc3auawqlsgkqmwz9u3r0zdwnu9xjc4 10000000000000000aevmos - from $WALLET_NAME - gas=500000 - gas-prices=99999aevmos -y
Если вы хотите делегировать ваши тестовые токены в нашего валидатора, то в скором времени, вы сможете это сделать. Буду оповещать все обновление в своем телеграм канале Crypto Fortochka

Дополнительные команды

  • Устанавливаем addrbook.json
sudo systemctl stop ogd && \
wget -O $HOME/.evmosd/config/addrbook.json https://rpc-zero-gravity-testnet.trusted-point.com/addrbook.json
  • Бэкап файла priv_validator_state.json
cat $HOME/.evmosd/config/priv_validator_key.json
  • Запрос счетчика пропущенных блоков и сведений о тюрьме вашего валидатора
evmosd q slashing signing-info $(evmosd tendermint show-validator)
  • Unjail валидатора
evmosd tx slashing unjail --from $WALLET_NAME --gas=500000 --gas-prices=99999aevmos -y
  • Отправить токены между кошельками <TO_WALLET> и <AMOUNT> заменяем на свое значение
evmosd tx bank send $WALLET_NAME <TO_WALLET> <AMOUNT>aevmos --gas=500000 --gas-prices=99999aevmos -y
  • Запросить список активных валидаторов
evmosd q staking validators -o json --limit=1000 \
| jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' \
| jq -r '.tokens + " - " + .description.moniker' \
| sort -gr | nl
  • Запросить список неактивных валидаторов
evmosd q staking validators -o json --limit=1000 \
| jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' \
| jq -r '.tokens + " - " + .description.moniker' \
| sort -gr | nl
  • Посмотреть логи
sudo journalctl -u ogd -f -o cat
  • Проверить статус синхронизации
evmosd status | jq .SyncInfo
  • Статус ноды
evmosd status | jq
  • Рестарт
sudo systemctl restart ogd
  • Остановить ноду
sudo systemctl stop ogd
  • Удалить ноду
sudo systemctl stop ogd
sudo systemctl disable ogd
sudo rm /etc/systemd/system/ogd.service
rm -rf $HOME/.evmosd $HOME/0g-evmos