c574f8136e
## Issue Addressed Closes #4817. ## Proposed Changes - Fill in the linear block roots array between 0 and the slot of the first block (e.g. slots 0 and 1 on Holesky). - Backport the `--freezer`, `--skip` and `--limit` options for `lighthouse db inspect` from tree-states. This allows us to easily view the database corruption of 4817 using `lighthouse db inspect --network holesky --freezer --column bbr --output values --limit 2`. - Backport the `iter_column_from` change and `MemoryStore` overhaul from tree-states. These are required to enable `lighthouse db inspect`. - Rework `freezer_upper_limit` to allow state lookups for slots below the `state_lower_limit`. Currently state lookups will fail until state reconstruction completes entirely. There is a new regression test for the main bug, but no test for the `freezer_upper_limit` fix because we don't currently support running state reconstruction partially (see #3026). This will be fixed once we merge `tree-states`! In lieu of an automated test, I've tested manually on a Holesky node while it was reconstructing. ## Additional Info Users who backfilled Holesky to slot 0 (e.g. using `--reconstruct-historic-states`) need to either: - Re-sync from genesis. - Re-sync using checkpoint sync and the changes from this PR. Due to the recency of the Holesky genesis, writing a custom pass to fix up broken databases (which would require its own thorough testing) was deemed unnecessary. This is the primary reason for this PR being marked `backwards-incompat`. This will create few conflicts with Deneb, which I've already resolved on `tree-states-deneb` and will be happy to backport to Deneb once this PR is merged to unstable.
20 lines
506 B
TOML
20 lines
506 B
TOML
[package]
|
|
name = "database_manager"
|
|
version = "0.1.0"
|
|
edition = { workspace = true }
|
|
|
|
[dependencies]
|
|
beacon_chain = { workspace = true }
|
|
beacon_node = { workspace = true }
|
|
clap = { workspace = true }
|
|
clap_utils = { workspace = true }
|
|
environment = { workspace = true }
|
|
hex = { workspace = true }
|
|
logging = { workspace = true }
|
|
sloggers = { workspace = true }
|
|
store = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
types = { workspace = true }
|
|
slog = { workspace = true }
|
|
strum = { workspace = true }
|