How to Join Cosmos Testnet Gaia-9001

IRISnet
3 min readNov 11, 2018

--

Cosmos team planned to start Gaia-9000 testnet with Gaiad built upon Cosmos-SDK v0.25.0 in previous announcement. But, since there are too many breaking changes and it’s difficult to provide a feature-complete software in one single release. In the end, the team used Cosmos-SDK v0.26.0 to bootstrap Gaia-9000 testnet. The breaking changes in this release are explained in this blog.

Centralized Bootstrap Validatorset

In previous iteration of Gaia testnet, the genesis file is based on a snapshot of previous testnet. In this way, we achieved a distributed form of bootstrap. The advantage of this kind is to engage community members more. But in Gaia-9000 it’s impossible to export validatorset info from previous. So, the team went with exporting the balance state and giving everyone 50 steaks. Cosmos team launched a four-node swarm first, then everyone could claim their candidacy later.

Gaia-9000

The genesis file for Gaia-9000 was published Friday. But, it was turned out to be wrong since the new gentx process needs all genesis validators to sign the bonding transactions and the signatures’s chain-id mismatched. The team quickly fixed the generation process and Gaia-9000 finally went live.

However, we still discover two major bugs in this release:

  • Prometheus is broken
  • Seed nodes don’t sync

In summary, the network was stalled! The peer exchanging issue was critical and the Addressbook got entries of node without a Peer-ID. This is a Tendermint issue. The team made some patches and fixed the Prometheus issue. Seed node mode can function normally again. A new release candidate was made and more details on this PR and the team published a new genesis file.

R.I.P Gaia-9000!

How to join Gaia-9001

  • Install the correct version of Gaiad
git checkout --v0.26.1-rc1
make all

Verify Gaiad Version

0.26.1-rc1-0-gbb54a0de

Download Genesis File

wget https://raw.githubusercontent.com/cosmos/testnets/master/gaia-9001/genesis.json

Configure the Node

persistent_peers="6a04069a2736f096404df2bbc31d7c2807c080c0@gaia-validator1.interblock.io:26656,aa3464017cd5abd9ff0204f2e161d66f9442db29@gaia-validator2.interblock.io:26656,f7290d305237b3fef01a59a4919aa6b399234983@gaia-validator3.interblock.io:26656,a966b0806aca7e62d5c43d8bd09425aecdcf44f2@gaia-validator4.interblock.io:26656"seeds = "7c8b8fd03577cd4817f5be1f03d506f879df98d8@gaia-seed1.interblock.io:26656,a28737ff02391a6e00a1d3b79befd57e68e8264c@gaia-seed2.interblock.io:26656,987ffd26640cd03d08ed7e53b24dfaa7956e612d@gaia-seed3.interblock.io:26656,09dafbaa69899c220d2651f51205eefe9f78737a@gaia-seed4.interblock.io:26656"

After these steps, you could start your node with:

gaiad start

Common Issue

  • Configuration File

In previous release, the default value of commit-timeout was wrong. So, make sure your configuration is the following:

timeout_propose = “3s”
timeout_propose_delta = “500ms”
timeout_prevote = “1s”
timeout_prevote_delta = “500ms”
timeout_precommit = “1s”
timeout_precommit_delta = “500ms”
timeout_commit = “5s”
  • Client Query

This version of Gaiacli introduce light-client proof. By default, the light client is not under trust-mode. So if you execute:

gaiacli query signing-info $(gaiad tendermint show-validator) --chain-id gaia-9001

You could run into the following error

ERROR: Invalid commit -- insufficient old voting power: got 200, needed 267

More in this issue.

To by pass this error, you should add trust-node= true in your command.

Useful Links

  • Explorers
  • Faucet

Coming soon ^^

--

--

IRISnet

Built with Cosmos-SDK, IRISHUB enables cross-chain interoperability while providing modules to support distributed business systems.