Hi everyone,
This is the Zcash Foundation’s Engineering update for Sprint 19 (September 10th - September 23rd.)
During the first half of this sprint a number of ZF engineers attended RustConf in Montreal. The rest of the team continued to focus on zcashd deprecation and specifically porting the RPC testing framework from zcashd to enable us to validate that we can match zcashd functionality once it is deprecated. This sprint, we specifically finished porting the framework and updated the implementation of the stop and getmininginfo methods to work with the RPC testing framework.
We also started work on a number of reported issues including fixes to the getrawtransaction RPC method so that its output matches zcashd and ensuring that Zebra can support TEX transactions by adding support for orphan transactions.
Finally, we fixed an issue whereby zebra was crashing during mining on testnet due to a missing parent block.
On FROST, work continued on providing a framework for wallets to integrate FROST and in particular the frost-client tool. During this Sprint, we finished the implementation of the contact management functionality, which will be used to support the exchange of participants’ public keys for encryption and authentication between participants in a FROST session. Additional enhancements to the frost-client tool to integrate both coordinator and participant workflows were also implemented. We have also been working on additions to ZIP-312: FROST for Spend Authorization Multisignatures to define how the randomizer should be handled in a Zcash scenario. We also made a small change to make FROST easier to use in different scenarios.
On the DevOps side we finished refactoring how we can re-use cached state disks for both our continuous integration (CI) tests and for any continuous deployment (CD) instances that we want to deploy whenever we update zebra’s main branch. This simplifies the search of cached states, and concentrates the responsibility on a single script and GitHub workflow.
This work lays the groundwork for ZF to improve testnet network health by deploying long-lived Testnet nodes with static IP addresses. In order to assess the health of our zebra nodes and identify potential bugs and issues, we have started to integrate Sentry on our testnet nodes and are already getting some useful feedback that we can use to make zebra more robust. We have also started looking into adding a healthcheck probe so that we can monitor our long lived testnet instances once they are up and running.
In order to ensure that we don’t introduce vulnerabilities into the zebra Docker images, we have also recently added Docker Scout to our CI in order to be alerted if any PR adds any package with known vulnerabilities before we make a new release.
Thank you for reading!