Deprecate gossip blobs (#9126)

#9124

Deprecate unneeded pre-Fulu blob features

- blob gossip
- blob lookup sync
- engine getBlobsV1

Also deprecates some tests and cleans up production code paths

I think this is blocked until gnosis forks to fulu?


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>

Co-Authored-By: Daniel Knopik <daniel@dknopik.de>

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
This commit is contained in:
Eitan Seri-Levi
2026-05-28 19:59:23 -07:00
committed by GitHub
parent ba3abf943f
commit 8396dc87d0
48 changed files with 485 additions and 2346 deletions

View File

@@ -565,20 +565,16 @@ impl<E: EthSpec> ExecutionBlockGenerator<E> {
self.insert_block(Block::PoS(payload))?;
}
// Post-Gloas, the justified and finalized block hashes must be non-zero, since the
// CL always has a known parent_block_hash to reference.
if let Some(head_block) = self.blocks.get(&head_block_hash)
&& self
.get_fork_at_timestamp(head_block.timestamp())
.gloas_enabled()
{
// If Gloas was enabled from genesis, the justified and finalized block hashes must be
// non-zero, since the CL always has a known parent_block_hash to reference.
if self.get_fork_at_timestamp(0).gloas_enabled() {
assert!(
forkchoice_state.safe_block_hash != ExecutionBlockHash::zero(),
"post-Gloas safe_block_hash must not be zero"
"for Gloas genesis safe_block_hash must not be zero"
);
assert!(
forkchoice_state.finalized_block_hash != ExecutionBlockHash::zero(),
"post-Gloas finalized_block_hash must not be zero"
"for Gloas genesis finalized_block_hash must not be zero"
);
}

View File

@@ -494,20 +494,6 @@ pub async fn handle_rpc<E: EthSpec>(
_ => unreachable!(),
}
}
ENGINE_GET_BLOBS_V1 => {
let versioned_hashes =
get_param::<Vec<Hash256>>(params, 0).map_err(|s| (s, BAD_PARAMS_ERROR_CODE))?;
let generator = ctx.execution_block_generator.read();
// V1: per-element nullable array, positionally matching the request.
let response: Vec<Option<BlobAndProofV1<E>>> = versioned_hashes
.iter()
.map(|hash| match generator.get_blob_and_proof(hash) {
Some(BlobAndProof::V1(v1)) => Some(v1),
_ => None,
})
.collect();
Ok(serde_json::to_value(response).unwrap())
}
ENGINE_GET_BLOBS_V2 => {
let versioned_hashes =
get_param::<Vec<Hash256>>(params, 0).map_err(|s| (s, BAD_PARAMS_ERROR_CODE))?;

View File

@@ -57,7 +57,6 @@ pub const DEFAULT_ENGINE_CAPABILITIES: EngineCapabilities = EngineCapabilities {
get_payload_v5: true,
get_payload_v6: true,
get_client_version_v1: true,
get_blobs_v1: true,
get_blobs_v2: true,
get_blobs_v3: true,
};