ChainSafe / ChainSafe/lodestar
De-duplicate payload from persisted beacon blocks
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 483
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 150
Description
### Problem description
Since the merge, both execution and Lodestar beacon nodes persist the block's execution payload into the DB.
At an average block size of 100Kb, that's about 720 MB / day or 263 GB / year of redundant data we don't _really_ need to store. See https://ycharts.com/indicators/ethereum_average_block_size According to metrics, current Lodestar DB growth averaged over the last 30 days on a mainnet node without validator is 666 MB/day.
### Solution description
Instead Lodestar should persist in its DB blinded blocks, and retrieve from the execution node the payloads on demand to comply with:
- ReqResp beacon_blocks_by_root
- ReqResp beacon_blocks_by_range
- API requests involving the full block
All of this operations are not super time sensitive so the added latency is not a breaking deal
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.