Zebra 5.1.0: Sync Stall Repair and Prolonged Peer Diagnostics
We’re releasing Zebra 5.1.0 at the moment. This launch resolves a long-standing genesis-to-tip sync stall that might 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 Adjustments
Minimal Community Protocol Model Raised to NU6.2
Zebra now requires all friends to barter at the very least the NU6.2 protocol model (170150). Friends promoting an older model might be rejected at connection time. This ensures Zebra solely connects to nodes that help the principles 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 reasonably than saved on the block struct. Code that accessed this area immediately will have to be up to date. (#10392)
New Options
Prolonged getpeerinfo RPC
The getpeerinfo RPC response now consists of 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
A protracted-standing bug (#5709) might trigger Zebra to stall part-way by way of 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 concern, 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 giant mempools. (#10599)
State: dequeue_children Index Dealing with
A bug within the non-finalized state’s dequeue_children by-height index might produce incorrect index entries beneath sure block sequencing circumstances. This has been corrected. (#10604)
Inside Enhancements
This launch consists of a number of enhancements to Zebra’s CI pipeline that strengthen the reliability of the event workflow:
- Required standing checks can not go earlier than all assessments have completed working. Beforehand, the Mergify merge queue might advance PRs earlier than unit assessments accomplished, permitting failing assessments to slide by way of undetected. (#10637)
- Fastened a block-tip race situation within the
getblocktemplateintegration check 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. You will discover the discharge on GitHub, crates.io and Docker Hub.
Thank You to Our Contributors
This launch was made attainable by the work of @conradoplg, @gustavovalverde, @judah-caruso, @oxarbitrage, @syszery, and @upbqdn. Thanks on 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.
