From 2b623c672a9950b5e7c86b51e0fda2dfaf0097b2 Mon Sep 17 00:00:00 2001 From: kirill lykov Date: Thu, 15 Jan 2026 08:47:12 +0100 Subject: [PATCH] streamer/sigverify: use bounded channels between streamers and sigver (#9732) use bounded channels between streamers and sigver (cherry picked from commit 3cc01db56512d844e3f2ad1d9f74b7b111d92d0a) --- core/src/tpu.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/tpu.rs b/core/src/tpu.rs index 863cdfa54ff..b2c921b1f44 100644 --- a/core/src/tpu.rs +++ b/core/src/tpu.rs @@ -102,6 +102,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, @@ -176,7 +180,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(