[Snapshots] Introduce StateAccumulator
First pass. See todos below for things not yet done.
This component leverages multiset hashing to hash checkpoints from CheckpointExecutor and CheckpointBuilder and accumulate them in order to generate a root state digest representing the state (defined by the live object set) at end of epoch, the result of which is included in checkpoint summaries and submitted to consensus to allow for verifying state snapshot contents.
For now, rather than submitting the digest in the summary for consensus, we simply log the digest and add None to the summary, in order to test that the hash is consistent across the network before creating a fork.
Todos:
- [ ] Fix how we are handling mutated objects
- [ ] Add tests
- [x] Add notify read for existence of end of epoch root state digest
- [ ] Improve documentation
- [ ] Make root state accumulation concurrent and continuous
- [ ] Add metrics
- [ ] Add configurability
The latest updates on your projects. Learn more about Vercel for Git ↗︎
4 Ignored Deployments
| Name | Status | Preview | Comments | Updated |
|---|---|---|---|---|
| explorer | ⬜️ Ignored (Inspect) | Feb 3, 2023 at 4:18AM (UTC) | ||
| explorer-storybook | ⬜️ Ignored (Inspect) | Feb 3, 2023 at 4:18AM (UTC) | ||
| frenemies | ⬜️ Ignored (Inspect) | Feb 3, 2023 at 4:18AM (UTC) | ||
| wallet-adapter | ⬜️ Ignored (Inspect) | Feb 3, 2023 at 4:18AM (UTC) |