Skip to main content

Setup your node

Install pre requis

sudo apt-get update && sudo apt upgrade -y 
sudo apt-get install make build-essential gcc git jq chrony -y

Install go

sudo rm -rf /usr/local/go
wget https://golang.org/dl/go1.19.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
rm go1.19.1.linux-amd64.tar.gz

Setting up go

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

Install Node

Install the Cosmos Hub node binary by running the following commands

#from $HOME dir 
git clone https://github.com/cosmos/gaia
cd gaia
git fetch
git checkout v10.0.2
make install

To confirm that the node is well installed

gaiad version

#v10.0.2

Setting up the Node

Initialization node

Please choose your MONIKER name and replace it in the next command, it will represent your node

gaiad init MONIKER_NAME --chain-id cosmoshub-4

This will generate severals files in ~/.gaia/config/

  • node_key.json
  • genesis.json
  • priv_validator_key.json

Download and replace the genesis file

rm ~/.gaia/config/genesis.json
wget https://raw.githubusercontent.com/cosmos/mainnet/master/genesis/genesis.cosmoshub-4.json.gz
gzip -d genesis.cosmoshub-4.json.gz
mv genesis.cosmoshub-4.json ~/.gaia/config

Set minimum gas prices

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025uatom\"/" ~/.gaia/config/app.toml

Node connexion

In order to connect the node you can either use seeds, lives peers or address book.

Set Seeds

SEEDS = ba3bacc714817218562f743178228f23678b2873@public-seed-node.cosmoshub.certus.one:26656,20e1000e88125698264454a884812746c2eb4807@seeds.lavenderfive.com:14956,ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:14956
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" $HOME/.gaia/config/config.toml

Setup service file

[Unit]
Description="cosmos node"


[Service]
User=USER
ExecStart=$(which gaiad) start
Restart=always
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target

If you'd like to synchronise a node from a snapshot check the snapshot part

Start service file

systemctl daemon-reload
systemctl start cosmos.service | journalctl -u cosmos.service -f