diff --git a/core/src/tpu.rs b/core/src/tpu.rs index 5522d5ae7f2f65..7a19e807241cf6 100644 --- a/core/src/tpu.rs +++ b/core/src/tpu.rs @@ -104,6 +104,10 @@ impl SigVerifier { // Conservatively allow 20 TPS per validator. pub const MAX_VOTES_PER_SECOND: u64 = 20; +/// Size of the channel between streamer and TPU sigverify stage. The values have been selected to +/// be conservative max of obsersed on mnb during high-load events. +const TPU_CHANNEL_SIZE: usize = 50_000; + pub struct Tpu { fetch_stage: FetchStage, sig_verifier: SigVerifier, @@ -180,7 +184,7 @@ impl Tpu { vortexor_receivers, } = sockets; - let (packet_sender, packet_receiver) = unbounded(); + let (packet_sender, packet_receiver) = bounded(TPU_CHANNEL_SIZE); let (vote_packet_sender, vote_packet_receiver) = unbounded(); let (forwarded_packet_sender, forwarded_packet_receiver) = unbounded(); let fetch_stage = FetchStage::new_with_sender(