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

@@ -6,6 +6,7 @@ edition = { workspace = true }
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
beacon_chain = { workspace = true }
clap = { workspace = true }
environment = { workspace = true }
execution_layer = { workspace = true }

View File

@@ -30,9 +30,10 @@ const ALTAIR_FORK_EPOCH: u64 = 0;
const BELLATRIX_FORK_EPOCH: u64 = 0;
const CAPELLA_FORK_EPOCH: u64 = 0;
const DENEB_FORK_EPOCH: u64 = 0;
const ELECTRA_FORK_EPOCH: u64 = 2;
// const FULU_FORK_EPOCH: u64 = 3;
// const GLOAS_FORK_EPOCH: u64 = 4;
const ELECTRA_FORK_EPOCH: u64 = 0;
const FULU_FORK_EPOCH: u64 = 0;
// TODO(gloas): enable Gloas in simulator, current blocker is lack of data column gossip verification
// const GLOAS_FORK_EPOCH: u64 = 2;
const SUGGESTED_FEE_RECIPIENT: [u8; 20] =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
@@ -171,8 +172,8 @@ pub fn run_basic_sim(matches: &ArgMatches) -> Result<(), String> {
let genesis_delay = GENESIS_DELAY;
// Convenience variables. Update these values when adding a newer fork.
let latest_fork_version = spec.electra_fork_version;
let latest_fork_start_epoch = ELECTRA_FORK_EPOCH;
let latest_fork_version = spec.fulu_fork_version;
let latest_fork_start_epoch = FULU_FORK_EPOCH;
let mut slot_duration_ms = spec.get_slot_duration().as_millis() as u64;
slot_duration_ms /= speed_up_factor;
@@ -187,6 +188,7 @@ pub fn run_basic_sim(matches: &ArgMatches) -> Result<(), String> {
spec.capella_fork_epoch = Some(Epoch::new(CAPELLA_FORK_EPOCH));
spec.deneb_fork_epoch = Some(Epoch::new(DENEB_FORK_EPOCH));
spec.electra_fork_epoch = Some(Epoch::new(ELECTRA_FORK_EPOCH));
spec.fulu_fork_epoch = Some(Epoch::new(FULU_FORK_EPOCH));
let spec = Arc::new(spec);
env.eth2_config.spec = spec.clone();

View File

@@ -25,11 +25,12 @@ const END_EPOCH: u64 = 16;
const GENESIS_DELAY: u64 = 38;
const ALTAIR_FORK_EPOCH: u64 = 0;
const BELLATRIX_FORK_EPOCH: u64 = 0;
const CAPELLA_FORK_EPOCH: u64 = 1;
const DENEB_FORK_EPOCH: u64 = 2;
// const ELECTRA_FORK_EPOCH: u64 = 3;
// const FULU_FORK_EPOCH: u64 = 4;
// const GLOAS_FORK_EPOCH: u64 = 5;
const CAPELLA_FORK_EPOCH: u64 = 0;
const DENEB_FORK_EPOCH: u64 = 0;
const ELECTRA_FORK_EPOCH: u64 = 0;
const FULU_FORK_EPOCH: u64 = 0;
// TODO(gloas): enable Gloas in simulator, current blocker is lack of data column gossip verification
// const GLOAS_FORK_EPOCH: u64 = 2;
// Since simulator tests are non-deterministic and there is a non-zero chance of missed
// attestations, define an acceptable network-wide attestation performance.
@@ -191,8 +192,8 @@ pub fn run_fallback_sim(matches: &ArgMatches) -> Result<(), String> {
spec.bellatrix_fork_epoch = Some(Epoch::new(BELLATRIX_FORK_EPOCH));
spec.capella_fork_epoch = Some(Epoch::new(CAPELLA_FORK_EPOCH));
spec.deneb_fork_epoch = Some(Epoch::new(DENEB_FORK_EPOCH));
//spec.electra_fork_epoch = Some(Epoch::new(ELECTRA_FORK_EPOCH));
//spec.fulu_fork_epoch = Some(Epoch::new(FULU_FORK_EPOCH));
spec.electra_fork_epoch = Some(Epoch::new(ELECTRA_FORK_EPOCH));
spec.fulu_fork_epoch = Some(Epoch::new(FULU_FORK_EPOCH));
let spec = Arc::new(spec);
env.eth2_config.spec = spec.clone();

View File

@@ -1,4 +1,5 @@
use crate::checks::epoch_delay;
use beacon_chain::custody_context::NodeCustodyType;
use kzg::trusted_setup::get_trusted_setup;
use node_test_rig::{
ClientConfig, ClientGenesis, LocalBeaconNode, LocalExecutionNode, LocalValidatorClient,
@@ -46,6 +47,7 @@ fn default_client_config(network_params: LocalNetworkParams, genesis_time: u64)
beacon_config.network.discv5_config.enable_packet_filter = false;
beacon_config.chain.enable_light_client_server = true;
beacon_config.chain.optimistic_finalized_sync = false;
beacon_config.chain.node_custody_type = NodeCustodyType::Supernode;
beacon_config.trusted_setup = get_trusted_setup();
let el_config = execution_layer::Config {
@@ -103,6 +105,15 @@ fn default_mock_execution_config<E: EthSpec>(
)
}
if let Some(gloas_fork_epoch) = spec.gloas_fork_epoch {
mock_execution_config.amsterdam_time = Some(
genesis_time
+ (spec.get_slot_duration().as_secs())
* E::slots_per_epoch()
* gloas_fork_epoch.as_u64(),
)
}
mock_execution_config
}