Установка ноды Nibiru
Здравствуйте сегодня мы расскажем об установке ноды Nibiru
Оригинальная инструкция находится тут.
Nibiru — это суверенный proof-of-stake блокчейн, платформа с открытым исходным кодом и член семейства взаимосвязанных блокчейнов, составляющих экосистему Cosmos.
Nibiru объединяет торговлю деривативами с кредитным плечом, спотовую торговлю, стейкинг и предоставление облигационной ликвидности в единый пользовательский интерфейс, позволяя пользователям более 40 блокчейнов торговать с кредитным плечом, используя набор компонуемых децентрализованных приложений, более подробно можно прочитать на официальном сайте.
Начат вознаграждаемый тестнет, подробности здесь.
Рекомендуемые требования для сервера
16GB RAM 1000GB+ of disk space 4 Cores (modern CPU's)
Краткую инструкцию по аренде сервера можно посмотреть тут
Если будете выбирать Hetzner можете воспользоваться нашей ссылкой, будем благодарны.
Как всегда обновляем наш сервер
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
Устанавливаем go и проверяем версию
ver="1.19.4" && \ 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 version
После этого скачиваем и устанавливаем бинарник
cd $HOME git clone https://github.com/NibiruChain/nibiru.git cd nibiru git checkout v0.19.2 make build
Перемещаем бинарник в рабочий каталог
Задаем переменные (CHAIN оставляем без изменений, в остальные вписываем свои данные)
NIBIRU_MONIKER="your_name" NIBIRU_CHAIN="nibiru-itn-1" NIBIRU_WALLET="your_name"
echo 'export NIBIRU_MONIKER='${NIBIRU_MONIKER} >> $HOME/.bash_profile echo 'export NIBIRU_CHAIN='${NIBIRU_CHAIN} >> $HOME/.bash_profile echo 'export NIBIRU_WALLET='${NIBIRU_WALLET} >> $HOME/.bash_profile source $HOME/.bash_profile
curl -s https://rpc.itn-1.nibiru.fi/genesis | jq -r .result.genesis > $HOME/.nibid/config/genesis.json
Настраиваем прунинг (по желанию)
pruning="custom" pruning_keep_recent="1000" 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
Выключаем индексер (по желанию)
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.nibid/config/config.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
Задаем минимальную цену за gas
sed -i.bak 's/minimum-gas-prices =.*/minimum-gas-prices = "0.025unibi"/g' $HOME/.nibid/config/app.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
sudo systemctl daemon-reload sudo systemctl enable nibid sudo systemctl restart nibid
Смотрим логи и ждем когда нода начнет синхронизироваться
Или смотрим статус синхронизации (когда "catching_up": false то нода синхронизирована)
Так же можно синхронизироваться с ноды нибиру
NETWORK=nibiru-itn-1 sed -i 's|enable =.*|enable = true|g' $HOME/.nibid/config/config.toml sed -i 's|rpc_servers =.*|rpc_servers = "'$(curl -s https://networks.itn.nibiru.fi/$NETWORK/rpc_servers)'"|g' $HOME/.nibid/config/config.toml sed -i 's|trust_height =.*|trust_height = "'$(curl -s https://networks.itn.nibiru.fi/$NETWORK/trust_height)'"|g' $HOME/.nibid/config/config.toml sed -i 's|trust_hash =.*|trust_hash = "'$(curl -s https://networks.itn.nibiru.fi/$NETWORK/trust_hash)'"|g' $HOME/.nibid/config/config.toml
После синхронизации создаем кошелек (не забываем сохранить мнемоник)
Если кошелек уже есть то восстанавливаем с помощью мнемоника
Добавляем переменную с адресом кошелька
Добавляем переменную в баш профиль
echo 'export NIBIRU_ADDR='${NIBIRU_ADDR} >> $HOME/.bash_profile source $HOME/.bash_profile
Теперь нам необходимо получить средства на кошелек. Для этого запрашиваем токены посредством команды, так же их можно запросить через Web
FAUCET_URL="https://faucet.itn-1.nibiru.fi/"
NIBIRU_ADDR="..."
curl -X POST -d '{"address": "'"$NIBIRU_ADDR"'", "coins": ["11000000unibi","100000000unusd","100000000uusdt"]}' $FAUCET_URL
После запроса проверяем баланс
Если средства успешно поступили, то создаем валидатора (сумму указывайте свою, сколько хотите делегировать с кошелька, указывайте чуть меньше что бы хватило на комиссию)
nibid tx staking create-validator \ --amount 10000000unibi \ --commission-max-change-rate "0.1" \ --commission-max-rate "0.20" \ --commission-rate "0.1" \ --min-self-delegation "1" \ --pubkey=$(nibid tendermint show-validator) \ --moniker $NIBIRU_MONIKER \ --chain-id nibiru-itn-1 \ --from $NIBIRU_WALLET \ --fees 5000unibi
Задаем переменную с адресом валидатора
NIBIRU_VALOPER=$(nibid keys show $NIBIRU_ADDR --bech val -a)
echo 'export NIBIRU_VALOPER='${NIBIRU_VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile
Делегация средств с кошелька на валидатора (сумму вводите свою)
nibid tx staking delegate $NIBIRU_VALOPER 10000000unibi --from $NIBIRU_WALLET --chain-id $NIBIRU_CHAIN --fees 5000unibi
Ну и если вдруг ваша нода попала в тюрьму, то выход
nibid tx slashing unjail --from $NIBIRU_WALLET --chain-id $NIBIRU_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/
Установка и настройка Oracle
Стоит отметить, что Oracle необходимо устанавливать только валидаторам из активного сета, иначе он просто не будет работать Установка Oracle
git clone https://github.com/NibiruChain/pricefeeder cd pricefeeder git checkout v0.0.6 make install cd $HOME/go/bin/ mv feeder /usr/local/bin
Устанавливаем переменные (Если порты меняли, устанавливаем свои)
CHAIN_ID="nibiru-itn-1" GRPC_ENDPOINT="localhost:9090" WEBSOCKET_ENDPOINT="ws://localhost:26657/websocket" EXCHANGE_SYMBOLS_MAP='{"bitfinex": {"ubtc:unusd": "tBTCUSD", "ueth:unusd": "tETHUSD", "uusd:unusd": "tUSTUSD"}, "binance": { "ubtc:uusd": "BTCUSD", "ueth:uusd": "ETHUSD", "uusdt:uusd": "USDTUSD", "uusdc:uusd": "USDCUSD", "uatom:uusd": "ATOMUSD", "ubnb:uusd": "BNBUSD", "uavax:uusd": "AVAXUSD", "usol:uusd": "SOLUSD", "uada:uusd": "ADAUSD", "ubtc:unusd": "BTCUSD", "ueth:unusd": "ETHUSD", "uusdt:unusd": "USDTUSD", "uusdc:unusd": "USDCUSD", "uatom:unusd": "ATOMUSD", "ubnb:unusd": "BNBUSD", "uavax:unusd": "AVAXUSD", "usol:unusd": "SOLUSD", "uada:unusd": "ADAUSD" }}' VALIDATOR_ADDRESS="nibivaloper1..." FEEDER_MNEMONIC="Your_Mnemo"
Делегируем ответственность на кошелек фидера
ВАЖНО!
(Тут надо сделать пометку, что в данном тестнете мы привязываем кошелек валидатора поскольку его мы заполняли в gleam и он привязан к получению очков, если вы запускаете oracle в мейнете, то категорически запрещается использовать кошелек валидатора в качестве кошелька для сторонних сервисов, будь это релеер, оракл или что-либо еще)
nibid tx oracle set-feeder "Your_Wallet_Address" --from $NIBIRU_WALLET --fees 5000unibi
tee /etc/systemd/system/pricefeeder.service > /dev/null <<EOF [Unit] Description=Nibiru Price Feeder Requires=network-online.targer After=network-online.target
[Service] User=$USER ExecStart=$(which feeder) start Restart=on-failure ExecReload=/bin/kill -HUP KillSignal=SIGTERM RestartSec=3 PermissionStartOnly=true LimitNOFILE=65535 Environment=CHAIN_ID="$CHAIN_ID" Environment=GRPC_ENDPOINT="$GRPC_ENDPOINT" Environment=WEBSOCKET_ENDPOINT="$WEBSOCKET_ENDPOINT" Environment=EXCHANGE_SYMBOLS_MAP='$EXCHANGE_SYMBOLS_MAP' Environment=FEEDER_MNEMONIC="$FEEDER_MNEMONIC" Environment=VALIDATOR_ADDRESS="$VALIDATOR_ADDRESS"
systemctl enable pricefeeder.service && systemctl restart pricefeeder && journalctl -fu pricefeeder -o cat
После запуска должны увидеть в логах такой результат
Так же можно проверить Explorer, на момент транзакций UPD: Монет нужно очень много
sudo systemctl stop pricefeeder sudo systemctl disable pricefeeder cd $HOME rm /etc/systemd/system/feeder rm /usr/local/bin/feeder rm -r pricefeeder/
Русскоязычный чат Nibiru - https://t.me/nibiru_ru
Большое спасибо, за внимание и уделенное время
Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms