ADR 005: Genesis parameters
Status
Category | Status |
---|---|
Authors | Alexandr Kolesov, Ankur Banerjee, Alex Tweeddale |
ADR Stage | ACCEPTED |
Implementation Status | Implemented |
Start Date | 2021-09-15 |
Last Updated | 2022-12-08 |
Summary
The aim of this document is to define the genesis parameters that will be used in cheqd network testnet and mainnet.
Cosmos v0.44.3 parameters are described.
Context
Genesis consists of Tendermint consensus engine parameters and Cosmos app-specific parameters.
Tendermint consensus parameters
Tendermint requires genesis parameters to be defined for basic consensus conditions on any Cosmos network.
Block parameters
Parameter | Description | Mainnet | Testnet |
---|---|---|---|
| This sets the maximum size of total bytes that can be committed in a single block. This should be larger than | 200,000 (~200 KB) | 200,000 (~200 KB) |
| This sets the maximum gas that can be used in any single block. | 200,000 (~200 KB) | 200,000 (~200 KB) |
| Unused. This has been deprecated and will be removed in a future version of Cosmos SDK. | 1,000 (1 second) | 1,000 (1 second) |
Evidence parameters
Parameter | Description | Mainnet | Testnet |
---|---|---|---|
| Maximum age of evidence, in blocks. The basic formula for calculating this is: | 12,100 | 25,920 |
| Maximum age of evidence, in time. It should correspond with an app's "unbonding period". | 1,209,600,000,000,000 (expressed in nanoseconds, ~2 weeks) | 59,200,000,000,000 (expressed in nanoseconds, ~72 hours) |
| This sets the maximum size of total evidence in bytes that can be committed in a single block and should fall comfortably under | 50,000 (~ 50 KB) | 5,000 (~ 5 KB) |
Validator key parameters
Parameter | Description | Mainnet | Testnet |
---|---|---|---|
| Types of public keys supported for validators on the network. | Ed25519 | Ed25519 |
Cosmos SDK module parameters
Cosmos application is divided into a list of modules. Each module has parameters that help to adjust the module's behaviour.
auth
module
auth
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| Maximum number of characters in the memo field | 512 | 512 |
| Max number of signatures | 7 | 7 |
| Gas cost of transaction byte | 10 | 10 |
| Cost of | 590 | 590 |
| Cost of | 1,000 | 1,000 |
bank
module
bank
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| The default send enabled value allows send transfers for all coin denominations | True | True |
cheqd
module (DID module)
cheqd
module (DID module)Parameter | Description | Mainnet | Testnet |
---|---|---|---|
| The specified transaction fee for creating a Decentralized Identifier (DID) on the cheqd network | 50,000,000,000 ncheq (50 CHEQ) | 50,000,000,000 ncheq (50 CHEQ) |
| The specified transaction fee for updating an existing Decentralized Identifier (DID) on the cheqd network | 25,000,000,000 ncheq (25 CHEQ) | 25,000,000,000 ncheq (25 CHEQ) |
| The specified transaction fee for deactivating an existing Decentralized Identifier (DID) on the cheqd network | 10,000,000,000 ncheq (10 CHEQ) | 10,000,000,000 ncheq (10 CHEQ) |
| The percentage of the transaction fee for | 50% | 50% |
crisis
module
crisis
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| The fee is used to verify the invariant(s) | 10,000,000,000,000 ncheq (10,000 CHEQ) | 10,000,000,000,000 ncheq (10,000 CHEQ) |
distribution
module
distribution
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| The percent of rewards that goes to the community fund pool | 0.02 (2%) | 0.02 (2%) |
| Base reward that proposer of a block receives | 0.01 (1%) | 0.01 (1%) |
| Bonus reward that proposer gets for proposing block. This depends on the number of pre-commits included to the block | 0.04 (4%) | 0.04 (4%) |
| Whether withdrawal address can be changed or not. By default, it's the delegator's address. | True | True |
gov
module
gov
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| |||
| The minimum deposit for a proposal to enter the voting period. | [{ "denom": "ncheq", "amount": "8,000,000,000,000" }] (8,000 cheq) | [{ "denom": "ncheq", "amount": "8,000,000,000,000" }] (8,000 cheq) |
| The maximum period for Atom holders to deposit on a proposal. Initial value: 2 months. | 604,800s (1 week) | 172,800s (48 hours) |
| |||
| The defined period for an on-ledger vote from start to finish. | 259,200s (3 days) | 86.40s (1.2 minutes) |
| |||
| Minimum percentage of total stake needed to vote for a result to be considered valid. | 0.334 (33.4%) | 0.334 (33.4%) |
| Minimum proportion of Yes votes for proposal to pass. | 0.5 (50%) | 0.5 (50%) |
| The minimum value of veto votes to total votes ratio for proposal to be vetoed. Default value: 1/3. | 0.334 (33.4%) | 0.334 (33.4%) |
mint
module
mint
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| Name of the cheq smallest denomination | ncheq | ncheq |
| Maximum inflation rate change per year. In Cosmos Hub they use | 0.045 (4.5%) | 0.045 (4.5%) |
| Inflation aims to this value if | 0.04 (4%) | 0.04 (4%) |
| Inflation aims to this value if | 0.01 (1%) | 0.01 (1%) |
| Percentage of bonded tokens at which inflation rate will neither increase nor decrease | 0.60 (60%) | 0.60 (60%) |
| Number of blocks generated per year | 3,155,760 (1 block every ~10 seconds) | 3,155,760 (1 block every ~10 seconds) |
resource
module
resource
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| The specified transaction fee for creating an image as a DID-Linked Resource on the cheqd network | 10,000,000,000 ncheq (10 CHEQ) | 10,000,000,000 ncheq (10 CHEQ) |
| The specified transaction fee for creating a JSON file as a DID-Linked Resource on the cheqd network | 2,500,000,000 ncheq (2.5 CHEQ) | 2,500,000,000 ncheq (2.5 CHEQ) |
| The specified transaction fee for creating any other type of DID-Linked Resource on the cheqd network, other than images or JSON files | 5,000,000,000 ncheq (5 CHEQ) | 5,000,000,000 ncheq (5 CHEQ) |
| The percentage of the transaction fee for | 50% | 50% |
slashing
module
slashing
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| Number of blocks a validator can miss signing before it is slashed. | 25,920 (expressed in blocks, equates to 259,200 seconds or ~3 days) | 17,280 (expressed in blocks, equates to 172,800 seconds or ~2 days) |
| This percentage of blocks must be signed within the window. | 0.50 (50%) | 0.50 (50%) |
| The minimal time validator have to stay in jail | 600s (~10 minutes) | 600s (~10 minutes) |
| Slashed amount as a percentage for a double sign infraction | 0.05 (5%) | 0.05 (5%) |
| Slashed amount as a percentage for downtime | 0.01 (1%) | 0.01 (1%) |
staking
module
staking
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| A delegator must wait this time after unbonding before tokens become available | 1,210,000s (~2 weeks) | 259,200s (~3 days) |
| The maximum number of validators in the network | 125 | 125 |
| Max amount of unbound/redelegation operations in progress per account | 7 | 7 |
| Amount of unbound/redelegate entries to store | 10,000 | 10,000 |
| Denomination used in staking | ncheq | ncheq |
ibc
module
ibc
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| Maximum expected time per block, used to enforce block delay. This parameter should reflect the largest amount of time that the chain might reasonably take to produce the next block under normal operating conditions. A safe choice is 3-5x the expected time per block. | 30,000,000,000 (expressed in nanoseconds, ~ 30 seconds) | 30,000,000,000 (expressed in nanoseconds, ~ 30 seconds) |
| Defines the list of allowed client state types. We allow connections from other chains using the Tendermint client, and with light clients using the Solo Machine client. | [ "06-solomachine", "07-tendermint" ] | [ "06-solomachine", "07-tendermint" ] |
ibc-transfer
module
ibc-transfer
moduleParameter | Description | Mainnet | Testnet |
---|---|---|---|
| Enables or disables all cross-chain token transfers from this chain | true | true |
| Enables or disables all cross-chain token transfers to this chain | true | true |
Decision
The parameters above were agreed separate the cheqd mainnet and testnet parameters. We have bolded the testnet parameters that differ from mainnet.
Consequences
Backward Compatibility
The token denomination has been changed to make the smallest denomination 10^-9 CHEQ (= 1 ncheq) instead of 1 CHEQ. This is a breaking change from the earliest versions of the cheqd testnet that which required issuing new tokens to be transferred and issued to testnet node operators.
Positive
Inflation allows fees to be collected from block rewards in addition to transaction fees.
In production/mainnet, parameters can only be changed via a majority vote without veto defeat according to the cheqd network governance principles. This allows for more democratic governance frameworks to be created for a self-sovereign identity network.
Negative
Existing node operators will need to re-establish staking with new staking denomination and staking parameters.
Neutral
Unbonding period, and deposit period have all been reduced to 2 weeks to balance the speed at which decisions can be reached vs giving enough time to validators to participate.
References
Last updated