Skip to content

v1.7.7 — Mysticeti force-commit-at-frontier fix

Choose a tag to compare

@twobitapps twobitapps released this 29 Apr 03:18
· 20 commits to main since this release

v1.7.7 — Sui-style txpool admission control

Fixes a fundamental BFT safety violation that caused the chain to fork into 2-2 validator groups under any non-trivial load.

Root cause

hyperspace-edge/consensus/mysticeti/engine.go had a 2s wall-clock fallback that force-committed an empty block based on each validator's local DAG frontier when 2f+1 certs had not been reached. Each validator's frontier differs under network async, so the unilateral commits produced divergent block headers across validators → fork.

Same anti-pattern as 2026-04-09 four-way fork postmortem lesson #3: stalling is the correct BFT behavior; silently producing divergent blocks is not.

Fix

Replaced the force-commit branch with a no-op stuck-leader-tracking block. Mysticeti now waits indefinitely for 2f+1 certs (matching Sui reference). Liveness becomes a network/load problem to solve at the propagation layer, not a consensus shortcut.

Verification

7-node testnet (4 validators + 3 bootnodes), 100+ on-chain txs including 8-tx funding burst, Woppal deploy, simulator at 152 TPS, 56-channel offchain driver — all 7 nodes unanimous at H-25 throughout. Previously this load forked the chain in under 60 seconds.

Source: hyperspaceai/a1-blockchain@b7a6f57