@str4d str4d released this Aug 17, 2018 · 266 commits to master since this release

Assets 2

This release is 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

  1. Set the Sapling activation height for mainnet and testnet. (#3469)
  2. Adopted the official Sapling system parameters. (#3448)
  3. Added support for rollbacks of testnet. (#3443)
  4. Added experimental wallet support for Sapling z-addresses. (#3273, #3353, #3392, #3429, #3396, #3458)
  5. Added experimental support for building Sapling transactions. (#3417)
  6. Added experimental support for Sapling note encryption and decryption. (#3324, #3391)
  7. Accept the transaction expiry height as a parameter to RPC call createrawtransaction. (#3336)
  8. Prepared the codebase for ZIP 32 integration, including bumping the Rust compiler version to 1.28. (#3447)
  9. Begin checking the zk-SNARK parameter hash when loaded into memory. (#3441)
  10. Always record the best Sapling anchor on disk even if it is for the empty tree, because rollbacks may occur. (#3463)
  11. Fixed a bug where nodes may ban peers during synchronization before network upgrade activation. (#3410)
  12. Backport upstream improvements to InitialBlockDownload. (#3263)
  13. Update the mainnet checkpoints to improve the speed of initial synchronization. (#3246)

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