As we mentioned in our blog posts regarding releases 5.1.0 and 5.2.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 in 5.3.0 to reduce concurrent memory utilization during scanning among other memory and performance related optimisations in the zcashd
node.
ECC’s No. 1 priority at the moment is updating the Zcash protocol and our wallet SDKs to help third-party providers fix wallet syncing issues. An increased on-chain transaction load has resulted in unacceptable sync times for many everyday users, and ecosystem partners are also affected. We are focused — across teams — on alleviating these issues as soon as possible, so Zcash users have an experience they expect and deserve. Our immediate objectives are centered on working with third-party wallets that are built on the ECC SDKs (Edge, Nighthawk and Unstoppable) as well as continuing to make improvements to node performance and memory usage.
Wallet Performance Improvements
zcashd 5.2.0
improved the performance of wallet scanning with multithreaded batched trial decryption of Sapling outputs. However, for some nodes this resulted in growing memory usage that would eventually cause an OOM abort. We have identified the cause of the growth, and made significant improvements to reduce the memory usage of the batch scanner. In addition, the batch scanner now has a memory limit of 100 MiB.
zcashd
now reports the following new metrics when -prometheusport
is set:
- (counter)
zcashd.wallet.batchscanner.outputs.scanned
- (gauge)
zcashd.wallet.batchscanner.size.transactions
- (gauge)
zcashd.wallet.batchscanner.usage.bytes
- (gauge)
zcashd.wallet.synced.block.height
RPC Interface
- The
finalorchardroot
field in thegetblock
result and theorchard.commitments.finalRoot
field in thez_gettreestate
result have been changed to match the byte ordering used for theorchard.anchor
field in thegetrawtransaction
result. These previously produced different hash values from the orchard.anchor field due to having been byte-flipped in their internal representation inzcashd
.
The binaries for the 5.3.0 release will be available on our download site shortly and the Zcash Schedule page has been updated to reflect this release.