Note: This release of Zcashd v2.0.5-2 is a hotfix release that all users are encouraged to upgrade to, especially users who built v2.0.5 or v2.0.5-1 from source. We became aware of issues in the Sprout-to-Sapling migration tool in these two prior versions. Zcashd v2.0.5-2 fixes the issues. Users who normally upgrade via Debian package repository or tarball download were not exposed to v2.0.5 or v2.0.5-1.
The v2.0.5 release added the Sprout-to-Sapling migration tool, introduced a new consensus rule on mainnet to reject blocks that violate turnstiles and adds 64-bit ARMv8 support. Zcashd v2.0.5-2 will be supported until block 598012, expected to arrive around 05 September 2019, at which point the software will end-of-support halt and shut down.
Sprout-to-Sapling Migration Tool
This release includes the addition of a tool that will enable users to migrate shielded funds from the Sprout pool to the Sapling pool while minimizing information leakage.
The migration can be enabled using the RPC
z_setmigration or by including
-migration in the
zcash.conf file. Unless otherwise specified funds will be migrated to the wallet’s default Sapling address; it is also possible to set the receiving Sapling address using the
-migrationdestaddress option in
See the blog post, documentation and ZIP 308 for more details.
Sprout-to-Sapling Migration Tool Fixes
The 2.0.5-1 and 2.0.5-2 releases include fixes to the Sprout to Sapling
Migration Tool found in testing.
New consensus rule: Reject blocks that violate turnstile
In the 2.0.4 release, the consensus rules were changed on testnet to enforce a new rule which marks blocks as invalid if they would lead to a turnstile violation in the Sprout or Shielded value pools. This release enforces the consensus rule change on mainnet.
The motivations and deployment details can be found in ZIP 209 and PR 3968.
Developers can use a new experimental feature
-developersetpoolsizezero to test Sprout and Sapling turnstile violations. See PR 3964 for more details.
64-bit ARMv8 support
Added ARMv8 (AArch64) support. This enables users to build zcash on even more devices.
For information on how to build see the User Guide.
Users on the Zcash forum have reported successes with both the Pine64 Rock64Pro and Odroid C2, which contain 4GB and 2GB of RAM respectively.
Just released, the Odroid N2 looks like a great solution with 4GB of RAM. The newly released Jetson Nano Developer Kit from Nvidia (also 4GB of RAM) is also worth a look. The NanoPC-T3 Plus is another option but for the simplest/best experience choose a board with 4GB of RAM. Just make sure before purchase that the CPU supports the 64-bit ARMv8 architecture.
Summary of the Changes
- Sprout-to-Sapling migration (#3848, #3888, #3967, #3973, #3977)
- Activate turnstile on mainnet (#3968)
- Update boost to v1.70.0 to eliminate build warning (#3951)
- Fix new HD seed generation for previously-encrypted wallets (#3940)
- Fix enable-debug build DB_COINS undefined (#3907)
- Update “Zcash Company” to “Electric Coin Company” (#3901)
- Support additional cross-compilation targets in Rust (#3505)
- We fixed an issue that would cause the Zcashd to crash when calling
z_getmigrationstatuswhile a wallet’s migration transactions were in the mempool. (#3987)
- We fixed an issue where the wallet would incorrectly calculate the amount to migrate and would not send as many migration transactions as it could each round of migration. (#3990)
- We fixed an issue that could cause Zcashd to crash while generating migration transactions if a wallet had a large number of sprout notes. (#3990)
- We prevented zcashd from trying to send migration transactions when it is syncing. (#3987)
- We increased the expiry height for migration transactions to 450. (#3995)
- We added additional logging to the Sprout to Sapling migration tool. (#4002)
For a complete list of changes in 2.0.5, 2.0.5-1 and 2.0.5-2, see the 2.0.5 milestone.