simplifies sigverify_shreds::get_slot_leaders (#33079)

This commit is contained in:
behzad nouri 2023-08-31 19:49:23 +00:00 committed by GitHub
parent 5e26b05597
commit 7275caf708
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 17 deletions

View File

@ -169,26 +169,26 @@ fn get_slot_leaders(
bank: &Bank,
) -> HashMap<Slot, Option<Pubkey>> {
let mut leaders = HashMap::<Slot, Option<Pubkey>>::new();
for batch in batches {
for packet in batch.iter_mut() {
if packet.meta().discard() {
continue;
}
batches
.iter_mut()
.flat_map(PacketBatch::iter_mut)
.filter(|packet| !packet.meta().discard())
.filter(|packet| {
let shred = shred::layout::get_shred(packet);
let Some(slot) = shred.and_then(shred::layout::get_slot) else {
packet.meta_mut().set_discard(true);
continue;
return true;
};
let leader = leaders.entry(slot).or_insert_with(|| {
let leader = leader_schedule_cache.slot_leader_at(slot, Some(bank))?;
// Discard the shred if the slot leader is the node itself.
(&leader != self_pubkey).then_some(leader)
});
if leader.is_none() {
packet.meta_mut().set_discard(true);
}
}
}
leaders
.entry(slot)
.or_insert_with(|| {
// Discard the shred if the slot leader is the node itself.
leader_schedule_cache
.slot_leader_at(slot, Some(bank))
.filter(|leader| leader != self_pubkey)
})
.is_none()
})
.for_each(|packet| packet.meta_mut().set_discard(true));
leaders
}