diff --git a/contrib/debian/changelog b/contrib/debian/changelog index c99ebc98f2e..5a3211d4741 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,9 @@ +zcash (5.6.0) stable; urgency=medium + + * 5.6.0 release. + + -- Electric Coin Company Wed, 14 Jun 2023 16:01:24 -0600 + zcash (5.6.0~rc1) stable; urgency=medium * 5.6.0-rc1 release. diff --git a/doc/authors.md b/doc/authors.md index 98d33ae6173..30bdfb5a518 100644 --- a/doc/authors.md +++ b/doc/authors.md @@ -1,18 +1,18 @@ Zcash Contributors ================== -Jack Grigg (1301) -Kris Nuttycombe (659) +Jack Grigg (1335) +Kris Nuttycombe (685) Simon Liu (460) -Daira Hopwood (392) -Sean Bowe (390) +Sean Bowe (403) +Daira Hopwood (396) Eirik Ogilvie-Wigley (216) -Greg Pfeil (184) +Greg Pfeil (208) Wladimir J. van der Laan (160) -Pieter Wuille (149) +Pieter Wuille (153) Alfredo Garcia (120) +Marshall Gaucher (119) Taylor Hornby (118) -Marshall Gaucher (118) Marco Falke (91) Ying Tong Lai (90) Jonas Schnelli (90) @@ -22,17 +22,17 @@ sasha (80) Cory Fields (78) Matt Corallo (62) Nathan Wilcox (57) +Daira Emma Hopwood (47) +practicalswift (43) Dimitris Apostolou (43) -practicalswift (42) Kevin Gallagher (38) -Daira Emma Hopwood (38) -fanquake (36) +fanquake (37) Carl Dong (30) Alex Morcos (28) Luke Dashjr (27) +Jorge Timón (25) Gregory Maxwell (24) John Newbery (23) -Jorge Timón (22) Suhas Daftuar (20) furszy (18) Jonathan "Duke" Leto (18) @@ -43,12 +43,12 @@ Charlie O'Keefe (16) avnish (14) Per Grön (14) Benjamin Winston (13) +teor (12) Steven Smith (12) Pavel Janík (12) Patrick Strateman (12) Jeremy Rubin (12) Ariel Gabizon (12) -teor (11) Russell Yanofsky (11) Paige Peterson (11) Kaz Wesley (11) @@ -61,10 +61,10 @@ Zancas Wilcox (9) kozyilmaz (8) Jeff Garzik (8) James O'Beirne (8) +Hennadii Stepanov (8) Chun Kuan Lee (8) Ben Wilson (8) Karl-Johan Alm (7) -Hennadii Stepanov (7) Alex Wied (7) David Mercer (6) Daniel Kraft (6) @@ -86,6 +86,7 @@ Nate Wilcox (4) Miodrag Popović (4) Jim Posen (4) Evan Klitzke (4) +DeckerSU (4) Ben Woosley (4) mruddy (3) lpescher (3) @@ -98,7 +99,6 @@ Julian Fleischer (3) Jason Davies (3) Ethan Heilman (3) Eric Lombrozo (3) -DeckerSU (3) Danny Willems (3) Conrado Gouvea (3) Anthony Towns (3) @@ -113,6 +113,7 @@ kpcyrd (2) kobake (2) hexabot (2) face (2) +ebfull (2) aniemerg (2) Yuri Zhykin (2) UdjinM6 (2) @@ -167,6 +168,7 @@ idm (1) glowang (1) ewillbefull@gmail.com (1) emilrus (1) +dismad (1) dexX7 (1) dependabot[bot] (1) daniel (1) diff --git a/doc/release-notes.md b/doc/release-notes.md index 83f48b7ac00..a29094b5174 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,70 +4,3 @@ release-notes at release time) Notable changes =============== -Change to Transaction Relay Policy ----------------------------------- - -Transactions paying less than the [ZIP 317](https://zips.z.cash/zip-0317) -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. diff --git a/doc/release-notes/release-notes-5.6.0.md b/doc/release-notes/release-notes-5.6.0.md new file mode 100644 index 00000000000..e9cb7f61ccb --- /dev/null +++ b/doc/release-notes/release-notes-5.6.0.md @@ -0,0 +1,232 @@ +Notable changes +=============== + +Change to Transaction Relay Policy +---------------------------------- + +Transactions paying less than the [ZIP 317](https://zips.z.cash/zip-0317) +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 there’s 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 +