reth_snap_sync/catch_up/mod.rs
1//! Carries the downloaded state forward through verified block access lists.
2//!
3//! The chain moves on while ranges download, so state anchored at the pivot is already behind by
4//! the time it is complete. [EIP-8189](https://eips.ethereum.org/EIPS/eip-8189#application-order)
5//! closes that distance by applying the lists of the blocks after the pivot in strict block order,
6//! each recording the final value of every field its block changes.
7//!
8//! Progress is the last block applied, kept as a number and hash so the next list is only taken
9//! from its child, and committed with the state that list changes. A block whose list no peer
10//! serves holds back every block after it rather than leaving a hole in the applied sequence.
11
12mod apply;
13mod download;
14mod store;
15
16pub use apply::{BalStateUpdate, DownloadedAccount};
17pub use download::{
18 BlockAccessListCatchUp, CatchUpStep, DEFAULT_BAL_RESPONSE_BYTES, DEFAULT_CATCH_UP_BLOCKS,
19};
20pub use store::{CatchUpProgress, SnapCatchUpStore};