Installation

Setting up your validator node has never been so easy. Get your validator running in minutes by following step by step instructions.

**Chain ID**: selfchain-testnet | **Latest Version Tag**: v1.0.1 | **Custom Port**: 13

echo "export NODENAME=Yournodename" >> $HOME/.bash_profile
echo "export WALLET=wallet" >> $HOME/.bash_profile
echo "export CHAIN_ID=selfchain-testnet" >> $HOME/.bash_profile
echo "export CUSTOM_PORT="13"" >> $HOME/.bash_profile
source $HOME/.bash_profile

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl build-essential git wget jq make gcc tmux net-tools ccze -y

Install Go

cd $HOME
VER="1.23.1"
wget "https://golang.org/dl/go1.23.1.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go1.23.1.linux-amd64.tar.gz"
rm "go1.23.1.linux-amd64.tar.gz"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

Download and build binaries

cd $HOME
wget https://server-1.ruangnode.com/testnet/selfchain/selfchaind-v1.0.1
mv selfchaind-v1.0.1 selfchaind
chmod +x selfchaind
mv selfchaind $HOME/go/bin/selfchain

Init app

selfchaind init Yournodename --chain-id selfchain-testnet

Download configuration

cd $HOME
wget -O $HOME/.selfchain/config/genesis.json https://server-1.ruangnode.com/testnet/selfchain/genesis.json
wget -O $HOME/.selfchain/config/addrbook.json https://server-1.ruangnode.com/testnet/selfchain/addrbook.json
SEEDS=""
PEERS="[email protected]:13656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.selfchain/config/config.toml
# set custom ports in app.toml
sed -i.bak -e "s%:1317%:$\{CUSTOM_PORT}317%g;
s%:8080%:${CUSTOM_PORT}080%g;
s%:9090%:${CUSTOM_PORT}090%g;
s%:9091%:${CUSTOM_PORT}091%g;
s%:8545%:${CUSTOM_PORT}545%g;
s%:8546%:${CUSTOM_PORT}546%g;
s%:6065%:${CUSTOM_PORT}065%g" $HOME/.selfchain/config/app.toml
# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${CUSTOM_PORT}658%g;
s%:26657%:${CUSTOM_PORT}657%g;
s%:6060%:${CUSTOM_PORT}060%g;
s%:26656%:${CUSTOM_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${CUSTOM_PORT}656\"%;
s%:26660%:${CUSTOM_PORT}660%g" $HOME/.selfchain/config/config.toml

Disable indexing

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.selfchain/config/config.toml

Config pruning

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.selfchain/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.selfchain/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.selfchain/config/app.toml

Set minimum gas price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.005uself"|g' $HOME/.selfchain/config/app.toml

Create service

sudo tee /etc/systemd/system/selfchaind.service > /dev/null <<EOF2
[Unit]
Description=selfchaind Node
After=network-online.target

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

[Install]
WantedBy=multi-user.target
EOF2

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable selfchaind
sudo systemctl restart selfchaind && sudo journalctl -u selfchaind -f -o cat

Last updated

Was this helpful?