BRIP-0003: Stable Block Time

Discussion thread for BRIP-0003 – Stable Block Time

Berachain currently maintains a block time of approximately 2 seconds — the time it takes to build, verify, and commit a block. This timing is primarily determined by tuning the consensus parameter timeout_commit, which effectively pauses block producers for 500 ms before producing the next block.

Berachain’s block time can fluctuate due to factors such as network issues, validator downtime, or validators exiting the set. These events can accelerate or delay block production, which in turn impacts BGT inflation. Notably, timeout_commit is fixed at 500 ms and does not adapt to changes in network conditions.

While CometBFT does not support a fixed block time like Ethereum, it does provide a feature called Predictable Block Time, which can help stabilize our 2-second block time in the face of such events.

In essence, Stable Block Time allows block producers to monitor long-term average block times and introduce delays as needed to maintain a target time (e.g., 2 seconds). For example:

  • If a block is finalized earlier than expected, the block producer introduces a brief delay before producing the next block to align with the target block time.
  • If a block is finalized on time or later, no delay is added, allowing the chain to proceed at maximum speed—unlike the current setup, which still enforces a 500 ms wait.

Importantly, this delay is synchronized across all validators to ensure that no proposer misses their turn or forfeits rewards.

Stable Block Time is expected to make BGT inflation more consistent by stabilizing the pace of block production. It also enables core maintainers to implement performance optimizations without risking excessive network acceleration—which could disrupt inflation targets or necessitate further tuning.

The full implementation specification can be found on GitHub for BRIP-0003.