New Release: 2.0.5-2

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.

Notable Changes

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 zcash.conf.

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


  1. Sprout-to-Sapling migration (#3848#3888#3967#3973#3977)
  2. Activate turnstile on mainnet (#3968)
  3. Update boost to v1.70.0 to eliminate build warning (#3951)
  4. Fix new HD seed generation for previously-encrypted wallets (#3940)
  5. Fix enable-debug build DB_COINS undefined (#3907)
  6. Update “Zcash Company” to “Electric Coin Company” (#3901)
  7. Support additional cross-compilation targets in Rust (#3505)


  1. We fixed an issue that would cause the Zcashd to crash when calling z_getmigrationstatus while a wallet’s migration transactions were in the mempool. (#3987)
  2. 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)
  3. 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)


  1. We prevented zcashd from trying to send migration transactions when it is syncing. (#3987)
  2. We increased the expiry height for migration transactions to 450. (#3995)
  3. 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.