Zebra 5.1.0: Sync Stall Repair and Prolonged Peer Diagnostics
We’re releasing Zebra 5.1.0 at present. This launch resolves a long-standing genesis-to-tip sync stall that would go away nodes caught mid-sync, raises the minimal community protocol model to NU6.2, and extends the getpeerinfo RPC with further peer metadata. All node operators are inspired to improve.
Breaking Modifications
Minimal Community Protocol Model Raised to NU6.2
Zebra now requires all friends to barter at the least the NU6.2 protocol model (170150). Friends promoting an older model can be rejected at connection time. This ensures Zebra solely connects to nodes that help the foundations launched with the NU6.2 community improve, and displays the present state of the Zcash mainnet peer inhabitants. (#10692, #10704)
deferred_pool_balance_change Faraway from Block Sorts
The deferred_pool_balance_change area has been faraway from ContextuallyVerifiedBlock, SemanticallyVerifiedBlock, and CheckpointVerifiedBlock. The worth is now calculated on demand somewhat than saved on the block struct. Code that accessed this area straight will should be up to date. (#10392)
New Options
Prolonged getpeerinfo RPC
The getpeerinfo RPC response now contains further peer metadata, giving node operators and mining software program richer diagnostic details about related friends. (#10443)
Bug Fixes
Genesis-to-Tip Sync Stall Resolved
An extended-standing bug (#5709) may trigger Zebra to stall part-way via an preliminary sync from genesis. The stall occurred as a result of repeated tip-reset occasions weren’t dealt with accurately, leaving the node ready indefinitely for blocks it will by no means obtain from the present peer set. This launch tackles the signs of the underlying timing situation, permitting a full preliminary sync to finish reliably. (#10679)
getrawmempool Efficiency
The getrawmempool RPC beforehand rebuilt the mempool transaction index as soon as per transaction when formatting the response. The index is now constructed a single time per name, which meaningfully reduces response latency on nodes with massive mempools. (#10599)
State: dequeue_children Index Dealing with
A bug within the non-finalized state’s dequeue_children by-height index may produce incorrect index entries below sure block sequencing circumstances. This has been corrected. (#10604)
Inner Enhancements
This launch contains a number of enhancements to Zebra’s CI pipeline that strengthen the reliability of the event workflow:
- Required standing checks can not cross earlier than all checks have completed working. Beforehand, the Mergify merge queue may advance PRs earlier than unit checks accomplished, permitting failing checks to slide via undetected. (#10637)
- Mounted a block-tip race situation within the
getblocktemplateintegration take a look at that had been inflicting intermittent CI failures since late Might. (#10702) - Restored foremost department CI checks that had been damaged. (#10700)
Upgrading
We encourage all Zebra node operators to improve to five.1.0. The sync stall repair is especially impactful for operators working a full preliminary sync — in case your node has ever stalled earlier than reaching the chain tip, this launch addresses the underlying trigger. Yow will discover the discharge on GitHub, crates.io and Docker Hub.
Thank You to Our Contributors
This launch was made potential by the work of @conradoplg, @gustavovalverde, @judah-caruso, @oxarbitrage, @syszery, and @upbqdn. Thanks to your continued contributions to Zebra.
Zebra is the Zcash Basis’s unbiased, Rust-based implementation of the Zcash protocol. Study extra at github.com/ZcashFoundation/zebra.
