Add experimental complete-blob-backfill flag (#7751)

A different (and complementary) approach for:

- https://github.com/sigp/lighthouse/issues/5391


  This PR adds a flag to set the DA boundary to the Deneb fork. The effect of this change is that Lighthouse will try to backfill _all_ blobs.

Most peers do not have this data, but I'm thinking that combined with `trusted-peers` this could be quite effective.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
This commit is contained in:
Michael Sproul
2025-09-18 15:17:03 +10:00
committed by GitHub
parent 684632df73
commit 3543a20192
6 changed files with 76 additions and 5 deletions

View File

@@ -401,6 +401,16 @@ pub fn cli_app() -> Command {
.help_heading(FLAG_HEADER)
.display_order(0)
)
.arg(
Arg::new("complete-blob-backfill")
.long("complete-blob-backfill")
.help("Download all blobs back to the Deneb fork epoch. This will likely result in \
the node banning most of its peers.")
.action(ArgAction::SetTrue)
.help_heading(FLAG_HEADER)
.display_order(0)
.hide(true)
)
.arg(
Arg::new("enable-private-discovery")
.long("enable-private-discovery")

View File

@@ -825,6 +825,14 @@ pub fn get_config<E: EthSpec>(
client_config.chain.genesis_backfill = true;
}
client_config.chain.complete_blob_backfill = cli_args.get_flag("complete-blob-backfill");
// Ensure `prune_blobs` is false whenever complete-blob-backfill is set. This overrides any
// setting of `--prune-blobs true` applied earlier in flag parsing.
if client_config.chain.complete_blob_backfill {
client_config.store.prune_blobs = false;
}
// Backfill sync rate-limiting
client_config.beacon_processor.enable_backfill_rate_limiting =
!cli_args.get_flag("disable-backfill-rate-limiting");