Skip to main content

Coordinator Guide

Coordinators organize and launch new chains on Ignite Chain.


Publish a chain

The first step in the process of a chain launch is for the coordinator to publish the intention of launching a chain. The publish command publishes the intention of launching a chain on Ignite from a project git repository.

ignite n chain publish https://github.com/ignite/example

Output

✔ Source code fetched
✔ Blockchain set up
✔ Chain's binary built
✔ Blockchain initialized
✔ Genesis initialized
✔ Network published
⋆ Launch ID: 3

LaunchID identifies the published blockchain on Ignite blockchain.

Specify a initial genesis

During coordination, new genesis accounts and genesis validators are added into the chain genesis. The initial genesis where these accounts are added is by default the default genesis generated by the chain binary.

The coordinator can specify a custom initial genesis for the chain launch with the --genesis flag. This custom initial genesis can contain additional default genesis accounts and custom params for the chain modules.

A URL must be provided for the --genesis-url flag. This can either directly point to a JSON genesis file or a tarball containing a genesis file.

ignite n chain publish https://github.com/ignite/example --genesis-url https://raw.githubusercontent.com/ignite/example/master/genesis/gen.json

Approve validator requests

When coordinating for a chain launch, validators send requests. These represent requests to be part of the genesis as a validator for the chain.

The coordinator can list these requests:

ignite n request list 3

NOTE: here "3" is specifying the LaunchID.

Output

Id  Status   Type    Content
1 APPROVED Add Genesis Account spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 100000000stake
2 APPROVED Add Genesis Validator [email protected]:26656, spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake
3 PENDING Add Genesis Account spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake
4 PENDING Add Genesis Validator [email protected]:26656, spn1daefnhnupn85e8vv0yc5epmnkcr5epkqncn2le, 95000000stake

The coordinator can either approve or reject these requests.

To approve the requests:

ignite n request approve 3 3,4

NOTE: when selecting a list of requests, both syntaxes can be used: 1,2,3,4 and 1-3,4.

Output

✔ Source code fetched
✔ Blockchain set up
✔ Requests format verified
✔ Blockchain initialized
✔ Genesis initialized
✔ Genesis built
✔ The network can be started
✔ Request(s) #3, #4 verified
✔ Request(s) #3, #4 approved

Ignite CLI automatically verifies that the requests can be applied for the genesis, the approved requests don't generate an invalid genesis.

To reject the requests:

ignite n request reject 3 3,4

Output

✔ Request(s) #3, #4 rejected

Initiate the launch of a chain

When enough validators are approved for the genesis and the coordinator deems the chain ready to be launched, the coordinator can initiate the launch of the chain.

This action will finalize the genesis of chain, meaning that no new requests can be approved for the chain.

This action also sets the launch time (or genesis time) for the chain, the time when the blockchain network will go live.

ignite n chain launch 3

Output

✔ Chain 3 will be launched on 2022-10-01 09:00:00.000000 +0200 CEST

This example output shows the launch time of the chain on the network.

Set a custom launch time

By default, the launch time will be set to the earliest date possible. In practice, the validators should have time to prepare their node for the network launch. If a validator fails to be online, they can get jailed for inactivity in the validator set.

The coordinator can specify a custom time with the --launch-time flag.

ignite n chain launch --launch-time 2022-01-01T00:00:00Z