Genesis File

The Genesis file (~/.iris/config/genesis.json) is the basis for the entire network initialization, which contains most info for creating a Genesis block (such as ChainID, consensus params, app state, initial account balances, parameters for each module, and validators info). The genesis file sets the initial parameters of any new IRIS network. Establishing a robust social consensus over the genesis file is critical to start a network.

Each genesis state starts with a list of account balances. Social consensus on these account balances must be bootstrapped from some external process be it events on another blockchain to a token generation event.

Basic State

  • genesis_time The time to launch
  • chain_id Blockchain’s ID
  • initial_height The height to init

Consensus Params

  • block
    • max_bytes The max size of a block.
    • max_gas The maximum gas quantity of a block. Its default value is -1 which means no gas limit. If the accumulation of gas consumption exceeds the block gas limit, the transaction and all subsequent transactions in the same block will fail to deliver.
    • time_iota_ms Minimum time increment between consecutive blocks (in milliseconds).
  • evidence The lifecycle of deception evidence in the block
    • max_age_num_blocks Max age of evidence, in blocks.
    • max_age_duration Max age of evidence, in time.
    • max_bytes The maximum size of total evidence in bytes that can be committed in a single block.
  • validator The information of validator
    • pub_key_types The public key types validators can use.

App State

  • auth Params related to the system

  • bank Params related to bank

  • capability Params related to capability

  • coinswap Params related to coinswap

  • crisis Params related to crisis

  • distribution Params related to distribution & commission

  • evidence Params related to evidence

  • genutil Params related to genutil

  • gov Params related to on-chain governance

  • guardian Params related to guardian

  • htlc Params related to htlc

  • ibc Params related to ibc

  • nft Params related to nft

  • mint Params related to inflation

  • oracle Params related to oracle

  • params Params related to params

  • random Params related to random

  • record Params related to record

  • service Params related to service

  • slashing Params related to slashing validators

  • staking Params related to staking

  • token Params related to token

  • transfer Params related to transfer

  • upgrade Params related to upgrade

  • vesting Params related to vesting

Parameters that can be governed: Gov Parameters

Gentxs

Gentxs contains the transaction set of creating validators in genesis block. The IRIShub provides robust tools for bootstrapping the identities that will start chain via the gen-tx process. gen-tx or a Genesis Transaction is cryptographically signed transactions that are executed during chain initialization that generate a starting set of validators. The gen-txs are artifacts that prove that the holders of accounts consent in launching the network and that they put capital at risk in the process.