From ae3ff8f671d1824bc2fa65b859e8a389e330476c Mon Sep 17 00:00:00 2001 From: Matan Markind Date: Mon, 16 Dec 2024 13:29:51 +0200 Subject: [PATCH] fix(consensus): add a safety margin so the batcher stops building early enough This should become configurable as part of a refactor Guy will do to the consensus configs. --- .../src/sequencer_consensus_context.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/sequencing/papyrus_consensus_orchestrator/src/sequencer_consensus_context.rs b/crates/sequencing/papyrus_consensus_orchestrator/src/sequencer_consensus_context.rs index 92e45cd85d..aa9f7d4493 100644 --- a/crates/sequencing/papyrus_consensus_orchestrator/src/sequencer_consensus_context.rs +++ b/crates/sequencing/papyrus_consensus_orchestrator/src/sequencer_consensus_context.rs @@ -79,6 +79,8 @@ type HeightToIdToContent = type ValidationParams = (BlockNumber, ValidatorId, Duration, mpsc::Receiver); const CHANNEL_SIZE: usize = 100; +// TODO(Guy): Move this to the context config. +const BUILD_PROPOSAL_MARGIN: Duration = Duration::from_millis(100); pub struct SequencerConsensusContext { batcher: Arc, @@ -153,8 +155,9 @@ impl ConsensusContext for SequencerConsensusContext { let proposal_id = ProposalId(self.proposal_id); self.proposal_id += 1; - let timeout = - chrono::Duration::from_std(timeout).expect("Can't convert timeout to chrono::Duration"); + assert!(timeout > BUILD_PROPOSAL_MARGIN); + let timeout = chrono::Duration::from_std(timeout - BUILD_PROPOSAL_MARGIN) + .expect("Can't convert timeout to chrono::Duration"); let now = chrono::Utc::now(); let build_proposal_input = ProposeBlockInput { proposal_id,