ChainSafe / ChainSafe/lodestar

De-duplicate payload from persisted beacon blocks

Open
#5,671 14 comments 0 reactions 1 assignee Claimed by @matthewkeil View on GitHub
meta-feature-request prio-high spec-gloas
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.