Merge PR #4041: Manual for the Crisis Module
This commit is contained in:
commit
7f1b46ecc1
|
@ -55,7 +55,7 @@ func main() {
|
||||||
|
|
||||||
// prepare and add flags
|
// prepare and add flags
|
||||||
executor := cli.PrepareBaseCmd(rootCmd, "GA", app.DefaultNodeHome)
|
executor := cli.PrepareBaseCmd(rootCmd, "GA", app.DefaultNodeHome)
|
||||||
rootCmd.Flags().BoolVar(&assertInvariantsBlockly, flagAssertInvariantsBlockly,
|
rootCmd.PersistentFlags().BoolVar(&assertInvariantsBlockly, flagAssertInvariantsBlockly,
|
||||||
false, "Assert registered invariants on a blockly basis")
|
false, "Assert registered invariants on a blockly basis")
|
||||||
err := executor.Execute()
|
err := executor.Execute()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -147,6 +147,36 @@ If you plan to start a new network from the exported state, export with the `--f
|
||||||
gaiad export --height [height] --for-zero-height > [filename].json
|
gaiad export --height [height] --for-zero-height > [filename].json
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Verify Mainnet
|
||||||
|
|
||||||
|
Help to prevent a catastrophe by running invariants on each block on your full
|
||||||
|
node. In essence, by running invariants you ensure that the state of mainnet is
|
||||||
|
the correct expected state. One vital invariant check is that no atoms are
|
||||||
|
being created or destroyed outside of expected protocol, however there are many
|
||||||
|
other invariant checks each unique to their respective module. Because invariant checks
|
||||||
|
are computationally expensive, they are not enabled by default. To run a node with
|
||||||
|
these checks start your node with the assert-invariants-blockly flag:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gaiad start --assert-invariants-blockly
|
||||||
|
```
|
||||||
|
|
||||||
|
If an invariant is broken on your node, your node will panic and prompt you to send
|
||||||
|
a transaction which will halt mainnet. For example the provided message may look like:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
invariant broken:
|
||||||
|
loose token invariance:
|
||||||
|
pool.NotBondedTokens: 100
|
||||||
|
sum of account tokens: 101
|
||||||
|
CRITICAL please submit the following transaction:
|
||||||
|
gaiacli tx crisis invariant-broken staking supply
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
When submitting a invariant-broken transaction, transaction fee tokens are not
|
||||||
|
deducted as the blockchain will halt (aka. this is a free transaction).
|
||||||
|
|
||||||
## Upgrade to Validator Node
|
## Upgrade to Validator Node
|
||||||
|
|
||||||
You now have an active full node. What's the next step? You can upgrade your full node to become a Cosmos Validator. The top 100 validators have the ability to propose new blocks to the Cosmos Hub. Continue onto [the Validator Setup](./validators/validator-setup.md).
|
You now have an active full node. What's the next step? You can upgrade your full node to become a Cosmos Validator. The top 100 validators have the ability to propose new blocks to the Cosmos Hub. Continue onto [the Validator Setup](./validators/validator-setup.md).
|
||||||
|
|
Loading…
Reference in New Issue