New Release 5.2.0

As we mentioned in our last blog post regarding release 5.1.0, the Zcash network is processing a significantly increased number of shielded transactions. The network remains stable and secure, transactions are being processed normally, and we are making additional performance improvements to both the zcashd wallet and full node as part of release 5.2.0.

We also have a cross-functional team working on performance improvements to our mobile wallet SDKs. Upcoming releases will focus on performance improvements in the SDK, which should translate to improved performance of third-party mobile wallets.

Node performance improvements

Transactions are fully checked by nodes when they are received on the network, whether they appear first in the mempool or in a block. However, some of these checks are expensive, so it’s best to perform them once and cache the results. If the checks are successful, they are not performed again.

As of this release, Sapling and Orchard zk-SNARK proofs are now leveraging this caching mechanism to avoid redundant verification costs and reduce block-verification time. This speeds up block propagation on the network (as this release is adopted by users) and improves the performance of nodes which produce block templates for miners.

In addition, this release backports more efficient caching and SHA256 implementations from upstream Bitcoin.

Wallet performance improvements

The wallet now performs trial decryption of Sapling outputs in batches and parallelizes these batches to improve scanning performance.

In addition, some inefficiencies in the zcashd wallet were identified and fixed in this release.

RPC interface changes

This release adds a version field to the gettransaction RPC call so that users do not need to make an extra getrawtransaction call just to receive the version of a transaction.

The Zcash Schedule page will be updated to reflect the 5.2.0 release.