December 18, 2023

Namada (Validator setup guide)

Namada is a Layer 1 proof-of-stake blockchain designed for cross-chain privacy that is asset-agnostic. Namada is compatible with blockchains enabling fast transaction settlement via IBC and Ethereum through a decentralized two-way bridge. To ensure privacy, Namada utilizes an enhanced version of the multi-asset shielded pool (MASP), allowing all assets, whether interchangeable or non-interchangeable, to share a common protected pool.
--------------------------------------------------------------------------------------—

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl tar wget clang pkg-config git make libssl-dev libclang-dev libclang-12-dev -y && \
sudo apt install jq build-essential bsdmainutils ncdu gcc git-core chrony liblz4-tool -y && \
sudo apt install original-awk uidmap dbus-user-session protobuf-compiler unzip -y && \
sudo apt install libudev-dev

Install Go

wget https://golang.org/dl/go1.20.linux-amd64.tar.gz 
sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
cat <<EOF >> ~/.profile
export GOROOT=/usr/local/go 
export GOPATH=$HOME/go 
export GO111MODULE=on 
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin 
EOF 
source ~/.profile 
go version

The output should be: go version go1.20 linux/amd64


Install Cargo and Nodejs

sudo curl https://sh.rustup.rs -sSf | sh -s -- -y
. $HOME/.cargo/env
curl https://deb.nodesource.com/setup_18.x | sudo bash
sudo apt install cargo nodejs -y < "/dev/null"
cargo --version

The output should be: cargo 1.74.1 (ecb9851af 2023-10-18)

node -v

The output should be: v18.17.1

Install Protoc

cd $HOME && rustup update
PROTOC_ZIP=protoc-23.3-linux-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v23.3/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP
protoc --version

The output should be: libprotoc 23.3

Download binary for work

cd $HOME && \
git clone https://github.com/anoma/namada && \
cd namada && \
git checkout v0.28.1-10-g2377d67 && \
make install && \
namada --version

The output should be: Namada v0.28.1

cd $HOME && \
git clone https://github.com/cometbft/cometbft.git && \
cd cometbft && \
git checkout v0.37.2 && \
make install && \
cometbft version

The output should be: 0.37.2

Specify variables, for ease of work:

VALIDATOR_NAME="YourValidatorName"  
NAMADA_WALLET="YourWalletName"
EMAIL="YourEmail"
echo 'export VALIDATOR_NAME='${ARCHWAY_MONIKER} >> $HOME/.profile 
echo 'export NAMADA_WALLET='${ARCHWAY_WALLET} >> $HOME/.profile 
source $HOME/.profile

Create a 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=TM_LOG_LEVEL=p2p:none,pex:error
Environment=NAMADA_CMT_STDOUT=true
ExecStart=$(which namadad) ledger run 
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable namadad

For genesis validator:

Init network and download genesis

namada client utils join-network --chain-id public-testnet-15.0dacadb8d663 --genesis-validator $VALIDATOR_NAME


Start service:

sudo systemctl restart archwayd && sudo journalctl -u archwayd -f -o cat

For post-genesis validator:

Init network and download genesis

namada client utils join-network --chain-id public-testnet-15.0dacadb8d663


Start service:

sudo systemctl restart archwayd && sudo journalctl -u archwayd -f -o cat

Create wallet

namada wallet key gen --alias $NAMADA_WALLET
namada wallet address find --alias $NAMADA_WALLET

The output should be: Found address Implicit: you_address

Use your wallet address and faucet to receive tokens.

Init you validator

namada client init-validator \
--alias $VALIDATOR_NAME \
--account-keys $NAMADA_WALLET \
--signing-keys $NAMADA_WALLET \
--commission-rate 0.05 \
--max-commission-rate-change 0.01 \
--email $EMAIL \
--unsafe-dont-encrypt


Stake tokens for you validator

namada client bond \
--validator $VALIDATOR_NAME \
--source $NAMADA_WALLET
--amount 100

Network monitoring system (SOON)