Skip to content

feat: lower default time-to-build-proposal from 500ms to 200ms#2787

Closed
gakonst wants to merge 1 commit intomainfrom
alexey/lower-build-proposal-deadline
Closed

feat: lower default time-to-build-proposal from 500ms to 200ms#2787
gakonst wants to merge 1 commit intomainfrom
alexey/lower-build-proposal-deadline

Conversation

@gakonst
Copy link
Contributor

@gakonst gakonst commented Feb 19, 2026

Lower the default --consensus.time-to-build-proposal from 500ms to 200ms.

Steady <1s block time, can fit 9-10k transactions into a block.

image

Prompted by: alexey

@shekhirin shekhirin added C-enhancement New feature or request A-block-building Related to block building labels Feb 19, 2026
/// for the leader to enter the view, build and broadcast the proposal, and
/// have the other peers receive the proposal.
#[arg(long = "consensus.time-to-build-proposal", default_value = "500ms")]
#[arg(long = "consensus.time-to-build-proposal", default_value = "200ms")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What worries me is the effect that this might have on subblocks (see below).

We only give it 100ms. While 100ms < 200ms this probably means that subblocks would only land under optimal network conditions and with virtually no clock drift.

@SuperFluffy SuperFluffy force-pushed the alexey/lower-build-proposal-deadline branch from fbf0e8d to 47f1aa3 Compare February 20, 2026 23:39
@SuperFluffy SuperFluffy reopened this Feb 20, 2026
@shekhirin shekhirin force-pushed the alexey/lower-build-proposal-deadline branch from 2a6806d to 963f963 Compare February 23, 2026 11:35
@shekhirin shekhirin changed the title feat: lower default time-to-build-proposal from 500ms to 200ms feat: lower default time-to-build-proposal from 500ms to 300ms Feb 23, 2026
@shekhirin shekhirin force-pushed the alexey/lower-build-proposal-deadline branch from 963f963 to e15aec7 Compare February 23, 2026 12:09
@shekhirin shekhirin changed the title feat: lower default time-to-build-proposal from 500ms to 300ms feat: lower default time-to-build-proposal from 500ms to 200ms Feb 23, 2026
@shekhirin shekhirin marked this pull request as ready for review February 24, 2026 17:29
github-merge-queue bot pushed a commit that referenced this pull request Feb 24, 2026
Lowers `--consensus.wait-for-proposal` from 2s to 1200ms.

Right now, the default values for `--consensus.wait-for-proposal` and
`--consensus.wait-for-notarizations` are the same, which makes no sense
(timers for both start at the same time and notarizations always come
after proposals).

Related #2787
Copy link
Contributor

@SuperFluffy SuperFluffy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving but would like @klkvr to leave a comment on how they expect this to interact with subblocks.

@shekhirin
Copy link
Member

Superseded by #2939

@shekhirin shekhirin closed this Mar 2, 2026
github-merge-queue bot pushed a commit that referenced this pull request Mar 9, 2026
Supersedes #2787

## Problem

Payload building is currently limited by a 500ms deadline. Builder can
only enforce the time it spends on transaction execution, but there's
always an additional overhead of state root calculation.

## Solution

Lower the time we give payload builder to execute transactions to 200ms,
but wait until 450ms before returning the built block back to consensus
to ensure the ~ stable block time at 500ms.

<img width="5120" height="4567" alt="image"
src="https://github.com/user-attachments/assets/dd8233ec-4b78-4042-9920-7f4073f80888"
/>


## Changes

* Interrupt payload building at T+200ms (this gives us a budget of
additional 250ms for state root calc)
https://github.com/tempoxyz/tempo/blob/f7a56d6c17da92f3870a83d1fc6b8c2f8a8b05db/crates/commonware-node/src/consensus/application/actor.rs#L583-L585
* Wait until T+450ms to return the block to consensus (this + some
propagation overhead determines the block time)
https://github.com/tempoxyz/tempo/blob/f7a56d6c17da92f3870a83d1fc6b8c2f8a8b05db/crates/commonware-node/src/consensus/application/actor.rs#L582
https://github.com/tempoxyz/tempo/blob/f7a56d6c17da92f3870a83d1fc6b8c2f8a8b05db/crates/commonware-node/src/consensus/application/actor.rs#L600

---------

Co-authored-by: Richard Janis Goldschmidt <github@aberrat.io>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-block-building Related to block building C-enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants