Cosmos Nodes
March 17, 2023

Ojo Node Guide | Оджо гайд по ноде

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

4/8/100+

я взяла СPХ31 хетцнере

Установка

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

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.19.7.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/ojo-network/ojo.git
#выкачиваем репозиторий проекта

cd ojo
#переходим в папку ojo

git checkout v0.1.2

make install

ojod version
#проверяем версию (HEAD-ad5a2377134aa13d7d76575b95613cf8ed12d1e4)

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

ojod config keyring-backend test
ojod config chain-id ojo-devnet

ojod init "$NODE_MONIKER" --chain-id ojo-devnet

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

sed -i -e "s|^seeds *=.*|seeds = \"3f472746f46493309650e5a033076689996c8881@ojo-testnet.rpc.kjnodes.com:50659\"|" $HOME/.ojo/config/config.toml

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

sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/.ojo/config/app.toml
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0uojo\"|" $HOME/.ojo/config/app.toml

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

wget -O $HOME/.ojo/config/genesis.json https://testnet-files.itrocket.net/ojo/genesis.json
curl -Ls https://snapshots.kjnodes.com/ojo-testnet/addrbook.json > $HOME/.ojo/config/addrbook.json

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

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

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

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

sudo systemctl daemon-reload
sudo systemctl enable ojod
sudo systemctl start ojod

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

sudo journalctl -u ojod -f --no-hostname -o cat

Снепшот (если хотите):

sudo systemctl stop ojod

sudo apt update

sudo apt install lz4 -y

cp $HOME/.ojo/data/priv_validator_state.json $HOME/.ojo/priv_validator_state.json.backup 

ojod tendermint unsafe-reset-all --home $HOME/.ojo --keep-addr-book 

curl https://snapshots-testnet.nodejumper.io/ojo-testnet/ojo-testnet_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.ojo

mv $HOME/.ojo/priv_validator_state.json.backup $HOME/.ojo/data/priv_validator_state.json 

sudo systemctl start ojod

sudo journalctl -u ojod -f --no-hostname -o cat

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

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

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

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

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

Идем в дискорд, ветка #testnet-faucet

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

ojod status 2>&1 | jq .SyncInfo.catching_up
#ответ false - значит нода синхронизирована

Только когда нода синхронизирована - создаем валидатора:

ojod tx staking create-validator \
--amount=4000000uojo \
--pubkey=$(ojod tendermint show-validator) \
--moniker="$NODE_MONIKER" \
--chain-id=ojo-devnet \
--commission-rate=0.1 \
--commission-max-rate=0.2 \
--commission-max-change-rate=0.05 \
--min-self-delegation=1 \
--fees=2000uojo \
--from=wallet \
-y

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

Данные о своем валидаторе:

ojod q staking validator $(ojod keys show wallet --bech val -a)

Заделегировать токены себе (10 шт):

ojod tx staking delegate $(ojod keys show wallet --bech val -a) 10000000uojo --from wallet --chain-id ojo-devnet --gas-prices 0.1uojo --gas-adjustment 1.5 --gas auto -y

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