Warden Warden - Testnet
Chain ID: chiado_10010-1 Block Height: Loading...
RPC Status:

Network Overview

Warden Protocol is a Layer 1 blockchain designed to bring AI capabilities to the Web3 ecosystem. It enables developers to integrate AI directly into applications, protocols, or smart contracts, ensuring safe and seamless AI interactions

https://rpc-warden-t.sychonix.com

https://api-warden-t.sychonix.com

Installation

  • Install Dependencies
sudo apt update && sudo apt upgrade -y
sudo apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev aria2 -y
  • Install Go
sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.22.6.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 Binary
cd $HOME && mkdir -p go/bin/
wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.5.3/wardend_Linux_x86_64.zip
unzip wardend_Linux_x86_64.zip
rm -rf wardend_Linux_x86_64.zip
chmod +x wardend
mv wardend $HOME/go/bin/wardend
  • Initialize The Node
wardend init $MONIKER
sed -i -e "s|^node *=.*|node = \"tcp://localhost:12057\"|" $HOME/.warden/config/client.toml
  • Download Genesis & Addrbook
curl -Ls https://snapshot.sychonix.com/testnet/warden/genesis.json > $HOME/.warden/config/genesis.json
curl -Ls https://snapshot.sychonix.com/testnet/warden/addrbook.json > $HOME/.warden/config/addrbook.json
  • Configure Seeds and Peers
SEEDS="5cbacb5ad7aa6be5e4f9efb073be7b024100ff0f@warden-testnet.sychonix.com:12056"
PEERS="$(curl -sS https://rpc-warden-t.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"
sed -i -e "s|^seeds *=.*|seeds = '"$SEEDS"'|; s|^persistent_peers *=.*|persistent_peers = '"$PEERS"'|" $HOME/.warden/config/config.toml
  • Update Port Configuration
sed -i -e "s%:1317%:12017%; s%:8080%:12080%; s%:9090%:12090%; s%:9091%:12091%; s%:8545%:12045%; s%:8546%:12046%; s%:6065%:12065%" $HOME/.warden/config/app.toml
sed -i -e "s%:26658%:12058%; s%:26657%:12057%; s%:6060%:12060%; s%:26656%:12056%; s%:26660%:12061%" $HOME/.warden/config/config.toml
  • Customize Pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "17"|' \
  $HOME/.warden/config/app.toml
  • Set Minimum Gas Price, Enable Prometheus, and Disable the Indexer
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"25000000award\"|" $HOME/.warden/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.warden/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.warden/config/config.toml
  • Create Service File
sudo tee /etc/systemd/system/wardend.service > /dev/null <<EOF
[Unit]
Description=warden testnet node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which wardend) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
  • Download Current Snapshot
curl "https://snapshot.sychonix.com/testnet/warden/warden-snapshot.tar.lz4" | lz4 -dc - | tar -xf - -C "$HOME/.warden"
  • Enable the Service and Start the Node
sudo systemctl daemon-reload
sudo systemctl enable wardend.service
sudo systemctl restart wardend.service && sudo journalctl -u wardend.service -f --no-hostname -o cat

Upgrade

  • Upgrade to v0.5.3
cd $HOME
wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.5.3/wardend_Linux_x86_64.zip
unzip wardend_Linux_x86_64.zip
rm -rf wardend_Linux_x86_64.zip
chmod +x wardend
mv wardend $(which wardend)
wardend version --long
sudo systemctl restart wardend && sudo journalctl -u wardend -f -o cat

Peers

PEERS="$(curl -sS https://rpc-warden-t.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.warden/config/config.toml

Snapshot

Height: Loading... | Last updated: Loading... | Size: Loading...
  • Stop Service
sudo systemctl stop wardend
  • Back up priv_validator_state.json
cp ~/.warden/data/priv_validator_state.json  ~/.warden/priv_validator_state.json
  • Reset the data
wardend tendermint unsafe-reset-all --home $HOME/.warden --keep-addr-book
  • Download Snapshot
curl https://snapshot.sychonix.com/testnet/warden/warden-snapshot.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.warden
  • Restore Backup and Restart Service
mv $HOME/.warden/priv_validator_state.json.backup $HOME/.warden/data/priv_validator_state.json
sudo systemctl restart wardend && sudo journalctl -u wardend -f -o cat

Addrbook

curl -Ls https://snapshot.sychonix.com/testnet/warden/addrbook.json > $HOME/.warden/config/addrbook.json

Genesis

curl -Ls https://snapshot.sychonix.com/testnet/warden/genesis.json > $HOME/.warden/config/genesis.json

API

api-warden-t.sychonix.com

RPC

rpc-warden-t.sychonix.com

CLI Cheatsheet

Wallet Management

wardend keys add 

wardend keys add  --recover

wardend keys list 

wardend keys delete 

wardend keys export 

wardend keys import .backup

wardend q bank balances $(wardend keys show  -a)

Validator Management

Moniker

Identity

Details

Website

Security Contact

Amount

wardend tx staking create-validator \
--amount=1000000award \
--pubkey=$(wardend tendermint show-validator) \
--moniker="" \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id=chiado_10010-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--gas-prices 25000000award \
--gas "auto" \
--gas-adjustment "1.5" \
--from wallet \
-y

wardend tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--website="" \
--chain-id=chiado_10010-1 \
--commission-rate=0.07 \
--from wallet \
--gas=auto \
--gas-prices 25000000award \
-y

wardend tx slashing unjail --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5  

wardend query slashing signing-info $(wardend tendermint show-validator)

wardend q staking validator $(wardend keys show wallet --bech val -a)

wardend q bank denom-metadata -oj | jq

wardend status 2>&1 | jq -r '.SyncInfo.catching_up // .sync_info.catching_up'

wardend status 2>&1 | jq -r '.SyncInfo.latest_block_height // .sync_info.latest_block_height'

Token Management

wardend tx distribution withdraw-all-rewards --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y 

wardend tx distribution withdraw-rewards $(wardend keys show wallet --bech val -a) --commission --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y 

wardend tx staking delegate $(wardend keys show wallet --bech val -a) 1000000award --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y 

wardend tx staking redelegate $(wardend keys show wallet --bech val -a)  1000000award --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y

wardend tx staking delegate  1000000award --from  --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y 

wardend tx staking unbond $(wardend keys show wallet --bech val -a) 1000000award --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y

wardend tx bank send wallet  1000000award --from wallet --chain-id chiado_10010-1 --gas auto --gas-adjustment 1.5 --gas-prices 25000000award -y

Service Management

sudo systemctl daemon-reload

sudo systemctl enable wardend

sudo systemctl disable wardend

sudo systemctl start wardend

sudo systemctl stop wardend

sudo systemctl restart wardend

sudo systemctl status wardend

sudo journalctl -u wardend -f --no-hostname -o cat

CUSTOM_PORT=
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.warden/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%" $HOME/.warden/config/app.toml

cd $HOME && sudo systemctl stop wardend && sudo systemctl disable wardend && sudo rm /etc/systemd/system/wardend.service && sudo systemctl daemon-reload && sudo rm -rf $(which wardend) && sudo rm -rf $HOME/.warden && sudo rm -rf $(which wardend)