Skip to content

[Epic]: invariant checking #15706

Closed
Closed

Description

Summary

Invariants were used in the early days of cosmos in order to test and identify bugs in staking and other modules. This later got repurposed into the crisis module and is treated as a safety feature. The core issue with the crisis module is it intends to halt the chain if the invariant is broken, but in cases where invariants are broken it does not mean that the chain should halt. In these scenarios it is enough for the chain to recover the wrong state in a future upgrade

Secondly there is a new module landing (circuit) that could disable code paths therefore staying alive but also staying safe. This is important as more chains come on line and support more businesses. We dont want chains to have operating hours.

Thirdly, the crisis module will not halt a chain if an invariant is broken making the module only a way to check invariants.

Problem Definition

Invariants currently are not safe and performant, a new strategy should be created to run invariants.

Work Breakdown

  • Define new way to check invariants
  • Implement needed changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions