nimbus-eth2/beacon_chain/block_pools
Jacek Sieka 46c94a18ba rework epoch cache referencing
* collect all epochrefs in specific blocks to make them easier to find
and to avoid lots of small seqs
* reuse validator key databases more aggressively by comparing keys
* make state cache available from within `withState`
* make epochRef available from within onBlockAdded callback
* integrate getEpochInfo into block resolution and epoch ref logic such
that epochrefs are created when blocks are added to pool or lazily when
needed by a getEpochRef
* fill state cache better from EpochRef, speeding up replay and
validation
* store epochRef in specific blocks to make them easier to find and
reuse
* fix database corruption when state is saved while replaying quarantine
* replay slots fully from block pool before processing state
* compare bls values more smartly
* store epoch state without block applied in database - it's recommended
to resync the node!

this branch will drastically speed up processing in times of long
non-finality, as well as cut memory usage by 10x during the recent
medalla madness.
2020-08-19 10:09:06 +03:00
..
block_pools_types.nim rework epoch cache referencing 2020-08-19 10:09:06 +03:00
chain_dag.nim rework epoch cache referencing 2020-08-19 10:09:06 +03:00
clearance.nim rework epoch cache referencing 2020-08-19 10:09:06 +03:00
quarantine.nim clean up quarantine 2020-08-05 16:19:55 +02:00
spec_cache.nim small spec cleanups (#1501) 2020-08-13 13:47:06 +00:00