January 6, 2023

Установка ноды NOLUS

Здравствуйте сегодня мы расскажем об установке ноды Nolus Protocol

Оригинальная инструкция находится тут.

Nolus Protocol — это финансовый набор Web3 инструментов, который предлагает инновационный подход к денежным рынкам с новыми решениями для дальнейшего развития сегмента DeFi. В протоколе используется молниеносный полу-разрешенный «Proof of Stake» L1, построенный с использованием Cosmos SDK, где смарт-контракты разрабатываются на Rust и выполняются в рамках модели изолированной песочницы CosmWASM, обеспечивая безопасность и совместимость с многими сетями.

Минимальные требования для сервера

4GB RAM 120GB of disk space 2Cores CPU

Краткую инструкцию по аренде сервера можно посмотреть тут

Как установить несколько нод на один сервер можно почитать тут

Подробный разбор по установке нод Cosmos можно посмотреть тут.

Если будете выбирать сервер на Hetzner можете воспользоваться нашей ссылкой, будем благодарны.

Как всегда обновляем наш сервер

sudo apt update && sudo apt upgrade -y

Устанавливаем доп. пакеты

sudo apt install make clang git 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/Nolus-Protocol/nolus-core && cd nolus-core git checkout v0.1.39 make install cd $HOME

Проверяем версию бинарника

nolusd version --long вывод: # version: 0.1.39 # commit: 9ca56877c69aa4dbda9fdd82223dbbeebab594a6

Задаем переменные (CHAIN оставляем без изменений, в остальные вписываем свои данные)

NOLUS_CHAIN="nolus-rila" NOLUS_MONIKER="your_name" NOLUS_WALLET="your_name"

Добавляем все в баш профиль

echo 'export NOLUS_CHAIN='${NOLUS_CHAIN} >> $HOME/.bash_profile echo 'export NOLUS_MONIKER='${NOLUS_MONIKER} >> $HOME/.bash_profile echo 'export NOLUS_WALLET='${NOLUS_WALLET} >> $HOME/.bash_profile source $HOME/.bash_profile

Инициализируем ноду

nolusd init $NOLUS_MONIKER --chain-id=nolus-rila

Прописываем в конфиг имя сети

nolusd config chain-id $NOLUS_CHAIN

Скачиваем файл генезис

wget -O $HOME/.nolus/config/genesis.json "https://raw.githubusercontent.com/Nolus-Protocol/nolus-networks/main/testnet/nolus-rila/genesis.json"

Проверяем чек сумму генезиса

sha256sum ~/.nolus/config/genesis.json Вывод: # d22ea6488afe58478c54afeb2d6b5a45622c797dfd75c91a8653eb1f094173c5

Настраиваем прунинг (по желанию)

pruning="custom" pruning_keep_recent="1000" pruning_interval="10" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.nolus/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.nolus/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.nolus/config/app.toml

Выключаем индексер (по желанию)

indexer="null" sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.nolus/config/config.toml

Задаём минимальную цену за газ

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025unls\"/;" ~/.nolus/config/app.toml

Добавляем пиры

peers="56cee116ac477689df3b4d86cea5e49cfb450dda@54.246.232.38:26656,56f14005119e17ffb4ef3091886e6f7efd375bfd@34.241.107.0:26656,7f26067679b4323496319fda007a279b52387d77@63.35.222.83:26656,7f4a1876560d807bb049b2e0d0aa4c60cc83aa0a@63.32.88.49:26656,3889ba7efc588b6ec6bdef55a7295f3dd559ebd7@3.249.209.26:26656,de7b54f988a5d086656dcb588f079eb7367f6033@34.244.137.169:26656" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.nolus/config/config.toml

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

sudo tee /etc/systemd/system/nolusd.service > /dev/null <<EOF [Unit] Description=Nolus Network Daemon After=network-online.target

[Service] User=$USER ExecStart=$(which nolusd) start Restart=always RestartSec=3 LimitNOFILE=4096

[Install] WantedBy=multi-user.target EOF

И запускаем сервис

sudo systemctl daemon-reload sudo systemctl enable nolusd sudo systemctl start nolusd

Смотрим логи и ждем когда нода начнет синхронизироваться

journalctl -u nolusd -f -o cat

Или смотрим статус синхронизации (когда "catching_up": false то нода синхронизирована)

curl localhost:26657/status

После синхронизации создаем кошелек (не забываем сохранить мнемоник)

nolusd keys add $NOLUS_WALLET

Если кошелек уже есть то восстанавливаем с помощью мнемоника

nolusd keys add $NOLUS_WALLET --recover

Добавляем переменную с адресом кошелька

NOLUS_ADDR=$(nolusd keys show $NOLUS_WALLET -a)

Добавляем переменную в баш профиль

echo 'export NOLUS_ADDR='${NOLUS_ADDR} >> $HOME/.bash_profile source $HOME/.bash_profile

Теперь нам необходимо получить средства на кошелек. Для этого переходим в дискорд в канал #testnet-faucet по ссылке, и запрашиваем токены на баланс.

После запроса проверяем баланс

nolusd query bank balances $NOLUS_ADDR

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

nolusd tx staking create-validator \ --amount=1000000unls \ --pubkey=$(nolusd tendermint show-validator) \ --moniker=$NOLUS_MONIKER \ --chain-id=$NOLUS_CHAIN \ --from=$NOLUS_WALLET \ --commission-rate="0.05" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ --min-self-delegation="1"

Задаем переменную с адресом валидатора

NOLUS_VALOPER=$(nolusd keys show $NOLUS_WALLET --bech val -a)

И добавляем ее в баш профиль

echo 'export NOLUS_VALOPER='${NOLUS_VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile

Проверка статуса валидатора

nolusd query staking validator $NOLUS_VALOPER

Делегация средств с кошелька на валидатора (сумму вводите свою)

nolusd tx staking delegate $NOLUS_VALOPER 1000000unls --from $NOLUS_WALLET

Ну и если вдруг ваша нода попала в тюрьму, то выход

nolusd tx slashing unjail --from $NOLUS_WALLET

Большое спасибо, за внимание и уделенное время

Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms

С уважением, MMS_Team