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.