👨💻 Nibiru: установка ноды для награждаемого тестнета
NIBIRU- блокчейн на Cosmos, который объединяет торговлю деривативами с кредитным плечом, спотовую торговлю, стейкинг и предоставление облигационной ликвидности в единый пользовательский интерфейс, позволяя пользователям более 40 блокчейнов торговать с кредитным плечом, используя набор компонуемых децентрализованных приложений.
Nibiru собрали 8.5$ млн от таких фондов, как NGC Ventures, Tribe Capital, Original Capital, Republic Crypto и других.
Сейчас у Nibiru проходит награждаемый тестнет. В этом гайде я расскажу, как поставить ноду и заработать баллы за валидаторство.
А если вы хотите заработать баллы еще и за другие задания, то смотрите ЭТОТ ГАЙД.
Подготовка
Я взял сервер CX41 на Hetzner, потом докуплю память:
Подробнее про аренду сервера можно найти в этой статье в параграфах Аренда сервера и Подключение к серверу.
Подготовка сервера
sudo apt update && sudo apt upgrade -y
sudo apt install make clang pkg-config libssl-dev build-essential git gcc chrony curl jq ncdu bsdmainutils htop net-tools lsof fail2ban wget -y
Установка ноды
ver="1.18.2" && \ 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" >> $HOME/.bash_profile && \ source $HOME/.bash_profile
∎ Проверяем версию GO (в выводе должно быть 1.18.2):
go version
∎ Устанавливаем бинарные файлы:
cd $HOME git clone https://github.com/NibiruChain/nibiru.git cd nibiru git checkout v0.19.2 make build
sudo mv ./build/nibid /usr/local/bin/ cd $HOME
∎ Проверяем версию бинарного файла (в выводе должно быть v0.19.2)
nibid version
Настройка валидатора
∎ Задаём переменные. Вместо "ИМЯ_ВАЛИДАТОРА" и "ИМЯ_КОШЕЛЬКА" придумываем свои значения (c кавычками):
MONIKER="ИМЯ_ВАЛИДАТОРА"
WALLET_NAME="ИМЯ_КОШЕЛЬКА"
∎ Задаём имя сети (ничего не меняем):
CHAIN="nibiru-itn-1"
echo 'export MONIKER='${MONIKER} >> $HOME/.bash_profile echo 'export WALLET_NAME='${WALLET_NAME} >> $HOME/.bash_profile echo 'export CHAIN='${CHAIN} >> $HOME/.bash_profile source $HOME/.bash_profile
nibid init $MONIKER --chain-id $CHAIN
∎ Добавляем имя сети в конфигурационный файл:
nibid config chain-id $CHAIN
curl -s https://rpc.itn-1.nibiru.fi/genesis | jq -r .result.genesis > $HOME/.nibid/config/genesis.json
∎ Настраиваем минимальную цену за газ:
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025unibi\"/;" ~/.nibid/config/app.toml
NETWORK=nibiru-itn-1 sed -i 's|seeds =.*|seeds = "'$(curl -s https://networks.itn.nibiru.fi/$NETWORK/seeds)'"|g' $HOME/.nibid/config/config.toml
∎ Настраиваем прунинг (для экономии места, настраивается по желанию):
pruning="custom" pruning_keep_recent="100" pruning_interval="10" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.nibid/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.nibid/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.nibid/config/app.toml
∎ Выключаем индексер (для экономии места, настраивается по желанию):
indexer="null" sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.nibid/config/config.toml
sudo tee /etc/systemd/system/nibid.service > /dev/null <<EOF [Unit] Description=nibid After=network-online.target [Service] User=$USER ExecStart=$(which nibid) start Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
systemctl daemon-reload systemctl enable nibid systemctl restart nibid
∎ Смотрим логи и ждём синхронизацию (высота в логах - Height - должна догнать текущую высоту. Посмотреть текущую высоту можно ТУТ):
journalctl -u nibid -f -o cat
∎ Проверяем статус синхронизации (в строке catching up должно быть false):
curl localhost:26657/status
Чтобы нода быстрее синхронизировалась, можно добавить State Sync:
apt install snapd -y snap install lz4
curl -L https://share.utsa.tech/nibiru/wasm-nibiru.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.nibid --strip-components 2
peers="[email protected]:60656" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.nibid/config/config.toml
SNAP_RPC=https://t-nibiru.rpc.utsa.tech:443 LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height);
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000));
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash) echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \ s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \ s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \ s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ; \ s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.nibid/config/config.toml
systemctl restart nibid
journalctl -u nibid -f -o cat
Настройка валидатора
После того как нода синхронизировалась, надо создать или восстановить кошелёк.
∎ Если вы уже проходили тестнет, то восстанавливаем кошелёк:
nibid keys add $WALLET_NAME --recover
Далее вставляем свою seed-фразу, а затем придумываем пароль.
∎ Если вы хотите создать кошелёк, то вводим (не забываем надёжно сохранить seed фразу):
nibid keys add $WALLET_NAME
∎ Создаём переменную с адресом валидатора (ничего не меняем):
ADDRESS=$(nibid keys show $WALLET_NAME -a) VALOPER=$(nibid keys show $WALLET_NAME --bech val -a) echo 'export ADDRESS='${ADDRESS} >> $HOME/.bash_profile echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile
∎ Запрашиваем тестовые токены либо через сайт, либо через командную строку:
FAUCET_URL="https://faucet.itn-1.nibiru.fi/" curl -X POST -d '{"address": "'"$ADDRESS"'", "coins": ["11000000unibi","100000000unusd","100000000uusdt"]}' $FAUCET_URL
nibid query bank balances $ADDRESS
∎ Если монеты поступили, то можно создать валидатора, в строке amount введите сумму, которую хотите делегировать себе (не забудьте оставить на комиссию; 1,000,000 unibi = 1 nibi):
nibid tx staking create-validator \ --amount 1000000unibi \ --chain-id $CHAIN \ --commission-rate 0.05 \ --commission-rate 0.05 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.1 \ --min-self-delegation "10" \ --pubkey $(nibid tendermint show-validator) \ --moniker $MONIKER \ --from $WALLET_NAME \ --fees 5000unibi
∎ Проверяем статус валидатора:
nibid query staking validator $VALOPER
Важное
∎ Получаем роль валидатора. Идём в эксплорер, ищем своего валидатора во вкладке Inactive, нажимаем на себя и копируем ссылку на страницу.
Далее идём в Discord в ветку #validator-role-request и вставляем ссылку на своего валидатора.
За установку ноды дадут 100 баллов. При этом самое главное - чтобы нода синхронизировалась, и неважно, в активном сете вы находитесь или в неактивном. Если у вашей ноды ни разу не будет слеша, то за это дадут еще +50 баллов.
Баллы пока нигде нельзя посмотреть.
Делаем бэкап ноды. Вводим команду:
cat .nibid/config/priv_validator_key.json
И надёжно сохраняем данные из вывода.
Полезные команды
∎ Делегировать себе монеты с кошелька:
nibid tx staking delegate $VALOPER 10000000unibi --from $WALLET_NAME --chain-id $CHAIN --fees 5000unibi
nibid query bank balances $ADDRESS
∎ Посмотреть статус валидатора:
nibid query staking validator $VALOPER
∎ Выйти из тюрьмы, если ваша нода туда попала (в статусе валидатора в строке jailed будет стоять true):
nibid tx slashing unjail --from $WALLET_NAME--chain-id $CHAIN --fees 5000unibi
sudo systemctl stop nibid sudo systemctl disable nibid cd $HOME rm /etc/systemd/system/nibid rm /usr/local/bin/nibid rm -r nibiru/ rm -r .nibid/
Стань частью команды Cryptonik 👇
📢Телеграм канал https://t.me/cryptonik_space 🎬 Youtube канал https://www.youtube.com/@cryptonik_space 💬 Телеграм чат https://t.me/cryptonik_space_chat