Skip to content

[consensus/simplex] Spend one fast-skip per leader between finalizations - #4541

Open
ControlCplusControlV wants to merge 3 commits into
commonwarexyz:mainfrom
ControlCplusControlV:fast-skip-per-leader
Open

[consensus/simplex] Spend one fast-skip per leader between finalizations#4541
ControlCplusControlV wants to merge 3 commits into
commonwarexyz:mainfrom
ControlCplusControlV:fast-skip-per-leader

Conversation

@ControlCplusControlV

@ControlCplusControlV ControlCplusControlV commented Aug 19, 2026

Copy link
Copy Markdown

This fix was mostly for our network which runs a single-leader configurations, where when the single proposer goes down, after SKIP_TIMEOUT progresses views begin churning incredibly fast at network speed. The fix is to basically only fast timeout a leader once and otherwise let views progress at their normal rate, as skipping the same leader on repeat accomplishes nothing and just pushes the network to failure faster.

Issues #626 and #2520 are also both related, where the network will eventually crash because of first too many open file descriptors, as well as out of memory.

A latched timeout expires its view immediately, so any sustained condition that
prevents finalization churned views as fast as nullifications circulated. Each
churned view writes a voter journal section that cannot be pruned while
`last_finalized` is frozen, so a stall grew the journal (and open file
descriptors) without bound.

Track which participants have been fast-skipped since the last finalization and
latch at most once per participant, leaving later timeouts for that leader to
expire on the round's own deadlines. Bits only accumulate while nothing
finalizes, so a stall shorter than one pass through the participant set behaves
exactly as before.
@patrick-ogrady

patrick-ogrady commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

This is an interesting idea 👀

@patrick-ogrady patrick-ogrady added this to the v2026.8.0 milestone Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants