254 lines
12 KiB
Markdown
254 lines
12 KiB
Markdown
Notable changes
|
|
===============
|
|
|
|
The mainnet activation of the NU5 network upgrade is supported by the 5.0.0
|
|
release, with an activation height of 1687104, which should occur on
|
|
approximately May 31, 2022. Please upgrade to this release, or any subsequent
|
|
release, in order to follow the NU5 network upgrade.
|
|
|
|
The following ZIPs are being deployed, or have been updated, as part of this upgrade:
|
|
|
|
* [ZIP 32 : Shielded Hierarchical Deterministic Wallets (updated)](https://zips.z.cash/zip-0032)
|
|
* [ZIP 203: Transaction Expiry (updated)](https://zips.z.cash/zip-0203)
|
|
* [ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances (updated)](https://zips.z.cash/zip-0209)
|
|
* [ZIP 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext (updated)](https://zips.z.cash/zip-0212)
|
|
* [ZIP 213: Shielded Coinbase (updated)](https://zips.z.cash/zip-0213)
|
|
* [ZIP 216: Require Canonical Jubjub Point Encodings](https://zips.z.cash/zip-0216)
|
|
* [ZIP 221: FlyClient - Consensus-Layer Changes (updated)](https://zips.z.cash/zip-0221)
|
|
* [ZIP 224: Orchard Shielded Protocol](https://zips.z.cash/zip-0224)
|
|
* [ZIP 225: Version 5 Transaction Format](https://zips.z.cash/zip-0225)
|
|
* [ZIP 239: Relay of Version 5 Transactions](https://zips.z.cash/zip-0239)
|
|
* [ZIP 244: Transaction Identifier Non-Malleability](https://zips.z.cash/zip-0244)
|
|
* [ZIP 252: Deployment of the NU5 Network Upgrade](https://zips.z.cash/zip-0252)
|
|
* [ZIP 316: Unified Addresses and Unified Viewing Keys](https://zips.z.cash/zip-0316)
|
|
* [ZIP 401: Addressing Mempool Denial-of-Service (clarified)](https://zips.z.cash/zip-0401)
|
|
|
|
Feature Deprecation and removal
|
|
-------------------------------
|
|
|
|
`zcashd` now has a [process](https://zcash.github.io/zcash/user/deprecation.html)
|
|
for how features of the public API may be deprecated and removed. Feature
|
|
deprecation follows a series of steps whereby, over a series of releases,
|
|
features first remain enabled by default (but may be explicitly disabled), then
|
|
switch to being disabled by default, and eventually are removed entirely.
|
|
|
|
A new string-valued option, `-allowdeprecated` has been introduced to allow a
|
|
user to explicitly manage the availability of deprecated `zcashd` features. This
|
|
flag makes it possible for users to reenable deprecated methods and features
|
|
api that are currently disabled by default, or alternately to explicitly
|
|
disable all deprecated features if they so choose. Multiple instances of this
|
|
argument may be provided. A user may disable deprecated features entirely
|
|
by providing the string `none` as the argument to this parameter. In the case
|
|
that `none` is specified, multiple invocations of `-allowdeprecated` are not
|
|
permitted.
|
|
|
|
Deprecated
|
|
----------
|
|
|
|
As of this release, the following features are deprecated, but remain
|
|
available by default. These features may be disabled by setting
|
|
`-allowdeprecated=none`. After release 5.3.0, these features will be
|
|
disabled by default and the following flags to `-allowdeprecated` will
|
|
be required to permit their continued use:
|
|
|
|
- `legacy_privacy` - the default "legacy" privacy policy for z_sendmany
|
|
is deprecated. When disabled, the default behavior of z_sendmany will
|
|
conform to the `FullPrivacy` directive (introduced in 4.7.0) in all cases
|
|
instead of just for transactions involving unified addresses.
|
|
- `getnewaddress` - controls availability of the `getnewaddress` RPC method.
|
|
- `getrawchangeaddress` - controls availability of the `getrawchangeaddress` RPC method.
|
|
- `z_getbalance` - controls availability of the `z_getbalance` RPC method.
|
|
- `z_gettotalbalance` - controls availability of the `z_gettotalbalance` RPC method.
|
|
- `z_getnewaddress` - controls availability of the `z_getnewaddress` RPC method.
|
|
- `z_listaddresses` - controls availability of the `z_listaddresses` RPC method.
|
|
- `addrtype` - controls availability of the deprecated `type` attribute
|
|
returned by RPC methods that return address metadata.
|
|
|
|
As of this release, the following previously deprecated features are disabled
|
|
by default, but may be be reenabled using `-allowdeprecated=<feature>`.
|
|
|
|
- The `zcrawreceive` RPC method is disabled. It may be reenabled with
|
|
`allowdeprecated=zcrawreceive`
|
|
- The `zcrawjoinsplit` RPC method is disabled. It may be reenabled with
|
|
`allowdeprecated=zcrawjoinsplit`
|
|
- The `zcrawkeygen` RPC method is disabled. It may be reenabled with
|
|
`allowdeprecated=zcrawkeygen`
|
|
|
|
Option handling
|
|
---------------
|
|
|
|
- The `-reindex` and `-reindex-chainstate` options now imply `-rescan`
|
|
(provided that the wallet is enabled and pruning is disabled, and unless
|
|
`-rescan=0` is specified explicitly).
|
|
- A new `-anchorconfirmations` argument has been added to allow the user
|
|
to specify the number of blocks back from the chain tip that anchors will be
|
|
selected from when spending notes. By default, anchors will now be selected
|
|
to have 3 confirmations. Values greater than 100 are not supported.
|
|
- A new `-orchardactionlimit` option has been added to allow the user to
|
|
override the default maximum of 50 Orchard actions per transaction.
|
|
Transactions that contain large numbers of Orchard actions can use
|
|
large amounts of memory for proving, so the 50-action default limit is
|
|
imposed to guard against memory exhaustion. Systems with more than 16G
|
|
of memory can safely set this parameter to allow 200 actions or more.
|
|
|
|
RPC Interface
|
|
-------------
|
|
|
|
- The default `minconf` value for `z_sendmany` is now 10 confirmations instead
|
|
of 1. If `minconf` specifies a value less than that provided for
|
|
`-anchorconfirmations`, it will also override that value as it is not
|
|
possible to spend notes that are more recent than the anchor. Selecting
|
|
`minconf` values less than 3 is not recommended, as it allows the transaction
|
|
to be distinguished from transactions using the default for
|
|
`-anchorconfirmations`.
|
|
|
|
RPC Changes
|
|
-----------
|
|
|
|
- The deprecated `zcrawkeygen`, `zcrawreceive`, and `zcrawjoinsplit` RPC
|
|
methods are now disabled by default. Use `-allowdeprecated=<feature>`
|
|
to select individual features if you wish to continue using these APIs.
|
|
|
|
Build system
|
|
------------
|
|
|
|
- `zcutil/build.sh` now automatically runs `zcutil/clean.sh` to remove
|
|
files created by previous builds. We previously recommended to do this
|
|
manually.
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
- The `boost` and `native_b2` dependencies have been updated to version 1.79.0
|
|
|
|
Tests
|
|
-----
|
|
|
|
- The environment variable that allows users of the rpc (Python) tests to
|
|
override the default path to the `zcashd` executable has been changed
|
|
from `BITCOIND` to `ZCASHD`.
|
|
|
|
Changelog
|
|
=========
|
|
|
|
Alex Wied (1):
|
|
Cargo.toml: Rename hdwallet source
|
|
|
|
Charlie O'Keefe (1):
|
|
Use bullseye apt source in Dockerfile to match debian:11 base image
|
|
|
|
Daira Hopwood (9):
|
|
Fix to 4.7.0 release notes: testnet nodes that upgrade prior to height 1,842,420 actually still need to run with -reindex and -rescan.
|
|
zcutil/build.sh: Run zcutil/clean.sh before building. fixes #3625
|
|
Make `-reindex` and `-reindex-chainstate` imply `-rescan` (provided that the wallet is enabled and pruning is disabled, and unless `-rescan=0` is specified explicitly).
|
|
zcutil/build-debian-package.sh: copy executable and man page for zcashd-wallet-tool.
|
|
zcashd-wallet-tool: improve the error message for an invalid logging filter directive.
|
|
Change the numbering convention for hotfixes to increment the patch number, not the hyphen number. fixes #4364
|
|
Rename nOrchardAnchorConfirmations -> nAnchorConfirmations
|
|
Select an anchor and notes that have 10 confirmations.
|
|
Fix WalletTests.CachedWitnessesEmptyChain for new anchor selection.
|
|
|
|
Dimitris Apostolou (1):
|
|
Fix typo
|
|
|
|
Jack Grigg (5):
|
|
Update minimum chain work and set NU5 activation block hash for testnet
|
|
make-release.py: Versioning changes for 5.0.0-rc1.
|
|
make-release.py: Updated manpages for 5.0.0-rc1.
|
|
make-release.py: Updated release notes and changelog for 5.0.0-rc1.
|
|
Migrate to `zcash_primitives 0.6` et al
|
|
|
|
Kris Nuttycombe (40):
|
|
Update boost dependencies to version 1.79.0
|
|
Default to error logging if we can't parse the log filter.
|
|
Fix boolean initialization in Orchard transaction builder.
|
|
Use fallible version parsing for tags.
|
|
Allow deprecated wallet features to be preemptively disabled.
|
|
Remove zcrawreceive, zcrawjoinsplit, zcrawkeygen from default-allowed deprecated methods.
|
|
Add deprecation policy to the zcashd book.
|
|
Use ERROR level logging for fatal errors in main/init
|
|
Remove `-allowdeprecated=all`
|
|
Clarify documentation of the deprecation process.
|
|
Select Orchard anchors at `-orchardanchorconfirmations` depth.
|
|
Add anchor depth parameter to Get*NoteWitnesses
|
|
Disallow -anchorconfirmations values > 100
|
|
Add -anchorconfirmations to the release notes
|
|
Fix RPC tests that depend upon -anchorconfirmations=1
|
|
Add z_get(total)balance to deprecation flags.
|
|
Apply suggestions from code review
|
|
Gracefully handle Get(Sprout/Sapling)NoteWitnesses failure.
|
|
Add parity-scale-codec licenses to contrib/debian/copyright
|
|
Ensure transaction integer fields are zero-initialized.
|
|
Build releases from a commit hash, rather than a named branch.
|
|
Apply suggestions from code review
|
|
Update release process documentation to clarify the use of release stabilization branches.
|
|
Fix missing handling for imported transparent multisig addresses.
|
|
Change default anchor depth from 10 confirmations to 3
|
|
Use default anchor confirmations for minconf in z_mergetoaddress.
|
|
Add -orchardactionlimit parameter to guard against memory exhaustion.
|
|
Add -orchardactionlimit help text.
|
|
Postpone dependency updates prior to v5.0.0-rc1
|
|
Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt.
|
|
Fix a typo in the release script.
|
|
Fix typos in release notes & Orchard wallet internal API doc.
|
|
Add missing parenthesis to -reindex help.
|
|
Include getbalance in recommendations for z_getbalance and z_gettotalbalance replacements.
|
|
Add tests to check auth data commitments committing to Orchard actions.
|
|
Deprecate `getrawchangeaddress` and `z_listaddresses`
|
|
Update rpcwallet help to better distinguish transparent-only APIs.
|
|
Revert "Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt."
|
|
make-release.py: Versioning changes for 5.0.0.
|
|
make-release.py: Updated manpages for 5.0.0.
|
|
|
|
Larry Ruane (2):
|
|
Allow rpc python tests to be run standalone
|
|
ThreadStartWalletNotifier: wait until !IBD, rather than !reindex
|
|
|
|
Marek (2):
|
|
Document the block time in the `z_gettreestate` RPC response
|
|
Specify the format and epoch
|
|
|
|
Steven Smith (2):
|
|
Add orchard pool metrics
|
|
Require wallet recovery phrase to be backed up for z_getnewaccount and z_getaddressforaccount
|
|
|
|
Taylor Hornby (1):
|
|
Reproduce an assertion failure in the listaddresses RPC
|
|
|
|
dependabot[bot] (1):
|
|
Bump actions/checkout from 2 to 3
|
|
|
|
sasha (28):
|
|
Move LoadProofParameters to gtest/utils.cpp
|
|
add tx-orchard-duplicate-nullifiers.h to Makefile.gtest.include
|
|
Closing #1539 simplifies gtest Makefile.
|
|
remove JoinSplitTestingSetup from sighash_tests -- it doesn't need it
|
|
Make a LoadGlobalWallet and UnloadGlobalWallet for gtests
|
|
Remove proof parameter loading from btests
|
|
Separate test suite from tests, inspired by upstream's #12926
|
|
Allow parallel btest runs using make as the parallelization tool.
|
|
btest parallelization work: tag #if'd out test suites
|
|
Port btest test_basic_joinsplit_verification to gtest suite Joinsplit
|
|
Create a new gtest group WalletRPCTests
|
|
Port btest rpc_z_shieldcoinbase_internals to gtest suite WalletRPCTests
|
|
Port btest rpc_z_mergetoaddress_internals to gtest suite WalletRPCTests
|
|
Port btest rpc_z_sendmany_taddr_to_sapling to gtest suite WalletRPCTests
|
|
Downgrade btest suite coins_test to BasicTestingSetup
|
|
Make [seed_]insecure_rand available to the gtests
|
|
Create a new gtest suite CoinsTests
|
|
Port CCoinsViewTest to gtest suite CoinsTests
|
|
Port nullifier_regression_test to gtest suite CoinsTests
|
|
Port anchor_pop_regression_test to gtest suite CoinsTests
|
|
Port anchor_regression_test to gtest suite CoinsTests
|
|
Port nullifiers_test to gtest suite CoinsTests
|
|
Port anchors_flush_test to gtest suite CoinsTests
|
|
Port anchors_test to gtest suite CoinsTests
|
|
Update copyright header
|
|
Update comments in newly-ported gtests to be more consistent with current codebase
|
|
Tidy up spacing in newly-ported gtests
|
|
Remove -developersapling since it hasn't been implemented for a long time
|
|
|
|
teor (1):
|
|
Fix typo in getaddressbalance RPC help
|
|
|