Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed Changes
Builds on
tree-states
to drastically reduce the size of archive nodes with SPRP=32. This is achieved using two main optimisations:PartialBeaconState
s of the DB. The immutable parts of the validator are its public key and withdrawal credentials.zstd
compression to allPartialBeaconState
s stored in the DB: this is effective at compressing the remaining fields that are likely to be similar, e.g. the mutable parts ofstate.validators
, thestate.balances
, and the eth1 data votes.Additional Info
My plan is to clean this up and merge it into #3206 along with #3583, which will give us
tree-states
+ all the new database optimisations in one schema migration. To ease backwards-compatibility I'm going to investigate how to make the new schemas for restore points and frozen blocks optional, so that old nodes can keep running as they are, but new nodes and early adopters can switch to the more efficient schema.