New Release: 2.0.2

This release adds further support for Sapling in the zcashd wallet RPC and mitigates an issue identified by an external auditor. Information on the Sapling network upgrade (which activated on Oct 28th 2018) can be found below:

Notable Changes in this Release

RPC z_getnewaddress now returns a Sapling address by default

Previously when calling z_getnewaddress a Sprout shielded address would be returned by default. With this release, a Sapling shielded address will be returned by default.

RPC z_mergetoaddress is now Sapling ready

The z_mergetoaddress call is now supported by Sapling shielded addresses. This call remains an experimental feature so to enable it, users must restart zcashd with the -experimentalfeatures and
-zmergetoaddress commandline options, or add these two lines
to the zcash.conf file:

  • experimentalfeatures=1
  • zmergetoaddress=1

Transactions expiring soon will not be propagated

To address auditor issue ZEC-013 which identified a potential denial-of-service vector related to expiry height, nodes will no longer propagate transactions which are expiring soon, defined as within the next 3 blocks. For example, if the current block height is 99, and the next block to be mined is 100, a transaction with an expiry height of 100, 101, 102 will be considered “expiring soon” and will be rejected by the mempool. A transaction with an expiry height of 103 will be accepted. This does not impact transactions which have disabled expiry height (by setting to 0).

New Signing Key

Users upgrading to 2.0.2 via the Debian package will need to get the new signing key. 

If you see a message about the package being unauthenticated or unverifiable, including:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C2A798EF998940FA 

Do not upgrade anyway if prompted. Instead, follow the guide found in the Debian Binary Package Setup docs.

Summary of the Changes Included in this Release

  1. Add Sapling support to RPC z_mergetoaddress (#3619)
  2. Mitigate ZEC-013 transaction expiry height related DoS vector (#3689)
  3. Return Sapling addresses by default when calling RPC z_getnewaddress (#3680)
  4. Add Sapling spend and output description benchmarks to RPC zcbenchmark (#3611)
  5. Fix bug with Sapling chain value tracking (#3684)
  6. Fix encoding bug with non-ASCII parameter paths, primarily affecting Windows (#3633)
  7. Backport from upstream the relaying of blocks when pruning (#2815)
  8. Don’t ban peers when loading pre-Sapling blocks during syncing (#3670)
  9. Fix bug with contents of default memo in Sapling (#3605)
  10. Update tests for Sapling (#3585#3588)

For a more complete list of changes, please see the 2.0.2 milestone.

For information on specific Sapling RPC parameter changes, please see the Network Upgrade Developer guide.