ZF Engineering Update: 2024 Sprint 25 (December 3rd - December 16th)

Hi everyone,

This is the Zcash Foundation’s Engineering update for Sprint 25 (December 3rd - December 16th) our final official sprint for this year.

During this Sprint, the Zebra team continued to work on expanding the set of RPCs that Zebra exposes in order to enable zcashd to be deprecated. We have now completed the work to update the getrawtransaction RPC so that error codes for this and other RPC methods match zcashd error codes more closely. There are still some additional fields that could be added to the getrawtransaction RPC in order to fully match zcashd output, and we can add these if they are requested by users. We have also worked on ensuring that the getblock RPC matches zcashd output at verbosity=2 more closely. Previously zebra treated verbosity level 2 the same as zcashd verbosity level 1. There are still some missing fields that are present in zcashd at verbosity level 2 and these can also be added if requested by users.

We have also been working with QEDIT to support ZSAs in zebra, and have been helping them with changes and additional consensus rules checks in zebra-state.

In order to help troubleshoot and fix a failing CI test, we made an improvement to the usability of zebra by exposing the exact reason for failure when a transaction fails to pass consensus validation. We have also fixed a number of lightwalletd tests that had started failing on our CI

During this sprint, we released Zebra 2.1.0 which included some of the work mentioned above as well as some necessary updates and fixes post-NU6 activation.

Finally, we’ve been improving our regtest capabilities by allowing transactions which spend coinbase inputs to have transparent outputs on regtest.

On the FROST project, we’ve mostly been focusing on getting the FROST for Zcash demo finalised and ready for audit and production usage. During this sprint we have been working on a number of server clean ups, including improvements to session management and improvements that will add https support for the server and force encryption and authentication when using http. We have also been working on a number of client clean ups such as allowing management of address book entries, adding the ability to manage multiple FROST signing groups.

On DevOps we’ve been working on how we deal with zebra cached states in both dev and prod environments to enable us to take advantage of these cached states when we deploy new versions of zebra without needing to re-sync the whole chain state.

Thank you for reading!

9 Likes