With NU6.3 “Ironwood” now live on Mainnet, this period was about following through on the work around it. We published Zebra 6.3.0, a recommended security release, and merged a notable new capability: Zebra can now serve light wallets directly, without a separate lightwalletd server sitting in between (the feature we flagged as in progress last time). We also published a guide for zcashd operators moving to Zebra, and began early work on a faster way for nodes to connect to each other.
Security
We published Zebra 6.3.0 as a recommended security release, and we encourage all node operators to upgrade. It formally resolves four security advisories in how a node keeps up with the latest blocks and scores its peers: the sync and peer-handling fixes we described in the last update, now packaged and released. These keep nodes syncing smoothly near the chain tip and make sure honest peers aren’t disconnected or penalised by mistake, while genuinely misbehaving peers are handled properly.
CI / DevOps
After the release-pipeline rebuild we covered last time, this was a quieter stretch on the release and CI side: mostly reliability fixes to our automated checks, such as stopping stray edits from cancelling in-progress checks, along with a move to a new changelog tool.
Other Zebra work
Zebra can now run as a lightwalletd server: we merged an initial, lightwalletd-compatible server built directly into Zebra (turned off by default for now), so an operator can serve light wallets straight from their own node. This is the effort we flagged as in progress last time.
We also published a migration guide for people moving an existing zcashd node over to Zebra, walking through the recommended path via the compatibility sidecar. And we fixed a handful of edge cases that could stop a node from accepting or relaying transactions under unusual conditions: freeing a peer’s slot after a verification timeout, keeping the mempool working when optional consumers aren’t connected, and not dropping a status update in a rare corner case, so transactions keep flowing normally.
FROST work
In frost-tools, @aryaethn added support for signing the new Ironwood transactions, so multi-party signers can now approve Ironwood shielded spends and not just the previous format.
Work in progress
New this period, we have started early, experimental work on a faster way for nodes to connect and exchange data, built on QUIC (a modern network protocol). It runs alongside the existing connection method and is off by default while we develop it; you can follow the draft work here.
Work on other repositories
On Zinder, our still-alpha service that indexes the chain from a Zebra node and serves a shared, consistent view to wallets and other tools, we added support for serving compact blocks and explorer-style data views.
Thanks to external contributors
Thanks to @questfever for a fix that stops a node from crashing at startup when a size setting in its configuration is too large: it now reports a clear error instead. Thanks to @robustfengbin for adding fuzz-testing harnesses that let Zebra’s networking and consensus code be probed continuously for bugs through OSS-Fuzz.
And also thanks to @CodeMongerrr, @aryaethn and @syszery for their contributions.