🔌Installation (Buenavista)

💻 Hardware Requirements

ComponentsMinimum Requirements

CPU

+4

RAM

+24 GB (for now)

STORAGE

400 GB SSD

1️⃣ Installation packeges and dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

➡️ Go Installation

cd $HOME
VER="1.22.6"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

➡️ Set Vars

You can replace 112 with anything you want. Please write 3 digits.

echo "export W_PORT="112"" >> $HOME/.bash_profile
source $HOME/.bash_profile

2️⃣ Install node

cd $HOME
mkdir -p $HOME/.warden/cosmovisor/genesis/bin
wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.4.2/wardend_Linux_x86_64.zip
unzip -o wardend_Linux_x86_64.zip
rm -rf wardend_Linux_x86_64.zip
chmod +x wardend
mv wardend $HOME/.warden/cosmovisor/genesis/bin/
sudo ln -s $HOME/.warden/cosmovisor/genesis $HOME/.warden/cosmovisor/current -f
sudo ln -s $HOME/.warden/cosmovisor/current/bin/wardend /usr/local/bin/wardend -f
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.6.0

➡️ Create a service

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

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.warden"
Environment="DAEMON_NAME=wardend"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$HOME/.warden/cosmovisor/current/bin"

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable wardend

➡️ Initialize the node

wardend config set client chain-id buenavista-1
wardend config set client keyring-backend test
wardend config set client node tcp://localhost:${W_PORT}57
wardend init "change-moniker" --chain-id buenavista-1
sed -i -e "s|^node *=.*|node = \"tcp://localhost:${W_PORT}57\"|" $HOME/.warden/config/client.toml

➡️ Genesis

sudo wget -O /root/genesis.json.tar.xz https://buenavista-genesis.s3.eu-west-1.amazonaws.com/genesis.json.tar.xz && sudo tar -xJf /root/genesis.json.tar.xz -C /root && sudo rm /root/genesis.json.tar.xz
sudo mv /root/genesis.json /root/.warden/config/

➡️Addrbook

wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/MictoNode/warden-protocol/main/addrbook.json"

➡️ Gas Settings

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025uward\"/;" ~/.warden/config/app.toml

➡️ Port

sed -i.bak -e "s%:1317%:${W_PORT}17%g;
s%:8080%:${W_PORT}80%g;
s%:9090%:${W_PORT}90%g;
s%:9091%:${W_PORT}91%g;
s%:8545%:${W_PORT}45%g;
s%:8546%:${W_PORT}46%g;
s%:6065%:${W_PORT}65%g" $HOME/.warden/config/app.toml
sed -i.bak -e "s%:26658%:${W_PORT}658%g;
s%:26657%:${W_PORT}57%g;
s%:6060%:${W_PORT}60%g;
s%:26656%:${W_PORT}56%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${W_PORT}56\"%;
s%:26660%:${W_PORT}60%g" $HOME/.warden/config/config.toml

➡️ Peers and Seeds

SEEDS="8288657cb2ba075f600911685670517d18f54f3b@warden-testnet-seed.itrocket.net:18656"
PEERS="c962764d04ab27f577266d83e0087f3ce1388eef@14.167.155.13:18656,630f183c462202f72871d8b2b6273df7d0840d97@78.46.40.239:11656,41a3a66993696c5e5d44945de2036227a4578fb3@195.201.241.107:56296,e1ce5cd2f9a74a9d6347ed6a4d323103a79f8d4e@37.252.186.201:26656,67b61778e63da8a9bc8083eb465077ba731940c4@88.198.50.206:36656,6f1e4309b3e5c9e1edb66dd3e5f8dbfe3fc9a81d@141.94.172.235:26656,e5a0d1104c387e1f3740ef28de029324e3633636@65.109.69.143:2020,bda08962882048fea4331fcf96ad02789671700e@65.21.202.124:35656,f1cdf44d3a72fedcecbac558cbb48aa9d540b7f0@213.239.192.18:17856,e3c6afd0b25b4521bc3b291b0d27b8d0545a6c12@88.99.167.27:18656,206b643e0657cd024302feb8bf918a64d1e16052@65.108.100.31:27756,503065ec8e2b692b3caf7480c09c322954f4e61f@37.27.133.84:11256,129b6bc5c1367bafda1cad393005fb31c3636f1a@31.220.84.185:26656,af6010a1455c7a9ad7e5f273e6576cd7361fadd0@103.156.60.207:18656,69d2e20bd93ad7bb0b12f743f4c54e5a56b192ff@95.216.102.121:21656,7f1789c2db2793d2cacc86bb56641674b53a76eb@51.79.79.83:11256,94970679bc9826a0a0b648d1ad953387f6475c56@159.69.74.237:38736,498a07fe35abdbb9ba9644d4d7837f25709e4e3d@130.162.44.155:11256,eee54c85c14748f7793738fadbc747ed1511efac@176.9.58.5:46656,df210d06320bf8e989e6fc1b1a4b9c6c57815c24@37.60.239.99:11256,9709d6856c7b200e40e1f758669d543bd83e3fc4@198.244.253.85:23656,c4c5dbc5a5213d27e7b1417246f527c97773f214@77.237.242.141:11256,8c934a899518b4a1eb8975eb452d3cc1a8c2ed13@65.108.124.43:39656,178493a693ab6598ee0d294e13575c8f972ef39c@20.240.222.132:30256,37afc47c936ff6b168246c144db2fa53134108e6@195.201.195.61:41656,e850365a8232650623f30356c77583939b896327@116.202.217.20:26656,d89b60c3d078111c87dd936faf2eb9ac19f3be7b@14.167.152.236:18656,6a4f5b991c321efb12188c126f115d73f4ebf885@95.217.116.103:36656,07e158587399d71592e0f77e32e526fc383603a9@195.3.220.4:31656,fca2c70e2a9fe354e08d5210067f860d5ccaf7aa@65.109.84.37:32656,e4ab1a9837be4945a604ef460b8177c2e0da4ef0@65.108.13.154:39656,89228ac045451424da90f16b2b85b8e16f032cf6@84.201.158.9:26656,684b23aeb98afa228df34005efa6231a03047f61@141.148.226.197:18656,fc97e0275ee7a5cfa1ee011f3640fefa7933ce04@116.102.86.176:18656,4dee4cf7d5a547a1ce922a647b0063c5338b7fac@136.38.55.33:26656,2f6e9f21c33cdba23934c9b08cb32c8fc9a23ef6@213.199.35.46:11256,194b68f0df274d1d169b08681f3b7b13e1f25b06@95.165.89.222:26686,3f472746f46493309650e5a033076689996c8881@65.109.68.190:17859"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.warden/config/config.toml

➡️ Pruning

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.warden/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.warden/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"10\"/" $HOME/.warden/config/app.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.warden/config/config.toml

➡️ Snap

wardend tendermint unsafe-reset-all --home $HOME/.warden
if curl -s --head curl https://snapshots.kjnodes.com/warden-testnet/snapshot_latest.tar.lz4 | head -n 1 | grep "200" > /dev/null; then
  curl https://snapshots.kjnodes.com/warden-testnet/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.warden
    else
  echo no have snap
fi

➡️ Let's get started

sudo systemctl restart wardend

➡️ Create wallet

wardend keys add 

➡️ Import wallet

wardend keys add  --recover

➡️ Faucet

➡️ Create Validator

Reminder: You can't create a validator without Sync. You must have to catch the latest block.

cd $HOME
echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(wardend comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
    \"amount\": \"1000000uward\",
    \"moniker\": \"change-moniker\",
    \"identity\": \"change-identity\",
    \"website\": \"change-website\",
    \"security\": \"\",
    \"details\": \"change-details\",
    \"commission-rate\": \"0.1\",
    \"commission-max-rate\": \"0.2\",
    \"commission-max-change-rate\": \"0.01\",
    \"min-self-delegation\": \"1\"
}" > validator.json
wardend tx staking create-validator validator.json \
    --from  \
    --chain-id buenavista-1 \
    --fees 600uward \
    --node=http://localhost:${W_PORT}57

➡️ Delegation

wardend tx staking delegate valoper-adresi 000000uward \
--chain-id buenavista-1 \
--from "" \
--fees 600uward \
--node=http://localhost:${W_PORT}57

➡️ Complete deletion

cd $HOME
sudo systemctl stop wardend
sudo systemctl disable wardend
sudo rm -rf /etc/systemd/system/wardend.service
sudo systemctl daemon-reload
sudo rm -f /usr/local/bin/wardend
sudo rm -f $(which wardend)
sudo rm -rf $HOME/.warden
sed -i "/W_PORT_/d" $HOME/.bash_profile

➡️ Block check

local_height=$(curl -s localhost:${W_PORT}57/status | jq -r .result.sync_info.latest_block_height); network_height=$(curl -s https://warden-testnet-rpc.mictonode.com/status | jq -r .result.sync_info.latest_block_height); blocks_left=$((network_height - local_height)); echo "Your node height: $local_height"; echo "Network height: $network_height"; echo "Blocks left: $blocks_left"
  • Your node height - the current block of your node

  • Network height - the last block of the network

  • Blocks left - how many blocks your node has left to sync.

Last updated