Do not require blobs from checkpoint servers from Fulu epochs. (#8413)

Addressed this comment here: https://github.com/sigp/lighthouse/issues/6837#issuecomment-3509209465

Lighthouse can only checkpoint sync from a server that can serve blob sidecars, which means they need to be at least custdoying 50% of columns (semi-supernodes)

This PR lifts this constraint, as blob sidecar endpoint is getting deprecated in Fulu, and we plan to fetch the checkpoint data columns from peers (#6837)


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
This commit is contained in:
Jimmy Chen
2025-11-17 13:07:42 +11:00
committed by GitHub
parent 01a654bfa8
commit f2b945a5b5

View File

@@ -345,7 +345,13 @@ where
.map_err(|e| format!("Unable to parse weak subj state SSZ: {:?}", e))?;
let anchor_block = SignedBeaconBlock::from_ssz_bytes(&anchor_block_bytes, &spec)
.map_err(|e| format!("Unable to parse weak subj block SSZ: {:?}", e))?;
let anchor_blobs = if anchor_block.message().body().has_blobs() {
// `BlobSidecar` is no longer used from Fulu onwards (superseded by `DataColumnSidecar`),
// which will be fetched via rpc instead (unimplemented).
let is_before_fulu = !spec
.fork_name_at_slot::<E>(anchor_block.slot())
.fulu_enabled();
let anchor_blobs = if is_before_fulu && anchor_block.message().body().has_blobs() {
let max_blobs_len = spec.max_blobs_per_block(anchor_block.epoch()) as usize;
let anchor_blobs_bytes = anchor_blobs_bytes
.ok_or("Blobs for checkpoint must be provided using --checkpoint-blobs")?;
@@ -409,7 +415,11 @@ where
debug!("Downloaded finalized block");
let blobs = if block.message().body().has_blobs() {
// `get_blob_sidecars` API is deprecated from Fulu and may not be supported by all servers
let is_before_fulu = !spec
.fork_name_at_slot::<E>(finalized_block_slot)
.fulu_enabled();
let blobs = if is_before_fulu && block.message().body().has_blobs() {
debug!("Downloading finalized blobs");
if let Some(response) = remote
.get_blob_sidecars::<E>(BlockId::Root(block_root), None, &spec)