From a637c83a54b5946fe003afb3efe184c37acf8d91 Mon Sep 17 00:00:00 2001 From: behzad nouri Date: Thu, 31 Aug 2023 09:44:51 -0400 Subject: [PATCH] removes outdated check for merkle shreds --- core/src/shred_fetch_stage.rs | 44 ++++------------------------------- ledger/src/shred.rs | 18 -------------- sdk/src/feature_set.rs | 10 -------- turbine/src/cluster_nodes.rs | 2 +- 4 files changed, 5 insertions(+), 69 deletions(-) diff --git a/core/src/shred_fetch_stage.rs b/core/src/shred_fetch_stage.rs index 8923814b09ee5b..5d3e8bfb889348 100644 --- a/core/src/shred_fetch_stage.rs +++ b/core/src/shred_fetch_stage.rs @@ -8,15 +8,13 @@ use { solana_gossip::cluster_info::ClusterInfo, solana_ledger::shred::{should_discard_shred, ShredFetchStats}, solana_perf::packet::{PacketBatch, PacketBatchRecycler, PacketFlags, PACKETS_PER_BATCH}, - solana_runtime::{bank::Bank, bank_forks::BankForks}, + solana_runtime::bank_forks::BankForks, solana_sdk::{ - clock::{Slot, DEFAULT_MS_PER_SLOT}, - feature_set, + clock::DEFAULT_MS_PER_SLOT, packet::{Meta, PACKET_DATA_SIZE}, pubkey::Pubkey, }, solana_streamer::streamer::{self, PacketBatchReceiver, StreamerReceiveStats}, - solana_turbine::cluster_nodes::check_feature_activation, std::{ net::{SocketAddr, UdpSocket}, sync::{ @@ -93,19 +91,10 @@ impl ShredFetchStage { // Limit shreds to 2 epochs away. let max_slot = last_slot + 2 * slots_per_epoch; - let should_drop_merkle_shreds = - |shred_slot| should_drop_merkle_shreds(shred_slot, &root_bank); let turbine_disabled = turbine_disabled.load(Ordering::Relaxed); for packet in packet_batch.iter_mut().filter(|p| !p.meta().discard()) { if turbine_disabled - || should_discard_shred( - packet, - last_root, - max_slot, - shred_version, - should_drop_merkle_shreds, - &mut stats, - ) + || should_discard_shred(packet, last_root, max_slot, shred_version, &mut stats) { packet.meta_mut().set_discard(true); } else { @@ -295,19 +284,6 @@ fn receive_quic_datagrams( } } -#[must_use] -fn should_drop_merkle_shreds(shred_slot: Slot, root_bank: &Bank) -> bool { - check_feature_activation( - &feature_set::keep_merkle_shreds::id(), - shred_slot, - root_bank, - ) && !check_feature_activation( - &feature_set::drop_merkle_shreds::id(), - shred_slot, - root_bank, - ) -} - #[cfg(test)] mod tests { use { @@ -348,7 +324,6 @@ mod tests { last_root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); let coding = solana_ledger::shred::Shredder::generate_coding_shreds( @@ -362,7 +337,6 @@ mod tests { last_root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); } @@ -384,7 +358,6 @@ mod tests { last_root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); assert_eq!(stats.index_overrun, 1); @@ -406,18 +379,12 @@ mod tests { 3, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); assert_eq!(stats.slot_out_of_range, 1); assert!(should_discard_shred( - &packet, - last_root, - max_slot, - 345, // shred_version - |_| false, // should_drop_merkle_shreds - &mut stats, + &packet, last_root, max_slot, /*shred_version:*/ 345, &mut stats, )); assert_eq!(stats.shred_version_mismatch, 1); @@ -427,7 +394,6 @@ mod tests { last_root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); @@ -449,7 +415,6 @@ mod tests { last_root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); @@ -461,7 +426,6 @@ mod tests { last_root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats, )); } diff --git a/ledger/src/shred.rs b/ledger/src/shred.rs index 757872b66d2a69..05414ddc297725 100644 --- a/ledger/src/shred.rs +++ b/ledger/src/shred.rs @@ -893,7 +893,6 @@ pub fn should_discard_shred( root: Slot, max_slot: Slot, shred_version: u16, - should_drop_merkle_shreds: impl Fn(Slot) -> bool, stats: &mut ShredFetchStats, ) -> bool { debug_assert!(root < max_slot); @@ -970,15 +969,9 @@ pub fn should_discard_shred( match shred_variant { ShredVariant::LegacyCode | ShredVariant::LegacyData => (), ShredVariant::MerkleCode(_) => { - if should_drop_merkle_shreds(slot) { - return true; - } stats.num_shreds_merkle_code = stats.num_shreds_merkle_code.saturating_add(1); } ShredVariant::MerkleData(_) => { - if should_drop_merkle_shreds(slot) { - return true; - } stats.num_shreds_merkle_data = stats.num_shreds_merkle_data.saturating_add(1); } } @@ -1178,7 +1171,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(stats, ShredFetchStats::default()); @@ -1189,7 +1181,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(stats.index_overrun, 1); @@ -1200,7 +1191,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(stats.index_overrun, 2); @@ -1211,7 +1201,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(stats.index_overrun, 3); @@ -1222,7 +1211,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(stats.index_overrun, 4); @@ -1233,7 +1221,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(stats.bad_parent_offset, 1); @@ -1254,7 +1241,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); @@ -1274,7 +1260,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(1, stats.index_out_of_bounds); @@ -1295,7 +1280,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); packet.buffer_mut()[OFFSET_OF_SHRED_VARIANT] = u8::MAX; @@ -1305,7 +1289,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(1, stats.bad_shred_type); @@ -1317,7 +1300,6 @@ mod tests { root, max_slot, shred_version, - |_| false, // should_drop_merkle_shreds &mut stats )); assert_eq!(1, stats.bad_shred_type); diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index 52db257d3ea109..386a6969d2fd3c 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -573,14 +573,6 @@ pub mod disable_turbine_fanout_experiments { solana_sdk::declare_id!("Gz1aLrbeQ4Q6PTSafCZcGWZXz91yVRi7ASFzFEr1U4sa"); } -pub mod drop_merkle_shreds { - solana_sdk::declare_id!("84zy5N23Q9vTZuLc9h1HWUtyM9yCFV2SCmyP9W9C3yHZ"); -} - -pub mod keep_merkle_shreds { - solana_sdk::declare_id!("HyNQzc7TMNmRhpVHXqDGjpsHzeQie82mDQXSF9hj7nAH"); -} - pub mod move_serialized_len_ptr_in_cpi { solana_sdk::declare_id!("74CoWuBmt3rUVUrCb2JiSTvh6nXyBWUsK4SaMj3CtE3T"); } @@ -833,8 +825,6 @@ lazy_static! { (commission_updates_only_allowed_in_first_half_of_epoch::id(), "validator commission updates are only allowed in the first half of an epoch #29362"), (enable_turbine_fanout_experiments::id(), "enable turbine fanout experiments #29393"), (disable_turbine_fanout_experiments::id(), "disable turbine fanout experiments #29393"), - (drop_merkle_shreds::id(), "drop merkle shreds #29711"), - (keep_merkle_shreds::id(), "keep merkle shreds #29711"), (move_serialized_len_ptr_in_cpi::id(), "cpi ignore serialized_len_ptr #29592"), (update_hashes_per_tick::id(), "Update desired hashes per tick on epoch boundary"), (enable_big_mod_exp_syscall::id(), "add big_mod_exp syscall #28503"), diff --git a/turbine/src/cluster_nodes.rs b/turbine/src/cluster_nodes.rs index 124d6d8c99cca1..57676a34b75eff 100644 --- a/turbine/src/cluster_nodes.rs +++ b/turbine/src/cluster_nodes.rs @@ -513,7 +513,7 @@ fn enable_turbine_fanout_experiments(shred_slot: Slot, root_bank: &Bank) -> bool // Returns true if the feature is effective for the shred slot. #[must_use] -pub fn check_feature_activation(feature: &Pubkey, shred_slot: Slot, root_bank: &Bank) -> bool { +fn check_feature_activation(feature: &Pubkey, shred_slot: Slot, root_bank: &Bank) -> bool { match root_bank.feature_set.activated_slot(feature) { None => false, Some(feature_slot) => {