Skip to content

v1.7.13 — Block-STM stack + head-anchored sync + stale-chain auto-recovery

Choose a tag to compare

@twobitapps twobitapps released this 23 Jun 18:52
· 20 commits to main since this release

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=0 resync stalls. MaxSyncBlocks 1000 -> 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.
  • ErrInvalidParent demoted 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.