Skip to content

Commit

Permalink
fix(consensus): add a safety margin so the batcher stops building ear…
Browse files Browse the repository at this point in the history
…ly enough

This should become configurable as part of a refactor Guy will do to the consensus configs.
  • Loading branch information
matan-starkware committed Dec 16, 2024
1 parent 2602630 commit ba860d5
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ type HeightToIdToContent =
type ValidationParams = (BlockNumber, ValidatorId, Duration, mpsc::Receiver<ProposalPart>);

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<dyn BatcherClient>,
Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ use starknet_types_core::felt::Felt;

use crate::sequencer_consensus_context::SequencerConsensusContext;

const TIMEOUT: Duration = Duration::from_millis(100);
const TIMEOUT: Duration = Duration::from_millis(200);
const CHANNEL_SIZE: usize = 5000;
const NUM_VALIDATORS: u64 = 4;
const STATE_DIFF_COMMITMENT: StateDiffCommitment = StateDiffCommitment(PoseidonHash(Felt::ZERO));
Expand Down
3 changes: 1 addition & 2 deletions crates/starknet_batcher/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ pub(crate) fn deadline_as_instant(
let time_to_deadline = deadline - chrono::Utc::now();
let as_duration =
time_to_deadline.to_std().map_err(|_| BatcherError::TimeToDeadlineError { deadline })?;
// TODO(Matan): this is a temporary solution to the timeout issue.
Ok((std::time::Instant::now() + (as_duration / 2)).into())
Ok((std::time::Instant::now() + as_duration).into())
}

pub(crate) fn verify_block_input(
Expand Down

0 comments on commit ba860d5

Please sign in to comment.