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
There are several invariants maintained by the database which are not currently documented anywhere other than in comments and code. To improve this I think we should add a set of invariants that are:
Executable
Documented
These can then be used in a tool like lighthouse db check-invariants, in tests, and in periodic background tasks on some of our infrastructure.
I think it might be good to describe each invariant in a struct like:
Invariant{name:"freezer_block_roots",description:"Every slot from oldest_block_slot to the split slot should have a block root",speed:InvariantSpeed::Fast,check: |db| db.iter_column(DBColumn::BeaconBlockRoots).for_each(...),}
Version
Lighthouse v4.5.0
Additional Info
Would hopefully help catch issues like #4697 earlier in the development cycle.
The text was updated successfully, but these errors were encountered:
Description
There are several invariants maintained by the database which are not currently documented anywhere other than in comments and code. To improve this I think we should add a set of invariants that are:
These can then be used in a tool like
lighthouse db check-invariants
, in tests, and in periodic background tasks on some of our infrastructure.I think it might be good to describe each invariant in a struct like:
Version
Lighthouse v4.5.0
Additional Info
Would hopefully help catch issues like #4697 earlier in the development cycle.
The text was updated successfully, but these errors were encountered: