Manual Installation
Recommended Hardware: 8 Cores, 16GB RAM, 250GB of storage (NVME)
# install dependencies, if needed
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
Node Name: my_node
Wallet: my_wallet
Port: 26
# install go, if needed
cd $HOME
VER="1.21.13"
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
echo "export WALLET="my_wallet"" >> $HOME/.bash_profile
echo "export MONIKER="my_node"" >> $HOME/.bash_profile
echo "export GOVGEN_CHAIN_ID="govgen-1"" >> $HOME/.bash_profile
echo "export GOVGEN_PORT="26"" >> $HOME/.bash_profile
source $HOME/.bash_profile
# download binary
cd $HOME
rm -rf govgen
git clone https://github.com/atomone-hub/govgen.git
cd govgen
git checkout v1.0.0
make install
# config and init app
govgend init $MONIKER --chain-id $GOVGEN_CHAIN_ID
sed -i \
-e "s/chain-id = .*/chain-id = \"govgen-1\"/" \
-e "s/keyring-backend = .*/keyring-backend = \"os\"/" \
-e "s/node = .*/node = \"tcp:\/\/localhost:${GOVGEN_PORT}657\"/" $HOME/.govgen/config/client.toml
# download genesis and addrbook
wget -O $HOME/.govgen/config/genesis.json https://tecnodes.network/chains/mainnet/govgen/genesis.json
wget -O $HOME/.govgen/config/addrbook.json https://tecnodes.network/chains/mainnet/govgen/addrbook.json
# set seeds and peers
SEEDS="f19d9e0f8d48119aa4cafde65de923ae2c29181a@peer.govgen.tecnodes.network"
PEERS="ed0e36c57122184ab05b6c635b2f2adf592bfa0c@peer.govgen.tecnodes.network:61657,5c1b408eb2bd0e4e285daba059a71c3423a16ae9@188.245.125.107:26656,e6ccf37182345ad048cf60335ab3dc1a5512baff@13.59.146.253:26656,d3adcf9eee8665ee2d3108f721b3613cdd18c3a3@23.227.223.49:26656,da165aaeac3adbc9845879e06f336c2668c5d915@65.21.214.84:9756,4f0855bd3cac712f2292dc39e1b8a3b5ffb68584@149.50.102.86:36656,4ef48d2cc03b332f9a711fc65dc0453839f9040d@8.52.153.92:61656,f3c3918006dba796ed67715eba9dea2bcae083e9@125.131.208.67:12002,522826623d65d27ef3f7db8a5259d003be5a93d3@65.108.229.19:26666,dc92e7b8ed2aafc34c400405916569aad0d990f3@169.155.44.68:26656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
-e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.govgen/config/config.toml
# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${GOVGEN_PORT}317%g;
s%:8080%:${GOVGEN_PORT}080%g;
s%:9090%:${GOVGEN_PORT}090%g;
s%:9091%:${GOVGEN_PORT}091%g;
s%:8545%:${GOVGEN_PORT}545%g;
s%:8546%:${GOVGEN_PORT}546%g;
s%:6065%:${GOVGEN_PORT}065%g" $HOME/.govgen/config/app.toml
# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${GOVGEN_PORT}658%g;
s%:26657%:${GOVGEN_PORT}657%g;
s%:6060%:${GOVGEN_PORT}060%g;
s%:26656%:${GOVGEN_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${GOVGEN_PORT}656\"%;
s%:26660%:${GOVGEN_PORT}660%g" $HOME/.govgen/config/config.toml
# config pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.govgen/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.govgen/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.govgen/config/app.toml
# set minimum gas price, enable prometheus and disable indexing
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.001uatone"|g' $HOME/.govgen/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.govgen/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.govgen/config/config.toml
# create service file
sudo tee /etc/systemd/system/govgend.service > /dev/null < /dev/null; then
curl https://tecnodes.network/chains/mainnet/govgen/latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.govgen
else
echo "no snapshot found"
fi
# enable and start service
sudo systemctl daemon-reload
sudo systemctl enable govgend
sudo systemctl restart govgend && sudo journalctl -u govgend -fo cat
Create wallet
# to create a new wallet, use the following command. don’t forget to save the mnemonic
govgend keys add $WALLET
# to restore exexuting wallet, use the following command
govgend keys add $WALLET --recover
# save wallet and validator address
WALLET_ADDRESS=$(govgend keys show $WALLET -a)
VALOPER_ADDRESS=$(govgend 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
# check sync status, once your node is fully synced, the output from above will print "false"
govgend status 2>&1 | jq
# before creating a validator, you need to fund your wallet and check balance
govgend query bank balances $WALLET_ADDRESS
Create validator
govgend tx staking create-validator \
--amount 1000000uatone \
--from $WALLET \
--commission-rate 0.1 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--pubkey $(govgend tendermint show-validator) \
--moniker $MONIKER \
--identity "" \
--details "Lets work" \
--chain-id govgen-1 \
--gas auto --gas-adjustment 1.5 \
-y