v0.9.3-i
Pre-release
Pre-release
What's Changed
Fixed
- Consensus: the live vote executor propagates allocator failure instead of reporting it as success.
0.9.3-hdescribed 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 abank_hashno 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(default60) andVEX_PACK_MAX_SCAN(default100000). 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.zigpins 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 be0.
Removed
- Two
.origfiles — 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_BROADCASTshould stay off.
Full Changelog: v0.9.3-h...v0.9.3-i