RPC: https://side-test.rpc.cryptomolot.com/
Resources
Hardware requirements
Installation 💾
Update repositories
apt update && apt upgrade -y
Install dependencies
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
Install GO 1.22.2
sudo rm -rf /usr/local/go && \
curl -L https://go.dev/dl/go1.22.2.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local && \
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && \
source .bash_profile && \
go version
Set variables
change the <wallet>, <moniker>.
And SIDE_PORT # if you needed
echo "export WALLET="<WALLET>"" >> $HOME/.bash_profile
echo "export MONIKER="<MONIKER>"" >> $HOME/.bash_profile
echo "export SIDE_CHAIN_ID="S2-testnet-2"" >> $HOME/.bash_profile
echo "export SIDE_PORT="26"" >> $HOME/.bash_profile
source $HOME/.bash_profile
Get binaries
cd $HOME
rm -rf side
git clone https://github.com/sideprotocol/side.git
cd side
git checkout v0.8.1
make install
Initialize
change the <moniker>
sided config node tcp://localhost:${SIDE_PORT}657
sided config keyring-backend os
sided config chain-id S2-testnet-2
sided init "<MONIKER>" --chain-id S2-testnet-2
Download genesis and addrbook
wget -O $HOME/.side/config/genesis.json https://testnet-files.itrocket.net/side/genesis.json
wget -O $HOME/.side/config/addrbook.json https://testnet-files.itrocket.net/side/addrbook.json
Add seeds/bpeers/peers in config.toml
SEEDS="9c14080752bdfa33f4624f83cd155e2d3976e303@side-testnet-seed.itrocket.net:45656"
PEERS="bbbf623474e377664673bde3256fc35a36ba0df1@side-testnet-peer.itrocket.net:45656,eb0c5c68d051d622a425d97e5a01c7762ea51e96@152.53.35.91:26656,07c88954da965a1ce376a3aa1543fc4142a54156@149.102.146.181:17656,129fd32f3600f968e760fadebd6a71f29cb20ce2@23.88.70.109:26356,010e9ba253ce06ab589198ff5717c0fd54f3070e@142.132.152.46:32656,9ac70136fbec0002351d3d31b9472ba25510031a@37.60.240.206:55656,582dedd866dd77f25ac0575118cf32df1ee50f98@202.182.119.24:26656,42119e8e8a05869db9cd6704f1ec49286d772d0d@94.130.204.227:46656,7dc4dc0ba7194870e72837039fbdc3c4920523be@178.63.189.157:26656,d2aefb779d0c5ed4802970e9a9c53756cf443162@144.76.176.154:26356,027ef6300590b1ca3a2b92a274247e24537bd9c9@65.109.65.248:49656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.side/config/config.toml
Set minimum gas-price
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.005uside"|g' $HOME/.side/config/app.toml
Set custom ports (if needed)
# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${SIDE_PORT}317%g;
s%:8080%:${SIDE_PORT}080%g;
s%:9090%:${SIDE_PORT}090%g;
s%:9091%:${SIDE_PORT}091%g;
s%:8545%:${SIDE_PORT}545%g;
s%:8546%:${SIDE_PORT}546%g;
s%:6065%:${SIDE_PORT}065%g" $HOME/.side/config/app.toml
# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${SIDE_PORT}658%g;
s%:26657%:${SIDE_PORT}657%g;
s%:6060%:${SIDE_PORT}060%g;
s%:26656%:${SIDE_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${SIDE_PORT}656\"%;
s%:26660%:${SIDE_PORT}660%g" $HOME/.side/config/config.toml
(Optional) Pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.side/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.side/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.side/config/app.toml
(Optional) Disable indexer and enable prometheus
default indexer="kv"
default prometheus = false
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.side/config/config.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.side/config/config.toml
Create a service file
sudo tee /etc/systemd/system/sided.service > /dev/null <<EOF
[Unit]
Description=Side node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.side
ExecStart=$(which sided) start --home $HOME/.side
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable sided
sudo systemctl restart sided && sudo journalctl -u sided -f
Run from snapshot
Wait fo full sync (output "false")
sided status 2>&1 | jq
Create or recover wallet
!!! BACKUP YOUR SEED PHRASE !!!
sided keys add $WALLET
OR
sided keys add $WALLET --recover
Get tokens from faucet 🆓
get tokens from discord faucet channel or https://testnet.side.one/faucet
Set var for wallet and valoper addresses
WALLET_ADDRESS=$(sided keys show $WALLET -a)
VALOPER_ADDRESS=$(sided keys show $WALLET --bech val -a)
echo "export WALLET_ADDRESS="$WALLET_ADDRESS >> $HOME/.bash_profile
echo "export VALOPER_ADDRESS="$VALOPER_ADDRESS >> $HOME/.bash_profile
source $HOME/.bash_profile
Create Validator
sided tx staking create-validator \
--amount 1000000uside \
--from $WALLET \
--commission-rate 0.1 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--pubkey $(sided tendermint show-validator) \
--moniker "<MONIKER>" \
--identity "" \
--website "" \
--details "" \
--chain-id S2-testnet-2 \
--gas auto --fees 1000uside \
-y
!!! BACKUP YOUR priv_validator_key.json !!!
Useful commands ⚙️
node info
sided status 2>&1 | jq
logs
sudo journalctl -u sided -f
start service
sudo systemctl start sided
stop service
sudo systemctl stop sided
restart service
sudo systemctl restart sided
enable service
sudo systemctl enable sided
disable service
sudo systemctl disable sided
Check wallets list
Delete wallet
sided keys delete $WALLET
Check Balance
sided q bank balances $WALLET_ADDRESS
Withdraw all rewards
sided tx distribution withdraw-all-rewards --from $WALLET --chain-id S2-testnet-2 --gas auto --fees 1000uside
Withdraw rewards and commission from your validator
sided tx distribution withdraw-rewards $VALOPER_ADDRESS --from $WALLET --commission --chain-id S2-testnet-2 --gas auto --fees 1000uside -y
Delegate to Yourself
sided tx staking delegate $(sided keys show $WALLET --bech val -a) 1000000uside --from $WALLET --chain-id S2-testnet-2 --gas auto --fees 1000uside -y
Delegate
sided tx staking delegate <TO_VALOPER_ADDRESS> 1000000uside --from $WALLET --chain-id S2-testnet-2 --gas auto --fees 1000uside -y
Redelegate Stake to Another Validator
sided tx staking redelegate $VALOPER_ADDRESS <TO_VALOPER_ADDRESS> 1000000uside --from $WALLET --chain-id S2-testnet-2 --gas auto --fees 1000uside -y
Unbond
sided tx staking unbond $(sided keys show $WALLET --bech val -a) 1000000uside --from $WALLET --chain-id S2-testnet-2 --gas auto --fees 1000uside -y
Transfer Funds
sided tx bank send $WALLET_ADDRESS <TO_WALLET_ADDRESS> 1000000uside --gas auto --fees 1000uside -y
Validator Details
sided q staking validator $(sided keys show $WALLET --bech val -a)
Jailing info
sided q slashing signing-info $(sided tendermint show-validator)
Slashing parameters
sided q slashing params
Unjail validator
sided tx slashing unjail --from $WALLET --chain-id S2-testnet-2 --gas auto --fees 1000uside -y
Delete node 🗑️
sudo systemctl stop sided
sudo systemctl disable sided
sudo rm -rf /etc/systemd/system/sided.service
sudo rm $(which sided)
sudo rm -rf $HOME/.side
sed -i "/SIDE_/d" $HOME/.bash_profile