zcash_script/depend/zcash/doc/release-notes/release-notes-5.6.0.md

11 KiB
Raw Blame History

Notable changes

Change to Transaction Relay Policy

Transactions paying less than the ZIP 317 conventional fee to the extent that they have more than -txunpaidactionlimit unpaid actions (default: 50) will not be accepted to the mempool or relayed. For the default values of -txunpaidactionlimit and -blockunpaidactionlimit, these transactions would never be mined by the ZIP 317 block construction algorithm. (If the transaction has been prioritised by prioritisetransaction, the modified fee is used to calculate the number of unpaid actions.)

Removal of Fee Estimation

The estimatefee RPC call, which estimated the fee needed for a transaction to be included within a target number of blocks, has been removed. The fee that should be paid under normal circumstances is the ZIP 317 conventional fee; it is not possible to compute that without knowing the number of logical actions in a transaction, which was not an input to estimatefee. The fee_estimates.dat file is no longer used.

RPC Changes

A new RPC method, z_getsubtreesbyindex, has been added to the RPC interface. This method is only enabled when running with the -experimentalfeatures=1 and -lightwalletd=1 node configuration options. This method makes available to the caller precomputed node values within the Sapling and Orchard note commitment trees. Wallets can make use of these precomputed values to make their existing notes spendable without needing to fully scan the sub-trees whose roots correspond to the returned node values.

In conjunction with this change, the getblock RPC method now returns an additional trees field as part of its result. The value for this field is an object that contains the final sizes of the Sapling and Orchard note commitment trees after the block's note commitments have been appended to their respective trees.

Error reporting has also been improved for a number of RPC methods.

Privacy Policy Changes

The AllowRevealedSenders privacy policy no longer allows sending from multiple taddrs in the same transaction. This now requires AllowLinkingAccountAddresses. Care should be taken in using AllowLinkingAccountAddresses too broadly, as it can also result in linking UAs when transparent funds are sent from them. The practical effect is that an explicit privacy policy is always required for z_mergetoaddress, z_sendmany, and z_shieldcoinbase when sending from multiple taddrs, even when using wildcards like * and ANY_TADDR.

Wallet Updates

A number of libraries that zcashd relies upon have been updated as part of this release, including some changes that result in updates to wallet serialization formats for Orchard note commitment tree data. As always, it is recommended that users back up their wallets prior to upgrading to a new release to help guarantee the continued availability of their funds.

Platform Support

  • Ubuntu 18.04 LTS has been removed from the list of supported platforms. It reached End of Support on May 31st 2023, and no longer satisfies our Tier 2 policy requirements.

Changelog

Daira Emma Hopwood (9): Remove fee estimation. Rename DEFAULT_FEE to LEGACY_DEFAULT_FEE in C++ code and RPC tests. Also remove DEFAULT_FEE_ZATS in RPC tests which was unused. Fix a false positive duplicate-#include lint. Avoid calling ParseNonRFCJSONValue for string-only parameters. Follow-up to #6617. Transactions paying less than the ZIP 317 conventional fee to the extent that they have more than -txunpaidactionlimit unpaid actions, will now not be accepted to the mempool or relayed. For the default values of -txunpaidactionlimit and -blockunpaidactionlimit, these transactions would never be mined by the ZIP 317 block construction algorithm. (If the transaction has been prioritised by prioritisetransaction, the modified fee is used to calculate the number of unpaid actions.) Improve handling of UAs as account proxies Restructure InvalidFunds error message Reformat InvalidFunds error message (this only changes indentation). contrib/debian/copyright: give more precise information for src/secp256k1

Daira Hopwood (4): Correct "height" -> "time" in release notes Link to ZIP 317 in the release notes Use DisplayMoney to simplify constructing an error message Change incorrect uses of "is not" to "!=".

DeckerSU (1): txdb: remove consistency checks

Greg Pfeil (24): Clarify wallet_doublespend RPC test Replace zec_in_zat with pre-existing COIN Reduce ZEC ⇒ ZAT conversions Reduce the scope of some constants Encapsulate memos Include memoStr in RPC results with memo Centralize ReceiverType conversions Display pass ratio in RPC test summary Print all invalid receivers when theres a failure Fix macOS build on CI Remove GitHub check for recent-enough branch Fix missing includes on macOS build Enable & error on all un-violated warnings Move warning flags to configure.ac Update comments on disabled warnings Fix a minor bug in an error message Document the Sprout cache used for RPC tests Make ./configure quieter by default Share RPC param table between client and server Better error for “wrong number of params” in RPC Improve CONFIGURE_FLAGS handling in build.sh Reword RPC error messege for wrong number of params Strengthen AllowRevealedSenders Have COutput carry its CTxDestination

Hennadii Stepanov (1): Use C++17 fallthrough attribute, and drop -Wno-implicit-fallthrough

Jack Grigg (34): Squashed 'src/secp256k1/' changes from 1758a92ffd..be8d9c262f Squashed 'src/secp256k1/' changes from be8d9c262f..0559fc6e41 Squashed 'src/secp256k1/' changes from 0559fc6e41..8746600eec Squashed 'src/secp256k1/' changes from 8746600eec..44c2452fd3 Squashed 'src/secp256k1/' changes from 44c2452fd3..21ffe4b22a rust: Migrate to secp256k1 0.26, hdwallet 0.4 Clear out v5.5.0 release notes Place Sapling {Spend, Output}Description fields behind getters Place vShieldedSpend, vShieldedOutput behind getters Remove Ubuntu 18.04 as a supported platform contrib: Update contrib/devtools/symbol-check.py Add Ubuntu 22.04 as a Tier 3 platform build: Consensus: Move Bitcoin script files from consensus to its own module/package build: Use libtool for linking librustzcash.a to the C++ code build: Fix --with-libs linking errors for MinGW cross-compilation rust: Add CBLAKE2bWriter support to CppStream Pass CChainParams into TransactionBuilder instead of Consensus::Params Pass ExtSK into TransactionBuilder::AddSaplingSpend instead of ExpSK test: Use correct transaction version for Orchard in TxWithNullifiers builder: Use Rust to compute shielded signature hash for v3-v4 txs builder: Remove anchor argument from TransactionBuilder::AddSaplingSpend mempool: Refactor CTxMemPool::checkNullifiers to use a template wallet: Introduce libzcash::nullifier_t typedef builder: Move all fields in TransactionBuilder move constructors rust: Add new structs and functions required for Sapling oxidation Oxidise the Sapling bundles Oxidise the Sapling benchmarks and remaining tests Remove now-unused Sapling logic test: Use != instead of is not in final*root RPC tests Remove TransactionBuilder default constructor test: Some minor cleanups test: Fix non-conflicting merge conflict rpc: Add z_getsubtreesbyindex RPC method rpc: Add trees field to getblock RPC output

Jorge Timón (3): Build: Consensus: Move consensus files from common to its own module/package Build: Libconsensus: Move libconsensus-ready files to the consensus package Build: Consensus: Make libbitcoinconsensus_la_SOURCES fully dynamic and dependend on both crypto and consensus packages

Kris Nuttycombe (26): Note when (not) to apply the "add release notes" part of the release process. Add a useful comment about the CheckProofOfWork check in LoadBlockIndexGuts Add golden tests for Orchard wallet state at the zcashd v5.6.0 boundary. Persist data for wallet_golden_5_6_0 RPC test Apply suggestions from code review Fix a nondeterministic error in wallet tests caused by output shuffling. Fix nondeterminism in WalletTests.UpdatedSaplingNoteData Upgrade to the latest incrementalmerkletree & bridgetree versions. Regenerate cargo-vet exemptions Add Orchard subtree roots to the coins view. Fix a potential null-pointer dereference. Use a limit parameter instead of end_index for z_getsubtreesbyindex Remove depth property from z_getsubtreesbyindex result & fix docs. Update to released versions of patch dependencies. Update audits for upgraded dependencies. Update RPC tests to enable -lightwalletd flag where needed. Update native_cmake, native_cxxbridge, and native_rust and postpone other required updates. make-release.py: Versioning changes for 5.6.0-rc1. make-release.py: Updated manpages for 5.6.0-rc1. make-release.py: Updated release notes and changelog for 5.6.0-rc1. make-release.py: Updated book for 5.6.0-rc1. Add a step for checking/updating the release notes to the release process. Update release notes for 5.6.0 release. Revert "Update native_rust" and postpone the upgrade. make-release.py: Versioning changes for 5.6.0. make-release.py: Updated manpages for 5.6.0.

Marshall Gaucher (1): Update performance-measurements.sh

Pieter Wuille (4): Remove --disable-openssl-tests for libsecp256k1 configure Adapt to libsecp256k1 API changes Add secp256k1_selftest call scripted-diff: rename privkey with seckey in secp256k1 interface

Sean Bowe (13): Add support for storing Sapling/Orchard subtree roots in leveldb. Add tests and fix bugs in implementation of CCoinsView subtree storage. Minor improvements suggested during code review. Minor documentation improvements suggested during review. Minor fixes suggested from code review. Remove unnecessary dependencies pulled in by proptest. Store 2^16 subtree roots for the Sapling note commitment tree in the coins database. Address comments raised during code review. Automatically migrate old coins database to account for complete subtrees for Sapling and Orchard Guard all subtree-related functionality behind lightwallet experimental feature flag. Apply suggestions from code review. Add UI messages surrounding RegenerateSubtrees. Add test for new IncrementalMerkleTree methods.

dismad (1): Update README.md

ebfull (2): Simplify logic paths in GetSubtreeData Minor documentation typo fixes

fanquake (1): build: remove some no-longer-needed var unexporting from configure

practicalswift (1): Remove unreachable code (g_rpcSignals.PostCommand)

teor (1): Change module comment in bridge.rs to doc comment