Hi everyone,
This is the Zcash Foundation’s Engineering update for Sprint 18 (August 27th - September 9th.)
During this sprint we released Zebra 1.9.0 to successfully activate NU6 on testnet, along with an equivalent zcashd release. We’ll be monitoring our testnet nodes to watch out for any potential necessary changes ahead of NU6 mainnet activation, which is currently on track to happen at some point during November, at the next halving.
With NU6 activation on track we have switched our focus back to zcashd deprecation work, to that effect, we have started looking into zcashd’s RPC test suite in order to help us find inconsistencies between zcashd and zebrad nodes. We have started to migrate this testing framework to zebra and have implemented two new RPC methods: generate
and stop
to support this.
We have continued to refine the proposed architecture for a zcashd replacement wallet by participating in a number of discussions focused on the indexing functionality and updating the proposed architecture as a result.
We also worked on an issue with the sendrawtransaction
RPC method, reported by @hanh, whereby zebrad was failing to add transactions to its mempool or return an error describing why transactions weren’t added to the mempool. We are now returning a specific error message when transactions fail to verify in the sendrawtransaction
RPC method.
Work on FROST during this sprint included trying out Stack Wallet which implements FROST support for bitcoin and gathering usability feedback on FROST during a call with the Stack Wallet team. The team also worked on a design for managing public key information from other participants (to encrypt and authenticate messages) in a shared FROST wallet. We also made progress on a command line tool named frost-client
, implementing the aforementioned contact management.
Devops work included migrating our tag protection rules to github rulesets ahead of Github deprecation of this feature. Related to this, we are reviewing our use of Mergify to see if it can be replaced with Github’s own merge queues as Mergify does not currently support use of Github rulesets. If so, this could save us some money in Mergify subscription costs. In order to improve overall testnet network health and monitor zebras in the wild, we are also looking into deploying some long-lived zebra nodes on testnet and improving how we use and persist cached states to disk. We also completed the work to improve our caching of Rust dependencies in CI. This will allow us to skip some rebuilds and have already seen a ~36% improvement in build times. We have shared our experiences with the rest of the Rust community with the hopes that it will help others facing similar challenges.
Thank you for reading!