Validator Node Setup

Guide on Validator Node setup by papadritta

🖥 Main info:

- Node version: v0.39.0
- Chain Id: luminara-position.5eef10f5ab83
- Service Name: namadad.service

⚙️ Hardware Requirement:

- Memory: 64 GB
- CPU: 8 cores
- Disk: 0.5 TB NVME SSD
- Bandwidth: 100 MBps for Download / Upload

✅ Installation steps:

  1. Install dependences

cd $HOME
sudo apt update
sudo apt install make unzip clang pkg-config git-core libudev-dev libssl-dev build-essential libclang-18-dev git jq ncdu bsdmainutils htop -y < "/dev/null"
  1. Install Rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"
cargo --version
  1. Install Cometbft

mkdir -p $HOME/cometbft_bin
cd $HOME/cometbft_bin
wget -O cometbft.tar.gz https://github.com/cometbft/cometbft/releases/download/v0.37.2/cometbft_0.37.2_linux_amd64.tar.gz
tar xvf cometbft.tar.gz
sudo chmod +x cometbft
sudo mv ./cometbft /usr/local/bin/
cometbft version
  1. Install Protoc

apt-get update
apt-get install -y protobuf-compiler
protoc --version
  1. Download and build last version - v0.39.0

cd $HOME
git clone https://github.com/anoma/namada.git
cd namada
git checkout v0.39.0
make build-release
sudo mv target/release/namada /usr/local/bin/
sudo mv target/release/namada[c,n,w,r] /usr/local/bin/
namada -V ## (should return v0.39.0)

Set vars:

  1. Set vars (can keep as default or can adjust some: MONIKER, WALLET_NAME, EMAIL)

echo 'export MONIKER="testnetCampfire"' >> ~/.bash_profile
echo 'export WALLET_NAME="wallet"' >> ~/.bash_profile
echo 'export NAMADA_NETWORK_CONFIGS_SERVER="https://testnet.luminara.icu/configs"' >> ~/.bash_profile
echo 'export CHAIN_ID="luminara-position.5eef10f5ab83"' >> ~/.bash_profile
source $HOME/.bash_profile
  1. Join network

namadac utils join-network --chain-id $CHAIN_ID --dont-prefetch-wasm

Downloading config release from https://testnet.luminara.icu/configs/luminara-position.5eef10f5ab83.tar.gz ... No validator keys are being used. Make sure you didn't forget to specify --genesis-validator? Successfully configured for chain ID luminara-position.5eef10f5ab83

  1. Check if check all files are configured correct

ls /root/.local/share/namada/luminara-position.5eef10f5ab83
  1. Download the wasm (and extract and place in the namada wasm folder)

wget https://testnet.luminara.icu/wasm.tar.gz -O /root/.local/share/namada/luminara-position.5eef10f5ab83/wasm.tar.gz
tar -xzvf /root/.local/share/namada/luminara-position.5eef10f5ab83/wasm.tar.gz -C /root/.local/share/namada/luminara-position.5eef10f5ab83/wasm
  1. Add persistent peer to config.toml

nano /root/.local/share/namada/luminara-position.5eef10f5ab83/config.toml
persistent_peers = "tcp://[email protected]:26656"
  1. Test start node

CMT_LOG_LEVEL=p2p:none,pex:error namada node ledger run
  1. Check executable file

which namada ## (should return /usr/local/bin/namada)
  1. Make a systemd service file

sudo tee /etc/systemd/system/namadad.service > /dev/null <<EOF
[Unit]
Description=namada
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.local/share/namada
Environment=CMT_LOG_LEVEL=p2p:none,pex:error
Environment=NAMADA_CMT_STDOUT=true
ExecStart=/usr/local/bin/namada node ledger run 
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
  1. Run a service

sudo systemctl daemon-reload
sudo systemctl enable namadad
sudo systemctl start namadad
  1. Check Node status

curl localhost:26657/status | jq 
  1. Create a new keypair (Wallet)

namada wallet gen --alias $WALLET_NAME

✅ Faucet:

  1. Request Nam tokens from Faucet https://faucet.luminara.icu (maximum 1000 Nam per one request)

Init a validator:

  1. Init a new validator

namada client init-validator \
  --alias $MONIKER \
  --account-keys $WALLET_NAME \
  --signing-keys $WALLET_NAME \
  --commission-rate 0.05 \
  --max-commission-rate-change 0.05 \
  --email $EMAIL
  1. Grep your validator

namadaw list --addr | grep $MONIKER
  1. Check wallet balance

namada client balance --owner $WALLET_NAME --token NAM
  1. Bond token to your validator (adjust the amount)

namada client bond \
  --validator $MONIKER \
  --amount 1000 \
  --source $WALLET_NAME
  1. Check bonds

namada client bonds --owner $WALLET_NAME
  1. Query the set of active validators

namadac bonded-stake
  1. Check your validator state

namadac validator-state --validator $MONIKER
  1. Unjail your validator

namada client unjail-validator --validator $MONIKER

Last updated