From 6909a79b6fd50f63e2968d4760f864b377e4c802 Mon Sep 17 00:00:00 2001 From: behzad nouri Date: Fri, 27 Aug 2021 21:17:15 +0000 Subject: [PATCH] removes require-stake-for-gossip feature (#19476) The feature is already activated on all clusters. --- gossip/src/cluster_info.rs | 75 +++++++----------------------- gossip/src/cluster_info_metrics.rs | 6 --- sdk/src/feature_set.rs | 5 -- 3 files changed, 18 insertions(+), 68 deletions(-) diff --git a/gossip/src/cluster_info.rs b/gossip/src/cluster_info.rs index 76caff301..1158fc427 100644 --- a/gossip/src/cluster_info.rs +++ b/gossip/src/cluster_info.rs @@ -53,7 +53,7 @@ use { solana_runtime::bank_forks::BankForks, solana_sdk::{ clock::{Slot, DEFAULT_MS_PER_SLOT, DEFAULT_SLOTS_PER_EPOCH}, - feature_set::{self, FeatureSet}, + feature_set::FeatureSet, hash::Hash, pubkey::Pubkey, sanitize::{Sanitize, SanitizeError}, @@ -1439,18 +1439,14 @@ impl ClusterInfo { let _ = gossip_crds.insert(entry, now); } } - fn new_push_requests( - &self, - stakes: &HashMap, - require_stake_for_gossip: bool, - ) -> Vec<(SocketAddr, Protocol)> { + fn new_push_requests(&self, stakes: &HashMap) -> Vec<(SocketAddr, Protocol)> { let self_id = self.id(); let mut push_messages = { let _st = ScopedTimer::from(&self.stats.new_push_requests); self.gossip .new_push_messages(self.drain_push_queue(), timestamp()) }; - if require_stake_for_gossip { + if self.require_stake_for_gossip(stakes) { push_messages.retain(|_, data| { retain_staked(data, stakes); !data.is_empty() @@ -1487,14 +1483,13 @@ impl ClusterInfo { gossip_validators: Option<&HashSet>, stakes: &HashMap, generate_pull_requests: bool, - require_stake_for_gossip: bool, ) -> Vec<(SocketAddr, Protocol)> { self.trim_crds_table(CRDS_UNIQUE_PUBKEY_CAPACITY, stakes); // This will flush local pending push messages before generating // pull-request bloom filters, preventing pull responses to return the // same values back to the node itself. Note that packets will arrive // and are processed out of order. - let mut out: Vec<_> = self.new_push_requests(stakes, require_stake_for_gossip); + let mut out: Vec<_> = self.new_push_requests(stakes); self.stats .packets_sent_push_messages_count .add_relaxed(out.len() as u64); @@ -1522,14 +1517,12 @@ impl ClusterInfo { stakes: &HashMap, sender: &PacketSender, generate_pull_requests: bool, - require_stake_for_gossip: bool, ) -> Result<(), GossipError> { let reqs = self.generate_new_gossip_requests( thread_pool, gossip_validators, stakes, generate_pull_requests, - require_stake_for_gossip, ); if !reqs.is_empty() { let packets = to_packets_with_destination(recycler.clone(), &reqs); @@ -1680,7 +1673,7 @@ impl ClusterInfo { last_contact_info_save = start; } - let (stakes, feature_set) = match bank_forks { + let (stakes, _feature_set) = match bank_forks { Some(ref bank_forks) => { let root_bank = bank_forks.read().unwrap().root_bank(); ( @@ -1690,8 +1683,6 @@ impl ClusterInfo { } None => (Arc::default(), None), }; - let require_stake_for_gossip = - self.require_stake_for_gossip(feature_set.as_deref(), &stakes); let _ = self.run_gossip( &thread_pool, gossip_validators.as_ref(), @@ -1699,7 +1690,6 @@ impl ClusterInfo { &stakes, &sender, generate_pull_requests, - require_stake_for_gossip, ); if exit.load(Ordering::Relaxed) { return; @@ -1778,7 +1768,6 @@ impl ClusterInfo { recycler: &PacketsRecycler, stakes: &HashMap, response_sender: &PacketSender, - require_stake_for_gossip: bool, ) { let _st = ScopedTimer::from(&self.stats.handle_batch_pull_requests_time); if requests.is_empty() { @@ -1809,13 +1798,7 @@ impl ClusterInfo { self.stats .pull_requests_count .add_relaxed(requests.len() as u64); - let response = self.handle_pull_requests( - thread_pool, - recycler, - requests, - stakes, - require_stake_for_gossip, - ); + let response = self.handle_pull_requests(thread_pool, recycler, requests, stakes); if !response.is_empty() { self.stats .packets_sent_pull_responses_count @@ -1889,7 +1872,6 @@ impl ClusterInfo { recycler: &PacketsRecycler, requests: Vec, stakes: &HashMap, - require_stake_for_gossip: bool, ) -> Packets { const DEFAULT_EPOCH_DURATION_MS: u64 = DEFAULT_SLOTS_PER_EPOCH * DEFAULT_MS_PER_SLOT; let mut time = Measure::start("handle_pull_requests"); @@ -1924,7 +1906,7 @@ impl ClusterInfo { now, ) }; - if require_stake_for_gossip { + if self.require_stake_for_gossip(stakes) { for resp in &mut pull_responses { retain_staked(resp, stakes); } @@ -2168,7 +2150,6 @@ impl ClusterInfo { recycler: &PacketsRecycler, stakes: &HashMap, response_sender: &PacketSender, - require_stake_for_gossip: bool, ) { let _st = ScopedTimer::from(&self.stats.handle_batch_push_messages_time); if messages.is_empty() { @@ -2245,7 +2226,7 @@ impl ClusterInfo { self.stats .push_response_count .add_relaxed(packets.packets.len() as u64); - let new_push_requests = self.new_push_requests(stakes, require_stake_for_gossip); + let new_push_requests = self.new_push_requests(stakes); inc_new_counter_debug!("cluster_info-push_message-pushes", new_push_requests.len()); for (address, request) in new_push_requests { if ContactInfo::is_valid_address(&address, &self.socket_addr_space) { @@ -2266,30 +2247,14 @@ impl ClusterInfo { let _ = response_sender.send(packets); } - fn require_stake_for_gossip( - &self, - feature_set: Option<&FeatureSet>, - stakes: &HashMap, - ) -> bool { - match feature_set { - None => { - self.stats - .require_stake_for_gossip_unknown_feature_set - .add_relaxed(1); - false - } - Some(feature_set) => { - if !feature_set.is_active(&feature_set::require_stake_for_gossip::id()) { - false - } else if stakes.len() < MIN_NUM_STAKED_NODES { - self.stats - .require_stake_for_gossip_unknown_stakes - .add_relaxed(1); - false - } else { - true - } - } + fn require_stake_for_gossip(&self, stakes: &HashMap) -> bool { + if stakes.len() < MIN_NUM_STAKED_NODES { + self.stats + .require_stake_for_gossip_unknown_stakes + .add_relaxed(1); + false + } else { + true } } @@ -2300,7 +2265,7 @@ impl ClusterInfo { recycler: &PacketsRecycler, response_sender: &PacketSender, stakes: &HashMap, - feature_set: Option<&FeatureSet>, + _feature_set: Option<&FeatureSet>, epoch_duration: Duration, should_check_duplicate_instance: bool, ) -> Result<(), GossipError> { @@ -2378,8 +2343,7 @@ impl ClusterInfo { self.stats .packets_received_prune_messages_count .add_relaxed(prune_messages.len() as u64); - let require_stake_for_gossip = self.require_stake_for_gossip(feature_set, stakes); - if require_stake_for_gossip { + if self.require_stake_for_gossip(stakes) { for (_, data) in &mut pull_responses { retain_staked(data, stakes); } @@ -2397,7 +2361,6 @@ impl ClusterInfo { recycler, stakes, response_sender, - require_stake_for_gossip, ); self.handle_batch_pull_responses(pull_responses, thread_pool, stakes, epoch_duration); self.trim_crds_table(CRDS_UNIQUE_PUBKEY_CAPACITY, stakes); @@ -2408,7 +2371,6 @@ impl ClusterInfo { recycler, stakes, response_sender, - require_stake_for_gossip, ); Ok(()) } @@ -3320,7 +3282,6 @@ mod tests { None, // gossip_validators &HashMap::new(), // stakes true, // generate_pull_requests - false, // require_stake_for_gossip ); //assert none of the addrs are invalid. reqs.iter().all(|(addr, _)| { diff --git a/gossip/src/cluster_info_metrics.rs b/gossip/src/cluster_info_metrics.rs index 645b092e5..ff3a861da 100644 --- a/gossip/src/cluster_info_metrics.rs +++ b/gossip/src/cluster_info_metrics.rs @@ -143,7 +143,6 @@ pub(crate) struct GossipStats { pub(crate) push_response_count: Counter, pub(crate) push_vote_read: Counter, pub(crate) repair_peers: Counter, - pub(crate) require_stake_for_gossip_unknown_feature_set: Counter, pub(crate) require_stake_for_gossip_unknown_stakes: Counter, pub(crate) skip_pull_response_shred_version: Counter, pub(crate) skip_pull_shred_version: Counter, @@ -422,11 +421,6 @@ pub(crate) fn submit_gossip_stats( stats.packets_sent_push_messages_count.clear(), i64 ), - ( - "require_stake_for_gossip_unknown_feature_set", - stats.require_stake_for_gossip_unknown_feature_set.clear(), - i64 - ), ( "require_stake_for_gossip_unknown_stakes", stats.require_stake_for_gossip_unknown_stakes.clear(), diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index d573f83b1..82263bec6 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -91,10 +91,6 @@ pub mod check_program_owner { solana_sdk::declare_id!("5XnbR5Es9YXEARRuP6mdvoxiW3hx5atNNeBmwVd8P3QD"); } -pub mod require_stake_for_gossip { - solana_sdk::declare_id!("6oNzd5Z3M2L1xo4Q5hoox7CR2DuW7m1ETLWH5jHJthwa"); -} - pub mod enforce_aligned_host_addrs { solana_sdk::declare_id!("6Qob9Z4RwGdf599FDVCqsjuKjR8ZFR3oVs2ByRLWBsua"); } @@ -221,7 +217,6 @@ lazy_static! { (warp_timestamp_again::id(), "warp timestamp again, adjust bounding to 25% fast 80% slow #15204"), (check_init_vote_data::id(), "check initialized Vote data"), (check_program_owner::id(), "limit programs to operating on accounts owned by itself"), - (require_stake_for_gossip::id(), "require stakes for propagating crds values through gossip #15561"), (enforce_aligned_host_addrs::id(), "enforce aligned host addresses"), (stake_program_v4::id(), "solana_stake_program v4"), (memory_ops_syscalls::id(), "add syscalls for memory operations"),