Réinstaller son validateur Namada sur un VPS

seb160
3 min readNov 11, 2023

--

ATTENTION: avant de suivre ce tutorial, pensez à bien à sauvegarder vos fichiers de back up validateur !!!

Installer les dépendances

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

Installer Rust + NodeJS

cd
sudo apt update
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"

Installer Golang

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

Installer Protoc compiler

cd
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

Définir les variables

Remplacer en cas de mise à jour du réseau!!!

sed -i '/public-testnet/d' "$HOME/.bash_profile"
sed -i '/NAMADA_TAG/d' "$HOME/.bash_profile"
sed -i '/WALLET_ADDRESS/d' "$HOME/.bash_profile"
sed -i '/CBFT/d' "$HOME/.bash_profile"
echo "export NAMADA_TAG=v0.23.2" >> ~/.bash_profile
echo "export CBFT=v0.37.2" >> ~/.bash_profile
echo "export NAMADA_CHAIN_ID=public-testnet-14.5d79b6958580" >> ~/.bash_profile
echo "export WALLET=wallet" >> ~/.bash_profile
echo "export BASE_DIR=$HOME/.local/share/namada" >> ~/.bash_profile
echo "export VALIDATOR_ALIAS=NOM_DE_VOTRE_VALIDATEUR" >> ~/.bash_profile
source ~/.bash_profile

Télécharger + compiler Namada

cd
git clone https://github.com/anoma/namada
cd namada
git checkout $NAMADA_TAG
make build-release
cargo fix --lib -p namada_apps

Télécharger + compiler CometBFT

cd
git clone https://github.com/cometbft/cometbft.git
cd cometbft
git checkout $CBFT
make build

Copier les fichiers + vérifier les installations de Namada & CometBFT

cd $HOME && cp $HOME/cometbft/build/cometbft /usr/local/bin/cometbft && \
cp "$HOME/namada/target/release/namada" /usr/local/bin/namada && \
cp "$HOME/namada/target/release/namadac" /usr/local/bin/namadac && \
cp "$HOME/namada/target/release/namadan" /usr/local/bin/namadan && \
cp "$HOME/namada/target/release/namadaw" /usr/local/bin/namadaw && \
cp "$HOME/namada/target/release/namadar" /usr/local/bin/namadar
cometbft version
namada --version

Créer + enclencher le Service

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=/usr/local/bin/namada node 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

Copier ses fichiers sauvegarde de validateur sur le nouveau VPS

Remplacer avec vos chemins d’accès!!!

scp -r /Users/NOM_UTILISATEUR/BUREAU/namada_backup root@adresse_IP_VPS:~/

Rejoindre le réseau à partir de ses fichiers de Validateur

Remplacer avec vos chemins d’accès!!!

namada client utils join-network --chain-id $CHAIN_ID --genesis-validator $VALIDATOR_ALIAS --pre-genesis-path ~/namada_backup/pre-genesis/nom_validateur

Relancer le service + checker si les logs sont OK (attendre la synchronisation ou télécharger un snapshot)

sudo systemctl restart namadad
sudo journalctl -u namadad -f -o cat

Télécharger un snapshot + relancer le service

sudo systemctl stop namadad
cd
wget -c https://snsmln.xyz/data.tar
sudo tar -xvf data.tar -C $HOME/.local/share/namada
sudo systemctl restart namadad
sudo journalctl -u namadad -f -o cat

Vérifier si le node est synchronisé (“catching up = false”)

curl -s localhost:26657/status

Vérifier son dernier vote de consensus

curl -s http://localhost:26657/dump_consensus_state | jq '.result.round_state.votes[0].prevotes' | grep $(curl -s http://localhost:26657/status | jq -r '.result.validator_info.address[:12]')

Vérifier l’uptime de son node

Remplacer avec vos chemins d’accès!!!

https://api.namadaexplorer.com/validator/{votre_addresse_de_validateur}/uptime

Check son ratio de signature des 50 derniers blocks

curl -sL "http://namada-blocksign.0xgen.online" | bash -s --

--

--