Hi everyone,
This is the Zcash Foundation’s Engineering update for Sprint 16 (July 30th - August 12th.)
For this sprint, the Zebra team continued to work on the changes required to activate NU6 on testnet. To this effect we finished the implementation of ZIP-236: Blocks should balance exactly, the implementation of the lockbox pool and funding stream and its validation as per ZIP-2001: Lockbox Funding Streams .
We also worked a number of bugs and improvements that surfaced during our implementation of NU6 changes, such as a fix to properly populate sprout trees in tests, a refactor to avoid panics when calculating block subsidies for blocks with heights in the slow start interval, and the ability to avoid re-syncing a Zebra instance after a major database format update.
NU6 Activation on testnet has been pushed back to allow the ECC and ZF engineering teams more time to ensure that both node implementations implement the same functionality, that this is accurately reflected in the ZIPs and that both implementations are interoperable and fully tested on a private testnet ahead of the ZIP editors choosing a testnet activation height and, consequently, date. Once this height is chosen we can proceed to finish off the implementation of ZIP-253: Deployment of the NU6 Network Upgrade and tag a release for NU6 testnet activation.
On FROST, the team continued to work on adding the refresh share functionality in a distributed key generation (DKG) scenario to the FROST reference implementation. We have also been making some progress to make FROST work in Zcash, for various different scenarios, such as:
- researching the changes that would be needed in the orchard API in order to support FROST
- looking into what it would take to come up with a standard transaction plan that could be used during the process of signing a Zcash transaction using FROST, and
- investigating whether it would be possible to use FROST in a “nested” scenario with multiple levels of signing participants such as individuals within an organisation and multiple such organisations.
Finally, we have finished the work to update the signing tool we use for FROST in Zcash, which was based on an old version of Ywallet, and have updated our documentation accordingly.
On the DevOps side, we have finished working on documentation for a proposed change to how lightwalletd docker images are built and are waiting for this to be reviewed and merged. We have also been investigating some issues with our full sync tests hanging on testnet, which required fixing permissions on our Kubernetes cluster (where our self-hosted runner is hosted), to get the logs, and cleaning up some of our workflow files to remove warnings. And, continuing with our DNS Seeder work, we tried deploying the service using Cloud Run, but allowing this service to work through Google Global Load Balancer wasn’t as straightforward as previously estimated, so we will continue the work to keep our actual VM deployment, and update the documentation.
Thank you for reading!