This is an optional release with network hardenings for operators that experience issues with their nodes peer set connectivity or otherwise want to be proactive about avoiding such issues.
This release helps keep Zebra's peer set healthy. While syncing, outbound connection slots are
no longer occupied by peers that can't serve blocks, dropped outbound connections are proactively
replaced, and getaddr responses share more of the address book so peers can find more of the
network. Zebra also no longer disconnects peers during expected long gaps between blocks, or
penalizes them for briefly disagreeing about the NU6.3 activation.
Changed
- Mempool transaction relay no longer penalizes peers for adjacent NU6.2 and
NU6.3 branch ID mismatches during the 40 heights on either side of NU6.3
activation, avoiding bans caused by temporary chain-tip divergence
(#11113). - Chain synchronization now retains the final block hash returned by peers in
FindBlocks
responses, rather than discarding it to work around obsoletezcashdbehavior
(#11093). - The peer crawler now queues a connection attempt on each crawl interval for every spare
outbound connection slot that has a ready address book candidate, so dropped outbound
connections are proactively replaced until the outbound connection limit is reached.
Previously, new connections were only attempted when the peer set ran out of ready peers,
when a crawl found new addresses, or when the node had no outbound connections at all
(#11102). - Zebra now sends up to half of its address book in response to a
getaddrrequest, up from
a quarter, so peers can find more of the network from each response
(#11103). - The peer stall detector no longer disconnects peers for empty
FindBlocksorFindHeaders
responses while the node is within 1,000 estimated blocks of the network tip, avoiding false
stall detection during long gaps between blocks
(#11122). - Upgraded the librustzcash crate cohort (
orchard0.15.3,zcash_keys0.16.0,
zcash_primitives0.30.0,zcash_proofs0.30.0,zcash_transparent0.10.0) to the
released NU6.3 versions. No behavior change
(#11111).
Fixed
- Outbound peer slots no longer fill up with peers that advertise no services, which could stall
a fresh sync at genesis when most reachable listeners are non-serving. While syncing, Zebra
now requires theNODE_NETWORKservice from outbound peers; at or near the network tip it
accepts non-serving peers (like pruned nodes) again
(#11071). - The embedded zcashd-compat release manifest and the installer script now pin sidecar
zebra-compat-v1.1.0, which follows Mainnet past the NU6.3 (Ironwood) activation at block
3,428,143. The previouszebra-compat-v1.0.0sidecar predates the activation height and stops
following the chain at that block. Supervised deployments usingzcashd_source = "embedded"
must upgrade (or setzcashd_pathto a current sidecar binary) before activation
(#11112).