Skip to content

v0.9.3-i

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Jul 10:48

What's Changed

Fixed

  • Consensus: the live vote executor propagates allocator failure instead of reporting it as success. 0.9.3-h described this fix, but the released code did not contain it — the seven affected paths were still returning success. A dropped account write carries that account's lattice-hash delta, so losing one froze the slot with a missing contribution and produced a bank_hash no other node would agree with.
  • Block production: the cache of recently committed signatures is now populated on the parallel replay path as well as the serial one. It was previously populated only by the serial path, so with parallel execution selected it stayed empty and the producer's already-processed check never refused a candidate.

Changed

  • Block production: a leader slot packs for the whole slot rather than taking a single batch. Two new environment variables bound the work — VEX_PACK_BUDGET_MS (default 60) and VEX_PACK_MAX_SCAN (default 100000). Both have working defaults and need not be set.
  • Consensus: the vote-threshold percentage is computed in 128-bit arithmetic. The multiply by 100 overflowed 64 bits above roughly 184.5 million SOL of cluster-voted stake. The path is currently reached only with a zero operand, so no incorrect threshold has been computed.
  • Build: the production optimize mode is ReleaseFast, changed from ReleaseSafe. Note that the --release= value on the command line is inert — build.zig pins the mode — though omitting the flag still yields a Debug build. Binary size cannot detect the mistake, because a Debug binary is smaller than a ReleaseFast one. Verify from the artifact: strings <binary> | grep -c "reached unreachable code" must be 0.

Removed

  • Two .orig files — pre-fix copies of two consensus sources, about 1.0 MB — were tracked alongside the fixed originals and have been removed.

Transaction-bearing block production remains gated in this release. The two block-production items above remove defects on that path, but the remaining production-path work is not included here. VEX_TXBEARING_BROADCAST should stay off.

Full Changelog: v0.9.3-h...v0.9.3-i