Over the past two weeks we have shipped a new Zebra release, fixed a regtest networking bug that was blocking integration testing, continued steady progress on several long-running protocol features, and picked up new ZIP specification work.
We released Zebra 4.2.0, which included updated mainnet checkpoints and a number of bug fixes. Post-release, we also merged a PR to correct a block subsidy calculation where the Founders’ Reward was not being properly subtracted, which caused Zebra’s getblocksubsidy RPC to diverge from zcashd for older blocks. This fix will be available in the next Zebra release (likely 4.3.0.)
A significant chunk of work this period went into making the regtest stack reliable. We tracked down and fixed a bug to the way Zebra was broadcasting transactions on regtest mode. We are also working on adding a dedicated regtest block relay integration test to prevent regressions, and bumping the z3 stack to Zebra 4.2.0 with Zaino included, to bring the integrated test environment up to date with the latest Zebra version.
We also fixed an issue whereby zebrad was not writing all state to disk on shutdown, ensuring that non-finalized backup will always reflect Zebra’s chain state when shutting down.
On CI, resolved a CI link checker failure caused by GitHub’s rate limits, with a fix to make lychee handle rate-limited responses gracefully. We also patched a git leak where the agent-shell directory was being tracked, and opened a PR to migrate custom lints from .cargo/config.toml to Cargo.toml so that CI actually enforces them.
On the FROST side, we opened a tracking issue to implement COCKTAIL-DKG in the FROST library and filed detailed feedback on the COCKTAIL-DKG specification upstream in the C2SP repository. We also fixed a frostd networking issue to allow binding to non-loopback addresses when TLS is terminated externally, addressing a request from users running frostd behind a reverse proxy.
We have also been collaborating with other Zcash ecosystem engineers to continue to make progress on Zcashd deprecation. On the Zallet side, we are working on implementing z_importkey and z_exportkey for Sapling, along with accompanying integration tests. These are long-requested RPC methods that allow users to import and export Sapling spending keys, and are part of the broader effort to reach parity with zcashd’s wallet RPC surface.
During this period we also contributed to several active ZIPs:
- Block time reduction: We are reviewing a proposal to reduce block time from 75s to 25s.
- ZIP 316 Revision 2: A proposal to revise the unified address and viewing key standard is under active discussion.
- ZIP 2003 and ZIP 2004: We are engaged in discussion around disallowing v4 transactions in NU7 and removing the dependency of consensus on note encryption, both of which are candidates for inclusion in the next network upgrade.
- ZIP-204 (P2P protocol): We opened a PR to add a formal model reference to ZIP-204, continuing ongoing work to formalise the Zcash peer-to-peer protocol specification.
Thanks for reading!