Lumera Testnet

Minimum Hardware

NODE CPU RAM SSD OS
pchaind 8 16 200 GB Ubuntu 22.04 LTS

Install Dependencies

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

Install Go

				
					cd $HOME
VER="1.22.5"
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
				
			

Download Binary

				
					wget https://github.com/pushchain/push-chain-node/releases/download/v0.0.15/push-chain_0.0.15_linux_amd64.tar.gz
tar -xzvf push-chain_0.0.15_linux_amd64.tar.gz
chmod +x $HOME/bin/pchaind
mv $HOME/bin/pchaind $HOME/go/bin/
pchaind version  --long | grep -e version -e commit
				
			

Config and Init App

				
					pchaind init testnode --chain-id push_42101-1
				
			

Download Genesis and Addrbook

				
					curl -Ls https://ss-t.pushchain.nodestake.org/genesis.json > $HOME/.pchain/config/genesis.json 
curl -Ls https://ss-t.pushchain.nodestake.org/addrbook.json > $HOME/.pchain/config/addrbook.json 
				
			

Pruning, Gas and Prometheus

				
					PORT=112
sed -i -e "s%:26657%:${PORT}57%" $HOME/.pchain/config/client.toml
sed -i -e "s%:26658%:${PORT}58%; s%:26657%:${PORT}57%; s%:6060%:${PORT}60%; s%:26656%:${PORT}56%; s%:26660%:${PORT}60%" $HOME/.pchain/config/config.toml
sed -i -e "s%:1317%:${PORT}17%; s%:9090%:${PORT}90%; s%:8545%:${PORT}45%; s%:8546%:${PORT}46%; s%:6065%:${PORT}65%" $HOME/.pchain/config/app.toml

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"2500000000upc\"/" $HOME/.pchain/config/app.toml

sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "20"|' \
$HOME/.pchain/config/app.toml

sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.pchain/config/config.toml
				
			

Create Service File

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

[Service]
User=$USER
ExecStart=$(which pchaind) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
				
			

Start

				
					sudo systemctl daemon-reload
sudo systemctl enable pchaind
sudo systemctl restart pchaind && sudo journalctl -u pchaind -fo cat
				
			

Snapshot

				
					sudo apt update
sudo apt-get install snapd lz4 -y
sudo systemctl stop pchaind
cp $HOME/.pchain/data/priv_validator_state.json $HOME/.pchain/priv_validator_state.json.backup
rm -rf $HOME/.pchain/data
pchaind tendermint unsafe-reset-all --home ~/.pchain/ --keep-addr-book    

SNAP_NAME=$(curl -s https://ss-t.pushchain.nodestake.org/ | egrep -o ">20.*\.tar.lz4" | tr -d ">")
curl -o - -L https://ss-t.pushchain.nodestake.org/${SNAP_NAME}  | lz4 -c -d - | tar -x -C $HOME/.pchain
mv $HOME/.pchain/priv_validator_state.json.backup $HOME/.pchain/data/priv_validator_state.json

sudo systemctl restart pchaind
journalctl -u pchaind -f
				
			

Create and Restore Address

				
					pchaind keys add wallet
# Restore wallet
pchaind keys add wallet --recover
# List
pchaind keys list
				
			

Check Balance

				
					pchaind q bank balances $(pchaind keys show wallet -a)
				
			

Create Validator

				
					pchaind comet show-validator

cat > $HOME/.pchaind/validator.json << EOF
{
  "pubkey": {
    "@type": "/cosmos.crypto.ed25519.PubKey",
    "key": "$(pchaind comet show-validator | jq -r .key)"
  },
  "amount": "1000000000000000000arai",
  "moniker": " ",
  "identity": " ",
  "website": " ",
  "security": " ",
  "details": " ",
  "commission-rate": "0.1",
  "commission-max-rate": "0.2",
  "commission-max-change-rate": "0.05",
  "min-self-delegation": "1"
}
EOF

pchaind tx staking create-validator /root/.pchaind/validator.json --from wallet --chain-id raitestnet_77701-1 --gas-prices=2500000000arai --gas=300000 --yes


				
			

Delegate to own

				
					pchaind tx staking delegate $(pchaind keys show wallet --bech val -a) 100000000000000000arai --from wallet --chain-id raitestnet_77701-1 --gas-prices=3500000000arai --gas-adjustment=1.5 --gas=auto --keyring-backend test --yes

				
			

Unjail Validator

				
					pchaind tx slashing unjail --from wallet --chain-id raitestnet_77701-1 --gas-prices=2500000000arai --gas=300000 --yes
				
			

Vote

				
					pchaind tx gov vote 1 yes --from wallet--chain-id raitestnet_77701-1 --gas-prices=2500000000arai --gas=300000 --yes
				
			

Upgrade

				
					# 1. Stop the node
sudo systemctl stop pchaind

# 2. Download new binary
cd $HOME
rm -rf ~/bin
wget -O push.tar.gz https://github.com/pushchain/push-chain-node/releases/download/v0.0.28/push-chain_0.0.28_linux_amd64.tar.gz
tar -xvf push.tar.gz
chmod +x ~/bin/pchaind
sudo mv ~/bin/pchaind $HOME/go/bin/
rm push.tar.gz

# 3. Copy binary to Cosmovisor
cp $(which pchaind) $HOME/.pchain/cosmovisor/genesis/bin/pchaind

# 4. Update peers
PEERS="091f9702302427c6b2cc5eb1d5322c1b2e4eb412@152.53.138.4:17656,1160dc307b84b47e430cc23a4cb266d4d767e233@65.109.35.107:30656,d7fe39a89a2ab1d9a8207121c6a1f8e11f79ac97@34.9.151.27:26656,374573900e4365bea5d946dd69c7343e56e4f375@34.72.243.200:26656,fab943f24e42949c021c8bfd6da2bfd13fce5a38@34.61.62.242:26656,6751a6539368608a65512d1a4b7ede4a9cd5004f@136.112.142.137:26656,d2a1f2a83858d483ed05c5f094a65d1dd463de78@34.57.236.39:26656,9eb620fd4949b64d768f7c064e6d7e25804f87e6@134.249.78.12:26356,6531c80081c30afe3c4adb57c57721d16a3a405c@148.113.178.57:26656,cc52e504b8872537bb1b9aea8990f930e364156a@148.251.66.35:38656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.pchain/config/config.toml

# 5. Restart the node
sudo systemctl restart pchaind

# 6. Check version
pchaind version

# 7. Check logs
sudo journalctl -u pchaind -fo cat --lines 20
				
			

Delete node

				
					sudo systemctl stop pchaind
sudo systemctl disable pchaind
sudo rm /etc/systemd/system/pchaind.service
sudo systemctl daemon-reload
rm -f $(which pchaind)
rm -rf .pchaind