Testnet

Nolus Protocol

Installation Guide
Tendermint CLI
Public Endpoint
Upgrade
Installation Guide
Installation Guide
Tendermint CLI
Public Endpoint
Upgrade

How To Install Full Node Nolus Testnet

Setting up vars

Your Nodename (validator) that will shows in explorer

NODENAME=<Your_Nodename_Moniker>

Save variables to system

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
    echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export NOLUS_CHAIN_ID=nolus-rila" >> $HOME/.bash_profile
source $HOME/.bash_profile

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl build-essential git wget jq make gcc tmux net-tools ccze -y

Install go

if ! [ -x "$(command -v go)" ]; then
     ver="1.19.4"
     cd $HOME
     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
fi

Download and build binaries

cd $HOME
git clone https://github.com/Nolus-Protocol/nolus-core.git
cd nolus-core || return
git checkout v0.1.39
make install

Config app

nolusd config chain-id $NOLUS_CHAIN_ID
nolusd config keyring-backend test

Init app

nolusd init $NODENAME --chain-id $NOLUS_CHAIN_ID

Download configuration

cd $HOME
curl -s https://raw.githubusercontent.com/Nolus-Protocol/nolus-networks/main/testnet/nolus-rila/genesis.json > $HOME/.nolus/config/genesis.json
curl -s https://raw.githubusercontent.com/konsortech/Node/main/Testnet/Nolus/addrbook.json > $HOME/.nolus/config/addrbook.json

Set seeds and peers

SEEDS=""
PEERS=""
sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.nolus/config/config.toml

Disable indexing

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

Config pruning

sed -i 's|pruning = "custom"|pruning = "custom"|g' $HOME/.nolus/config/app.toml
sed -i 's|pruning-keep-recent = "0"|pruning-keep-recent = "100"|g' $HOME/.nolus/config/app.toml
sed -i 's|pruning-interval = "0"|pruning-interval = "10"|g' $HOME/.nolus/config/app.toml

Set minimum gas price

sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.0001unls"|g' $HOME/.nolus/config/app.toml

Create service

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

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable nolusd
sudo systemctl restart nolusd && sudo journalctl -u nolusd -f -o cat

Guidence for create validator

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

nolusd keys add $WALLET

To recover your wallet using seed phrase

nolusd keys add $WALLET --recover

Show your wallet list

nolusd keys list

Save wallet info

Add wallet and validator address into variables

NOLUS_WALLET_ADDRESS=$(nolusd keys show $WALLET -a)
NOLUS_VALOPER_ADDRESS=$(nolusd keys show $WALLET --bech val -a)
echo 'export NOLUS_WALLET_ADDRESS='${NOLUS_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export NOLUS_VALOPER_ADDRESS='${NOLUS_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

God to discord channel and request #testnet-faucet

Go to Discord channel #devnet-faucet

Create validator

check your wallet balance:

nolusd query bank balances $NOLUS_WALLET_ADDRESS

To create your validator run command below

nolusd tx staking create-validator \
  --amount 1000000unls \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --pubkey  $(nolusd tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $NOLUS_CHAIN_ID
  --gas-prices==0.1unls \
  --gas-adjustment=1.5 \
  --gas=auto \

Check your validator key

[[ $(nolusd q staking validator $NOLUS_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(nolusd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

Get list of validators

nolusd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

Usefull commands

Service management

Check logs

journalctl -fu nolusd -o cat

Start service

sudo systemctl start nolusd

Stop service

sudo systemctl stop nolusd

Restart service

sudo systemctl restart nolusd

Node info

Synchronization info

nolusd status 2>&1 | jq .SyncInfo

Validator info

nolusd status 2>&1 | jq .ValidatorInfo

Node info

nolusd status 2>&1 | jq .NodeInfo

Show node id

nolusd tendermint show-node-id

Wallet operations

List of wallets

nolusd keys list

Recover wallet

nolusd keys add $WALLET --recover

Delete wallet

nolusd keys delete $WALLET

Get wallet balance

nolusd query bank balances $NOLUS_WALLET_ADDRESS

Transfer funds

nolusd tx bank send $NOLUS_WALLET_ADDRESS <TO_NOLUS_WALLET_ADDRESS> 1000000unls

Voting

nolusd tx gov vote 1 yes --from $WALLET --chain-id=$NOLUS_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

nolusd tx staking delegate $NOLUS_VALOPER_ADDRESS 1000000unls --from=$WALLET --chain-id=$NOLUS_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

nolusd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000unls --from=$WALLET --chain-id=$NOLUS_CHAIN_ID --gas=auto

Withdraw all rewards

nolusd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$NOLUS_CHAIN_ID --gas=auto

Withdraw rewards with commision

nolusd tx distribution withdraw-rewards $NOLUS_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$NOLUS_CHAIN_ID

Validator management

Edit validator

nolusd tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$NOLUS_CHAIN_ID \
  --from=$WALLET

Unjail validator

nolusd tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$NOLUS_CHAIN_ID \
  --gas=auto

Guidence for create validator

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

nolusd keys add $WALLET

To recover your wallet using seed phrase

nolusd keys add $WALLET --recover

Show your wallet list

nolusd keys list

Save wallet info

Add wallet and validator address into variables

NOLUS_WALLET_ADDRESS=$(nolusd keys show $WALLET -a)
NOLUS_VALOPER_ADDRESS=$(nolusd keys show $WALLET --bech val -a)
echo 'export NOLUS_WALLET_ADDRESS='${NOLUS_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export NOLUS_VALOPER_ADDRESS='${NOLUS_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

God to discord channel and request #testnet-faucet

Go to Discord channel #devnet-faucet

Create validator

check your wallet balance:

nolusd query bank balances $NOLUS_WALLET_ADDRESS

To create your validator run command below

nolusd tx staking create-validator \
  --amount 1000000unls \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --pubkey  $(nolusd tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $NOLUS_CHAIN_ID
  --gas-prices==0.1unls \
  --gas-adjustment=1.5 \
  --gas=auto \

Check your validator key

[[ $(nolusd q staking validator $NOLUS_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(nolusd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

Get list of validators

nolusd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

Usefull commands

Service management

Check logs

journalctl -fu nolusd -o cat

Start service

sudo systemctl start nolusd

Stop service

sudo systemctl stop nolusd

Restart service

sudo systemctl restart nolusd

Node info

Synchronization info

nolusd status 2>&1 | jq .SyncInfo

Validator info

nolusd status 2>&1 | jq .ValidatorInfo

Node info

nolusd status 2>&1 | jq .NodeInfo

Show node id

nolusd tendermint show-node-id

Wallet operations

List of wallets

nolusd keys list

Recover wallet

nolusd keys add $WALLET --recover

Delete wallet

nolusd keys delete $WALLET

Get wallet balance

nolusd query bank balances $NOLUS_WALLET_ADDRESS

Transfer funds

nolusd tx bank send $NOLUS_WALLET_ADDRESS <TO_NOLUS_WALLET_ADDRESS> 1000000unls

Voting

nolusd tx gov vote 1 yes --from $WALLET --chain-id=$NOLUS_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

nolusd tx staking delegate $NOLUS_VALOPER_ADDRESS 1000000unls --from=$WALLET --chain-id=$NOLUS_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

nolusd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000unls --from=$WALLET --chain-id=$NOLUS_CHAIN_ID --gas=auto

Withdraw all rewards

nolusd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$NOLUS_CHAIN_ID --gas=auto

Withdraw rewards with commision

nolusd tx distribution withdraw-rewards $NOLUS_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$NOLUS_CHAIN_ID

Validator management

Edit validator

nolusd tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$NOLUS_CHAIN_ID \
  --from=$WALLET

Unjail validator

nolusd tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$NOLUS_CHAIN_ID \
  --gas=auto

Use Auto Upgrade For Nolus-Rila

Download script for auto upgrade

cd $HOME
wget https://raw.githubusercontent.com/konsortech/Node/main/Testnet/Nolus/Upgrade/v0.2.2.sh
chmod +x v0.2.2.sh

Use Screen

screen -S nolus-upgrade
./v0.2.2.sh

You will see result

 YOUR NODE WILL BE UPDATED TO VERSION: v0.2.2 ON BLOCK NUMBER: 1693000 

1682723 (10277 blocks left)
1682724 (10276 blocks left)
1682725 (10275 blocks left)

Quit Screen and you can sleep as well 🙂

ctrl a+d