Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit be83c95

Browse files
committed
Remove circular transmission check in sigverify
1 parent 28007d1 commit be83c95

File tree

2 files changed

+2
-13
lines changed

2 files changed

+2
-13
lines changed

core/src/sigverify_shreds.rs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use {
22
crossbeam_channel::{Receiver, RecvTimeoutError, SendError, Sender},
3-
solana_gossip::cluster_info::ClusterInfo,
43
solana_ledger::{
54
leader_schedule_cache::LeaderScheduleCache, shred, sigverify_shreds::verify_shreds_gpu,
65
},
@@ -26,7 +25,6 @@ enum Error {
2625
}
2726

2827
pub(crate) fn spawn_shred_sigverify(
29-
cluster_info: Arc<ClusterInfo>,
3028
bank_forks: Arc<RwLock<BankForks>>,
3129
leader_schedule_cache: Arc<LeaderScheduleCache>,
3230
shred_fetch_receiver: Receiver<PacketBatch>,
@@ -42,7 +40,6 @@ pub(crate) fn spawn_shred_sigverify(
4240
match run_shred_sigverify(
4341
// We can't store the pubkey outside the loop
4442
// because the identity might be hot swapped.
45-
&cluster_info.id(),
4643
&bank_forks,
4744
&leader_schedule_cache,
4845
&recycler_cache,
@@ -63,7 +60,6 @@ pub(crate) fn spawn_shred_sigverify(
6360
}
6461

6562
fn run_shred_sigverify(
66-
self_pubkey: &Pubkey,
6763
bank_forks: &RwLock<BankForks>,
6864
leader_schedule_cache: &LeaderScheduleCache,
6965
recycler_cache: &RecyclerCache,
@@ -83,7 +79,6 @@ fn run_shred_sigverify(
8379
stats.num_packets += packets.iter().map(PacketBatch::len).sum::<usize>();
8480
stats.num_discards_pre += count_discards(&packets);
8581
verify_packets(
86-
self_pubkey,
8782
bank_forks,
8883
leader_schedule_cache,
8984
recycler_cache,
@@ -108,15 +103,14 @@ fn run_shred_sigverify(
108103
}
109104

110105
fn verify_packets(
111-
self_pubkey: &Pubkey,
112106
bank_forks: &RwLock<BankForks>,
113107
leader_schedule_cache: &LeaderScheduleCache,
114108
recycler_cache: &RecyclerCache,
115109
packets: &mut [PacketBatch],
116110
) {
117111
let working_bank = bank_forks.read().unwrap().working_bank();
118112
let leader_slots: HashMap<Slot, [u8; 32]> =
119-
get_slot_leaders(self_pubkey, packets, leader_schedule_cache, &working_bank)
113+
get_slot_leaders(packets, leader_schedule_cache, &working_bank)
120114
.into_iter()
121115
.filter_map(|(slot, pubkey)| Some((slot, pubkey?.to_bytes())))
122116
.chain(std::iter::once((Slot::MAX, [0u8; 32])))
@@ -129,9 +123,7 @@ fn verify_packets(
129123
// Marks packets as discard if:
130124
// - fails to deserialize the shred slot.
131125
// - slot leader is unknown.
132-
// - slot leader is the node itself (circular transmission).
133126
fn get_slot_leaders(
134-
self_pubkey: &Pubkey,
135127
batches: &mut [PacketBatch],
136128
leader_schedule_cache: &LeaderScheduleCache,
137129
bank: &Bank,
@@ -152,8 +144,7 @@ fn get_slot_leaders(
152144
};
153145
let leader = leaders.entry(slot).or_insert_with(|| {
154146
let leader = leader_schedule_cache.slot_leader_at(slot, Some(bank))?;
155-
// Discard the shred if the slot leader is the node itself.
156-
(&leader != self_pubkey).then_some(leader)
147+
Some(leader)
157148
});
158149
if leader.is_none() {
159150
packet.meta_mut().set_discard(true);
@@ -285,7 +276,6 @@ mod tests {
285276
batches[0][1].meta_mut().size = shred.payload().len();
286277

287278
verify_packets(
288-
&Pubkey::new_unique(), // self_pubkey
289279
&bank_forks,
290280
&leader_schedule_cache,
291281
&RecyclerCache::warmed(),

core/src/tvu.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,6 @@ impl Tvu {
167167
let (verified_sender, verified_receiver) = unbounded();
168168
let (retransmit_sender, retransmit_receiver) = unbounded();
169169
let shred_sigverify = sigverify_shreds::spawn_shred_sigverify(
170-
cluster_info.clone(),
171170
bank_forks.clone(),
172171
leader_schedule_cache.clone(),
173172
fetch_receiver,

0 commit comments

Comments
 (0)