You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
As mentioned in ADR-067, we'll be having a simulator which provides validity predicates which ensures invariants behaviour . So that, there won't be the old behaviour of invariants in production (halting on broken invariant). This work is binded with simulations work and hence there is no need of a new strategy for checking invariants.
ref: #16400
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
The text was updated successfully, but these errors were encountered: