Testnet
Gno.land
- Chain ID
- Version
- Go
For Ubuntu 22.04 or later, following the network's VALIDATOR.md in the gno repo: the version the network runs now, its required config and its genesis checksum. Syncing from genesis stops at every past upgrade height; restart the node and it continues. After registering, a GovDAO proposal adds you to the validator set.
01Install tools
sudo apt update && sudo apt upgrade -y sudo apt install -y curl git wget jq make gcc build-essential zstd tmux htop02Install Go
cd $HOME VER="<go-version>" 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 $HOME/.bash_profile ] && touch $HOME/.bash_profile echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile source $HOME/.bash_profile mkdir -p $HOME/go/bin go version03Build the binary
cd $HOME rm -rf gno git clone https://github.com/gnolang/gno.git gno cd gno git checkout <version> make -C gno.land VERSION=<version> install.gnoland install.gnokey gnoland version04Set variables
echo 'export GNOROOT=$HOME/gno' >> $HOME/.bash_profile echo 'export WALLET="wallet"' >> $HOME/.bash_profile echo 'export MONIKER="Your-Moniker"' >> $HOME/.bash_profile echo 'export GNO_CHAIN_ID="<chain-id>"' >> $HOME/.bash_profile source $HOME/.bash_profile05Initialize the node
gnoland config init --config-path $HOME/gnoland-data/config/config.toml gnoland secrets init --data-dir $HOME/gnoland-data/secrets06Chain-wide config
# See misc/deployments/onyx.gno.land/VALIDATOR.md in gnolang/gno07Your node's config
gnoland config set --config-path $HOME/gnoland-data/config/config.toml moniker "$MONIKER" gnoland config set --config-path $HOME/gnoland-data/config/config.toml p2p.external_address "$(wget -qO- eth0.me):26656" gnoland config set --config-path $HOME/gnoland-data/config/config.toml p2p.pex true08Download and verify the genesis
wget -O $HOME/gnoland-data/genesis.json https://github.com/gnolang/gno/releases/download/chain/onyx/genesis.json echo "<sha256> $HOME/gnoland-data/genesis.json" | sha256sum -c -09Create the service
sudo tee /etc/systemd/system/gnoland.service > /dev/null << EOF [Unit] Description=Gno.land node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME Environment="GNOROOT=$HOME/gno" ExecStart=$(which gnoland) start --chainid $GNO_CHAIN_ID --genesis $HOME/gnoland-data/genesis.json --data-dir $HOME/gnoland-data --skip-genesis-sig-verification Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable gnoland10Start the node
sudo systemctl restart gnoland && sudo journalctl -fu gnoland -o cat11Check sync
curl -s localhost:26657/status | jq .result.sync_info12Check the validator key
gnoland secrets get validator_key --data-dir $HOME/gnoland-data/secrets13Add a new key
gnokey add $WALLET14Register as a validator candidate
gnokey maketx call \ --pkgpath gno.land/r/gnops/valopers \ --func Register \ --args "$MONIKER" \ --args "<description>" \ --args "<cloud|on-prem|data-center>" \ --args "<operator g1... address of $WALLET>" \ --args "<gpub1... validator public key>" \ --gas-fee 1000000ugnot --gas-wanted 50000000 \ --chainid $GNO_CHAIN_ID \ --remote https://rpc.onyx.testnets.gno.land \ --broadcast \ $WALLET