v2.1.2-3
This release fixes a crash on testnet that v2.1.2 nodes are likely to experience on startup. This release also allows nodes that did not follow the testnet activation of Heartwood to properly roll back and follow the Heartwood activation on testnet.
In addition, we have ensured that this release’s end-of-service halt is in the middle of July, just prior to our anticipated activation of Heartwood on mainnet.
We recommend that anyone testing their integration with Heartwood should upgrade to this release.
As a reminder, 2.1.2 included the following major changes:
-
Support for Sapling viewing keys (specifically, Sapling extended full viewing keys, as described in ZIP 32), has been added to the wallet. Nodes will track both sent and received transactions for any Sapling addresses associated with the imported Sapling viewing keys.
-
Removal of time adjustment and the
-maxtimeadjustment=
option. Prior to v2.1.1-1, zcashd would adjust the local time that it used by up to 70 minutes, according to a median of the times sent by the first 200 peers to connect to it. This mechanism was inherently insecure, since an adversary making multiple connections to the node could effectively control its time within that +/- 70 minute window (this is called a "timejacking attack"). As a simplification the time adjustment code has now been completely removed, together with-maxtimeadjustment=
. Node operators should instead ensure that their local time is set reasonably accurately. -
View shielded information in wallet transactions. In previous zcashd versions, there were no RPC methods that directly returned details about spends, or anything equivalent to the
gettransaction
method (which returns transparent information about in-wallet transactions). This release introduces a new RPC methodz_viewtransaction
to fill that gap. -
Better error messages for rejected transactions after network upgrades. Starting from this release, zcashd nodes will re-verify invalid transparent and Sprout signatures against the consensus branch ID from before the most recent network upgrade. If the signature then becomes valid, the transaction will be rejected with the error message
old-consensus-branch-id
. This error can be handled specifically by wallet providers to inform the user that they need to upgrade their wallet software. -
A new config option
-txexpirynotify
has been added that will cause zcashd to execute a command when a transaction in the mempool expires. -
The
z_importkey
andz_importviewingkey
RPC methods now return the type of the imported spending or viewing key (sprout or sapling), and the corresponding payment address. -
Negative heights are now permitted in
getblock
andgetblockhash
, to select blocks backwards from the chain tip. A height of -1 corresponds to the last known valid block on the main chain. -
A new RPC method
getexperimentalfeatures
returns the list of enabled experimental features. -
The
--enable-lcov
,--disable-tests
, and--disable-mining
flags forzcutil/build.sh
have been removed. You can pass these flags instead by using theCONFIGURE_FLAGS
environment variable. Also, the build system no longer defaults to verbose output.