github.com/spf13/viper's recent releases introduced a semantic
change in some public API such as viper.IsSet(), which have
broken some of our flags checks. Instead of checking whether
users have changed a flag's default value we should rely on such
defaults and adjust runtime behaviour accordingly. In order to do
so, it's important that we pick sane defaults for all our flags.
The --pruning flag and configuration option now allow for a
fake custom strategy. When users elect custom, then the
pruning-{keep,snapshot}-every options are interpreted and
parsed; else they're ignored.
Zero is pruning-{keep,snapshot}-every default value. When
users choose to set a custom pruning strategy they are
signalling that they want more fine-grainted control, therefore
it's legitimate to expect them to know what they are doing and
enter valid values for both options.
Ref #5964
List of Modules
Here are some production-grade modules that can be used in Cosmos SDK applications, along with their respective documentation:
- Auth - Authentication of accounts and transactions for Cosmos SDK application.
- Bank - Token transfer functionalities.
- Governance - On-chain proposals and voting.
- Staking - Proof-of-stake layer for public blockchains.
- Slashing - Validator punishment mechanisms.
- Distribution - Fee distribution, and staking token provision distribution.
- Crisis - Halting the blockchain under certain circumstances (e.g. if an invariant is broken).
- Mint - Creation of new units of staking token.
- Params - Globally available parameter store.
- Supply - Total token supply of the chain.
To learn more about the process of building modules, visit the building modules reference documentation.