Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Full Node Setup

1. System requirements

{% hint style="info" %} Ubuntu must be 22.04 or newer. {% endhint %}

Node RAM DRIVE CPU
Validator node 16GB 1TB 4cores
Full node 8GB 1TB 2cores

2. Manual installation

2.1 Set up variables

CHAIN_ID="namada.5f5de2dd1b88cba30586420"
WALLET_ALIAS="<SET YOUR WALLET ALIAS>"
VALIDATOR_ALIAS="<SET YOUR VALIDATOR ALIAS>"

Export variables:

echo "export WALLET_ALIAS="$WALLET_ALIAS"" >> $HOME/.bash_profile
echo "export VALIDATOR_ALIAS="$VALIDATOR_ALIAS"" >> $HOME/.bash_profile
echo "export WORKING_DIR="$HOME/.local/share/namada"" >> $HOME/.bash_profile
echo "export PUBLIC_IP=$(wget -qO- eth0.me)" >> $HOME/.bash_profile
echo "export CHAIN_ID="$CHAIN_ID"" >> $HOME/.bash_profile
source $HOME/.bash_profile

2.2 Install prerequisites

Update packages and install dependencies:

sudo apt update && sudo apt upgrade -y
sudo apt-get install -y curl git jq lz4 make git-core libssl-dev pkg-config libclang-12-dev build-essential protobuf-compiler

Install Go:

sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.20.10.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)

Install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env

Install CometBFT:

cd $HOME
rm -rf cometbft
git clone https://github.com/cometbft/cometbft.git
cd cometbft
git checkout v0.37.11
make build
sudo cp $HOME/cometbft/build/cometbft /usr/local/bin/
cometbft version

2.3 Install Namada binary

cd $HOME
rm -rf namada
git clone https://github.com/anoma/namada
cd namada
wget https://github.com/anoma/namada/releases/download/v1.0.0/namada-v1.0.0-Linux-x86_64.tar.gz
tar -xvf namada-v1.0.0-Linux-x86_64.tar.gz
rm namada-v1.0.0-Linux-x86_64.tar.gz
cd namada-v1.0.0-Linux-x86_64
sudo mv namad* /usr/local/bin/
if [ ! -d "$WORKING_DIR" ]; then
    mkdir -p "$WORKING_DIR"
fi

Check namada version:

namada --version

2.4 Initialize the chain configuration

For genesis validators:

namada client utils join-network --chain-id $CHAIN_ID --genesis-validator $VALIDATOR_ALIAS

For post-genesis validators and Full nodes:

namada client utils join-network --chain-id $CHAIN_ID

Check everything works fine :

namadac epoch

Output should be like: "Last committed epoch: 150"

2.5 Create service file

sudo tee /etc/systemd/system/namadad.service > /dev/null <<EOF
[Unit]
Description=namada
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$WORKING_DIR
Environment=TM_LOG_LEVEL=p2p:none,pex:error
Environment=NAMADA_CMT_STDOUT=true
Environment=NAMADA_LOG=info
ExecStart=$(which namada) node ledger run
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

2.6 Start a node

sudo systemctl daemon-reload
sudo systemctl enable namadad
sudo systemctl restart namadad && sudo journalctl -u namadad -f

3. Adding wallets

3.1 Add new keypair (or restore)

namada wallet gen --alias $WALLET_ALIAS

or restore:

namada wallet derive --alias $WALLET_ALIAS --hd-path default

3.2 Check keys

namada wallet find --alias $WALLET_ALIAS

{% hint style="info" %} Wait until the node is synchronized. {% endhint %}

Command to check your node status ("latest_block_height" should be not 0 and "catching up" - false):

curl localhost:26657/status | jq 

3.3 Check key balance

namada client balance --owner $WALLET_ALIAS

4. Validator Setup

{% hint style="info" %} Following validator setup is optional for Crew Members. Wait until your node is synced! {% endhint %}

Command to check your node status ("latest_block_height" should be not 0 and "catching up" - false):

curl localhost:26657/status | jq 

4.1 Create validator

namada client init-validator \
 --alias $VALIDATOR_ALIAS \
 --account-keys $WALLET_ALIAS \
 --signing-keys $WALLET_ALIAS \
 --commission-rate 0.1 \
 --max-commission-rate-change 0.1 \
 --email <ENTER YOUR EMAIL>

4.2 Restart your node

systemctl restart namadad

4.3 Stake (bond) your validator

namada client bond --source $WALLET_ALIAS  --validator $VALIDATOR_ALIAS  --amount 100

{% hint style="info" %} Wait > 2 epochs and then check bond status. {% endhint %}

4.4 Check your validator status

namada client bonds --owner $WALLET_ALIAS