v1.7.13 — Block-STM stack + head-anchored sync + stale-chain auto-recovery
v1.7.13 — Block-STM stack + head-anchored sync + stale-chain auto-recovery
Consensus / execution
- Full Block-STM parallel-execution stack with the contended-storage determinism fix (conflict-free blocks keep full parallelism; any re-execution falls back to a guaranteed sequential rebuild). Verified flake-free via an adversarial parallel-vs-sequential fuzz gate (K=20000, 3/3 clean). Gated behind
--parallel-committed-exec(default OFF) — the fleet runs the proven sequential path; the parallel path ships ready for its operational rollout. - Deterministic committed-block backpressure (
--max-txs-per-committed-block, default 256) — bounds per-committed-block tx count identically across validators. - Phase 1b adaptive per-block committed-execution routing (compute-heavy blocks only).
Networking / sync
- Head-anchored chain sync — each batch re-anchors to the real chain head, eliminating the permanent intra-round gaps that caused "invalid parent block" log storms and
received=N inserted=0resync stalls.MaxSyncBlocks1000 -> 256 so a body message applies within the timeout window. - Stale-chain auto-recovery — a node that falls irrecoverably behind (500 consecutive parent-hash failures AND peers >=50 blocks ahead) auto-wipes
chaindata/+snapshots/(validator keys preserved) and restarts to resync. Self-heals a forked/stuck node without operator intervention. ErrInvalidParentdemoted to Debug (expected during catch-up); sync counters made atomic (race fix).
Source: hyperspaceai/a1-blockchain @ main. Linux amd64. Verified live on the 4-validator + 3-bootnode testnet (chainId 808080), hash-agreeing, no fork.