History pre-merge sync #13186
Labels
C-discussion
A discussion about the direction and design of the project
C-enhancement
New feature or request
C-tracking-issue
An issue that collects information about a broad development initiative
M-prevent-stale
Prevents old inactive issues/PRs from being closed due to inactivity
History Pre-merge syncing from s3
Tracking Issues
Tasks
BlockBodies
&BlockBodyIndices
toStaticFiles
#13264References:
Table of contents:
The download logic should reside inside
ethereum/
and not "sdk
".Static files pre-merge
Data: ~295.7GB (each) Each file has 500k worth of blocks.
Offsets: ~13.6G Refresher: provides the data range for each transaction in the data file. each offset takes exactly 8 bytes. So it should be possible to query specific ones if necessary.
Last static file goes beyond the merge block (
15_537_393
)static_file_transactions_15500000_15999999
Important
There's missing data that needs to be additionally provided:
BlockBodyIndices
Ommers
Currently
A range of blocks is passed as input to the
BodyDownloader
and after finding peers that can serve them, will stream/buffer them to theBodyStage
. This will consume them one by one and create the following indices:BlockBodyIndices
,TransactionBlocks
.Could be
Extend downloader without any stage changes
BodiesDownloader
with the extra logic, and let node builder specificy it. (eg.Node::body_downloader(config.body)
)BodiesDownloader
would replicate the streaming behaviour from above by:BlockBodyIndices
Ommers
BodyStage
. Could be batched.Pros
Cons
New stage and Downloader
S3Stage
)S3Stage
would be executed afterHeaderStage
and beforeBodyStage
.--debug.tip PRE_MERGE_BLOCK_NUMBER - 1_000
). Proposals?S3Stage
would gatekeep staged sync. Maybe only accepts end ranges that match the static file batch ranges or the premerge block itself. If not passed, just hang with a warning message asking for a better range.op-mainnet
where we import state and doesn't make sense to unwind pre-bedrock. Similarly, it would not make sense to unwind pre-mergereth stage unwind -f
could still ignore this limit if really necessary.S3Stage
could setBodyStageCheckpoint
block as well as theunwind_threshold
block. No changes necessary forBodyStage
.Pros
Cons
Abandoned?
Individual batch sizes
Additional context
No response
The text was updated successfully, but these errors were encountered: