Tree-states review guide
This doc is meant to assist reviewers with Upgrade in-memory and on-disk state representation with tree states #3206
Overview of big items to review (in suggested order):
- New sigp/milhouse lib: underlying lib for in-memory representation
- Updated BeaconState: new in-memory representation
- Epoch processing single pass: Epoch processing with a single iteration over big lists
- Updated BeaconChain: Misc changes, updated caches and consumers of everything else
- Persisted HDiff: Persisted Hierarchical diff-states (HDiff) + blocks persisted in cold store indexed by slot
Intro / motivation
Tree-states represents beacon chain state is merkleized representation so that multiple states can share the same data. Beacon chain mutation and access patterns make this approach efficient the vast majority of the data is the validators array, which is rarely mutated.
TODO(lion): add more