We’re happy to announce the release of Zcash 2.0.0, the first Sapling-compatible version of the Zcash node software!
Sapling Activation
Mainnet
This release is consensus-compatible with the Sapling network upgrade, and so we’re encouraging all users and miners to upgrade as soon as possible. The first block of Sapling will be block 419200, which is expected to be mined on the 28th of October 2018, the second anniversary of Zcash’s official launch. You can read more about the Sapling network upgrade here or on the Sapling Network Upgrade page.
Testnet
Sapling will activate on the testnet at block 280000, which is expected about a week after this release. Sapling had previously activated on testnet, but because changes were made to the consensus rules your node will automatically roll back and proceed on the Overwinter testnet branch until Sapling activates again at the new height.
Other Notable Changes
Experimental Sapling RPC Support
This release contains only experimental support for Sapling RPC functionality. Full support for Sapling RPC functionality will appear in the 2.0.1 release.
Developers must specify -experimentalfeatures
and -developersapling
to use the existing functionality on testnet after activation. Alternatively, developers can use these features in regtest mode.
Fix Peer Banning Bug Introduced In Overwinter
After Overwinter activation, nodes syncing from a block height prior to the activation height (347500) experienced slow syncing due to a peer banning mechanism that was introduced to mitigate against a class of DoS attacks from Sprout nodes. This fix replaces the use of peer banning with behavior to ignore invalid transactions.
Summary of the Changes Included in this Release
- Set the Sapling activation height for mainnet and testnet. (#3469)
- Adopted the official Sapling system parameters. (#3448)
- Added support for rollbacks of testnet. (#3443)
- Added experimental wallet support for Sapling z-addresses. (#3273, #3353, #3392, #3429, #3396, #3458)
- Added experimental support for building Sapling transactions. (#3417)
- Added experimental support for Sapling note encryption and decryption. (#3324, #3391)
- Accept the transaction expiry height as a parameter to RPC call
createrawtransaction
. (#3336) - Prepared the codebase for ZIP 32 integration, including bumping the Rust compiler version to 1.28. (#3447)
- Begin checking the zk-SNARK parameter hash when loaded into memory. (#3441)
- Always record the best Sapling anchor on disk even if it is for the empty tree, because rollbacks may occur. (#3463)
- Fixed a bug where nodes may ban peers during synchronization before network upgrade activation. (#3410)
- Backport upstream improvements to
InitialBlockDownload
. (#3263) - Update the mainnet checkpoints to improve the speed of initial synchronization. (#3246)
We’re encouraging all users and miners to upgrade to this new version. See the download page for more information.
For a more complete list of changes, see the 2.0.0 GitHub milestone. To follow our progress, watch the GitHub project and join the forum.