From 0e74a9f40fb8cdd607af8d6ca96f0c06e13719f6 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 20 Apr 2023 21:58:08 +0000 Subject: [PATCH 1/6] depends: Rust 1.69.0 --- Cargo.toml | 2 +- depends/packages/native_rust.mk | 18 +++++++++--------- rust-toolchain.toml | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 5425c03f064..24af31e27f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ repository = "https://github.com/zcash/zcash" readme = "README.md" license = "MIT OR Apache-2.0" edition = "2018" -rust-version = "1.68" +rust-version = "1.69" [package.metadata.vet] store = { path = "./qa/supply-chain" } diff --git a/depends/packages/native_rust.mk b/depends/packages/native_rust.mk index a5e0a9f23f3..99bc5da0f79 100644 --- a/depends/packages/native_rust.mk +++ b/depends/packages/native_rust.mk @@ -3,16 +3,16 @@ package=native_rust # ./contrib/devtools/update-rust-hashes.sh # The Rust compiler should use the same LLVM version as the Clang compiler; you # can check this with `rustc --version -v`. -$(package)_version=1.68.2 +$(package)_version=1.69.0 $(package)_download_path=https://static.rust-lang.org/dist $(package)_file_name_linux=rust-$($(package)_version)-x86_64-unknown-linux-gnu.tar.gz -$(package)_sha256_hash_linux=df7c7466ef35556e855c0d35af7ff08e133040400452eb3427c53202b6731926 +$(package)_sha256_hash_linux=2ca4a306047c0b8b4029c382910fcbc895badc29680e0332c9df990fd1c70d4f $(package)_file_name_darwin=rust-$($(package)_version)-x86_64-apple-darwin.tar.gz -$(package)_sha256_hash_darwin=632540d3d83758cb048dc45fcfbc0b29f6f170161a3051be22b0a2962a566fb9 +$(package)_sha256_hash_darwin=9818dab2c3726d63dfbfde12c9273e62e484ef6d6f6e05a6431a3e089c335454 $(package)_file_name_freebsd=rust-$($(package)_version)-x86_64-unknown-freebsd.tar.gz -$(package)_sha256_hash_freebsd=3b824f662c48ed3a5117bad7992d467837cbf6fa93ac18c4816a175034eee178 +$(package)_sha256_hash_freebsd=2985d98910b4a1dd336bfc7a1ac3b18082ed917cff097b4db6f0d6602016c289 $(package)_file_name_aarch64_linux=rust-$($(package)_version)-aarch64-unknown-linux-gnu.tar.gz -$(package)_sha256_hash_aarch64_linux=b24d0df852490d80791a228f18c2b75f24b1e6437e6e745f85364edab245f7fa +$(package)_sha256_hash_aarch64_linux=88af5aa7a40c8f1b40416a1f27de8ffbe09c155d933f69d3e109c0ccee92353b # Mapping from GCC canonical hosts to Rust targets # If a mapping is not present, we assume they are identical, unless $host_os is @@ -21,10 +21,10 @@ $(package)_rust_target_x86_64-pc-linux-gnu=x86_64-unknown-linux-gnu $(package)_rust_target_x86_64-w64-mingw32=x86_64-pc-windows-gnu # Mapping from Rust targets to SHA-256 hashes -$(package)_rust_std_sha256_hash_aarch64-unknown-linux-gnu=74c2cca31e34cbc0913fc2445c4853acb20c52dba2d0c3012a007cc5decc3bb1 -$(package)_rust_std_sha256_hash_x86_64-apple-darwin=5d6a7d62ae67c2f7aae6eabb782a3125cf9fed6bbc2993d59b3714f4f832e797 -$(package)_rust_std_sha256_hash_x86_64-pc-windows-gnu=4598f3f44f84353dcf64aab9669b7c3982fccc1e7840f3ef1aa90cadc37864a4 -$(package)_rust_std_sha256_hash_x86_64-unknown-freebsd=c94334345413a28669b271584b385ed0c0d6c410458103d7242353dd8fb9048d +$(package)_rust_std_sha256_hash_aarch64-unknown-linux-gnu=8f42b40c0a0658ee75ce758652c9821fac7db3fbd8d20f7fb2483ec2c57ee0ac +$(package)_rust_std_sha256_hash_x86_64-apple-darwin=e44d71250dc5a238da0dc4784dad59d562862653adecd31ea52e0920b85c6a7c +$(package)_rust_std_sha256_hash_x86_64-pc-windows-gnu=09ded4a4c27c16aff9c9911640b1bdf6e1172237ce540ed4dc3e166e9438f0d7 +$(package)_rust_std_sha256_hash_x86_64-unknown-freebsd=eed4b3f3358a8887b0f6a62e021469878a8990af9b94c2fe87d3c1b0220913bb define rust_target $(if $($(1)_rust_target_$(2)),$($(1)_rust_target_$(2)),$(if $(findstring darwin,$(3)),x86_64-apple-darwin,$(if $(findstring freebsd,$(3)),x86_64-unknown-freebsd,$(2)))) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 0cf440a7e30..d04f2eb53b3 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.68.0" +channel = "1.69.0" components = ["clippy", "rustfmt"] From c2e8b87264ddbcf84663a08e5243962b75639657 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 20 Apr 2023 22:16:52 +0000 Subject: [PATCH 2/6] make-release.py: Versioning changes for 5.5.0-rc1. --- README.md | 2 +- configure.ac | 6 +++--- contrib/gitian-descriptors/gitian-linux-parallel.yml | 2 +- contrib/gitian-descriptors/gitian-linux.yml | 2 +- src/clientversion.h | 6 +++--- src/deprecation.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ff9120a250d..123270e6a5f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Zcash 5.4.2 +Zcash 5.5.0-rc1 =========== diff --git a/configure.ac b/configure.ac index 4a88acac738..5b67ea4cf02 100644 --- a/configure.ac +++ b/configure.ac @@ -1,9 +1,9 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 5) -define(_CLIENT_VERSION_MINOR, 4) -define(_CLIENT_VERSION_REVISION, 2) -define(_CLIENT_VERSION_BUILD, 50) +define(_CLIENT_VERSION_MINOR, 5) +define(_CLIENT_VERSION_REVISION, 0) +define(_CLIENT_VERSION_BUILD, 25) define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50))) define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1))) define(_CLIENT_VERSION_IS_RELEASE, true) diff --git a/contrib/gitian-descriptors/gitian-linux-parallel.yml b/contrib/gitian-descriptors/gitian-linux-parallel.yml index c868dab4c41..3ee65eb2635 100644 --- a/contrib/gitian-descriptors/gitian-linux-parallel.yml +++ b/contrib/gitian-descriptors/gitian-linux-parallel.yml @@ -1,5 +1,5 @@ --- -name: "zcash-5.4.2" +name: "zcash-5.5.0-rc1" enable_cache: true distro: "debian" suites: diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 196a7644a2a..a1ddc04b0f2 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -1,5 +1,5 @@ --- -name: "zcash-5.4.2" +name: "zcash-5.5.0-rc1" enable_cache: true distro: "debian" suites: diff --git a/src/clientversion.h b/src/clientversion.h index b898e3dbcec..abb2d7b4aeb 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -16,9 +16,9 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 5 -#define CLIENT_VERSION_MINOR 4 -#define CLIENT_VERSION_REVISION 2 -#define CLIENT_VERSION_BUILD 50 +#define CLIENT_VERSION_MINOR 5 +#define CLIENT_VERSION_REVISION 0 +#define CLIENT_VERSION_BUILD 25 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true diff --git a/src/deprecation.h b/src/deprecation.h index 60f0506ada0..669ba4a53b8 100644 --- a/src/deprecation.h +++ b/src/deprecation.h @@ -13,7 +13,7 @@ // Per https://zips.z.cash/zip-0200 // Shut down nodes running this version of code, 16 weeks' worth of blocks after the estimated // release block height. A warning is shown during the 14 days' worth of blocks prior to shut down. -static const int APPROX_RELEASE_HEIGHT = 1992000; +static const int APPROX_RELEASE_HEIGHT = 2059000; static const int RELEASE_TO_DEPRECATION_WEEKS = 16; static const int EXPECTED_BLOCKS_PER_HOUR = 3600 / Consensus::POST_BLOSSOM_POW_TARGET_SPACING; static_assert(EXPECTED_BLOCKS_PER_HOUR == 48, "The value of Consensus::POST_BLOSSOM_POW_TARGET_SPACING was chosen such that this assertion holds."); From d71650e96442831806f69daf28f6f84869467cad Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 20 Apr 2023 22:19:50 +0000 Subject: [PATCH 3/6] make-release.py: Updated manpages for 5.5.0-rc1. --- doc/man/zcash-cli.1 | 6 +++--- doc/man/zcash-tx.1 | 6 +++--- doc/man/zcashd-wallet-tool.1 | 4 ++-- doc/man/zcashd.1 | 39 +++++++++++++++++------------------- 4 files changed, 26 insertions(+), 29 deletions(-) diff --git a/doc/man/zcash-cli.1 b/doc/man/zcash-cli.1 index 25f8f4f5112..3feb7d320b0 100644 --- a/doc/man/zcash-cli.1 +++ b/doc/man/zcash-cli.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH ZCASH-CLI "1" "February 2023" "zcash-cli v5.4.2" "User Commands" +.TH ZCASH-CLI "1" "April 2023" "zcash-cli v5.5.0-rc1" "User Commands" .SH NAME -zcash-cli \- manual page for zcash-cli v5.4.2 +zcash-cli \- manual page for zcash-cli v5.5.0-rc1 .SH DESCRIPTION -Zcash RPC client version v5.4.2 +Zcash RPC client version v5.5.0\-rc1 .PP In order to ensure you are adequately protecting your privacy when using Zcash, please see . diff --git a/doc/man/zcash-tx.1 b/doc/man/zcash-tx.1 index 3727e1c5801..3c4f6df4a10 100644 --- a/doc/man/zcash-tx.1 +++ b/doc/man/zcash-tx.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH ZCASH-TX "1" "February 2023" "zcash-tx v5.4.2" "User Commands" +.TH ZCASH-TX "1" "April 2023" "zcash-tx v5.5.0-rc1" "User Commands" .SH NAME -zcash-tx \- manual page for zcash-tx v5.4.2 +zcash-tx \- manual page for zcash-tx v5.5.0-rc1 .SH DESCRIPTION -Zcash zcash\-tx utility version v5.4.2 +Zcash zcash\-tx utility version v5.5.0\-rc1 .SS "Usage:" .TP zcash\-tx [options] [commands] diff --git a/doc/man/zcashd-wallet-tool.1 b/doc/man/zcashd-wallet-tool.1 index 433c97c47e9..e8dd7a57de9 100644 --- a/doc/man/zcashd-wallet-tool.1 +++ b/doc/man/zcashd-wallet-tool.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH ZCASHD-WALLET-TOOL "1" "February 2023" "zcashd-wallet-tool v5.4.2" "User Commands" +.TH ZCASHD-WALLET-TOOL "1" "April 2023" "zcashd-wallet-tool v5.5.0-rc1" "User Commands" .SH NAME -zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.4.2 +zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.5.0-rc1 .SH SYNOPSIS .B zcashd-wallet-tool [\fI\,OPTIONS\/\fR] diff --git a/doc/man/zcashd.1 b/doc/man/zcashd.1 index 4df17a146df..41c7bb50b28 100644 --- a/doc/man/zcashd.1 +++ b/doc/man/zcashd.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH ZCASHD "1" "February 2023" "zcashd v5.4.2" "User Commands" +.TH ZCASHD "1" "April 2023" "zcashd v5.5.0-rc1" "User Commands" .SH NAME -zcashd \- manual page for zcashd v5.4.2 +zcashd \- manual page for zcashd v5.5.0-rc1 .SH DESCRIPTION -Zcash Daemon version v5.4.2 +Zcash Daemon version v5.5.0\-rc1 .PP In order to ensure you are adequately protecting your privacy when using Zcash, please see . @@ -34,10 +34,10 @@ long fork (%s in cmd is replaced by message) .IP Explicitly allow the use of the specified deprecated feature. Multiple instances of this parameter are permitted; values for must be -selected from among {"none", "gbt_oldhashes", "z_getbalance", -"z_gettotalbalance", "addrtype", "getnewaddress", "getrawchangeaddress", -"legacy_privacy", "wallettxvjoinsplit", "z_getnewaddress", -"z_listaddresses"} +selected from among {"none", "deprecationinfo_deprecationheight", +"gbt_oldhashes", "z_getbalance", "z_gettotalbalance", "addrtype", +"getnewaddress", "getrawchangeaddress", "legacy_privacy", +"wallettxvjoinsplit", "z_getnewaddress", "z_listaddresses"} .HP \fB\-blocknotify=\fR .IP @@ -316,7 +316,11 @@ Set the maximum number of Orchard actions permitted in a transaction .HP \fB\-paytxfee=\fR .IP -Fee (in ZEC/kB) to add to transactions you send (default: 0.00) +The preferred fee rate (in ZEC per 1000 bytes) used for transactions +created by legacy APIs (sendtoaddress, sendmany, and +fundrawtransaction). If the transaction is less than 1000 bytes then the +fee rate is applied as though it were 1000 bytes. When this option is +not set, the ZIP 317 fee calculation is used. .HP \fB\-rescan\fR .IP @@ -327,10 +331,6 @@ Rescan the block chain for missing wallet transactions on startup Attempt to recover private keys from a corrupt wallet on startup (implies \fB\-rescan\fR) .HP -\fB\-sendfreetransactions\fR -.IP -Send transactions as zero\-fee transactions if possible (default: 0) -.HP \fB\-spendzeroconfchange\fR .IP Spend unconfirmed change when sending transactions (default: 1) @@ -450,8 +450,9 @@ Prepend debug output with timestamp (default: 1) .HP \fB\-minrelaytxfee=\fR .IP -Fees (in ZEC/kB) smaller than this are considered zero fee for relaying, -mining and transaction creation (default: 0.000001) +Transactions must have at least this fee rate (in ZEC per 1000 bytes) +for relaying, mining and transaction creation (default: 0.000001). This +is not the only fee constraint. .HP \fB\-maxtxfee=\fR .IP @@ -482,18 +483,14 @@ Maximum size of data in data carrier transactions we relay and mine .PP Block creation options: .HP -\fB\-blockminsize=\fR -.IP -Set minimum block size in bytes (default: 0) -.HP \fB\-blockmaxsize=\fR .IP Set maximum block size in bytes (default: 2000000) .HP -\fB\-blockprioritysize=\fR +\fB\-blockunpaidactionlimit=\fR .IP -Set maximum size of high\-priority/low\-fee transactions in bytes -(default: 1000000) +Set the limit on unpaid actions that will be accepted in a block for +transactions paying less than the ZIP 317 fee (default: 50) .PP Mining options: .HP From 7caa4123aad377d2126ee054998be062626f7724 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 20 Apr 2023 22:19:50 +0000 Subject: [PATCH 4/6] make-release.py: Updated release notes and changelog for 5.5.0-rc1. --- contrib/debian/changelog | 6 + doc/authors.md | 15 +- doc/release-notes/release-notes-5.5.0-rc1.md | 407 +++++++++++++++++++ 3 files changed, 420 insertions(+), 8 deletions(-) create mode 100644 doc/release-notes/release-notes-5.5.0-rc1.md diff --git a/contrib/debian/changelog b/contrib/debian/changelog index 30b830de113..50ff75fc6bf 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,9 @@ +zcash (5.5.0~rc1) stable; urgency=medium + + * 5.5.0-rc1 release. + + -- Electric Coin Company Thu, 20 Apr 2023 22:19:50 +0000 + zcash (5.4.2) stable; urgency=high * 5.4.2 release. diff --git a/doc/authors.md b/doc/authors.md index 80b750baead..15e7f4b5fd9 100644 --- a/doc/authors.md +++ b/doc/authors.md @@ -2,13 +2,13 @@ Zcash Contributors ================== Jack Grigg (1297) -Kris Nuttycombe (622) +Kris Nuttycombe (626) Simon Liu (460) Sean Bowe (389) -Daira Hopwood (379) +Daira Hopwood (382) Eirik Ogilvie-Wigley (216) Wladimir J. van der Laan (159) -Pieter Wuille (146) +Pieter Wuille (149) Alfredo Garcia (120) Taylor Hornby (118) Marshall Gaucher (118) @@ -17,10 +17,10 @@ Marco Falke (90) Jonas Schnelli (90) Jay Graber (89) Larry Ruane (88) -Greg Pfeil (84) +Greg Pfeil (85) Cory Fields (78) -sasha (62) -Matt Corallo (61) +sasha (67) +Matt Corallo (62) Nathan Wilcox (57) practicalswift (42) Dimitris Apostolou (40) @@ -71,7 +71,6 @@ Daniel Cousens (6) Casey Rodarmor (6) jnewbery (5) ca333 (5) -Sasha (5) MeshCollider (5) Johnathan Corgan (5) George Tankersley (5) @@ -128,6 +127,7 @@ Matthew King (2) Mary Moore-Simmons (2) Mark Friedenbach (2) Marek (2) +Jon Atack (2) Joe Turgeon (2) Jesse Cohen (2) Jeffrey Czyz (2) @@ -219,7 +219,6 @@ Josh Lehan (1) Josh Ellithorpe (1) Jonas Nick (1) Jon Layton (1) -Jon Atack (1) Jeffrey Walton (1) Janito Vaqueiro Ferreira Filho (1) James White (1) diff --git a/doc/release-notes/release-notes-5.5.0-rc1.md b/doc/release-notes/release-notes-5.5.0-rc1.md new file mode 100644 index 00000000000..bff4a9d7bca --- /dev/null +++ b/doc/release-notes/release-notes-5.5.0-rc1.md @@ -0,0 +1,407 @@ +Notable changes +=============== + +RPC Changes +----------- + +- `getdeprecationinfo` has several changes: + - It now returns additional information about currently deprecated and + disabled features. + - A new `end_of_service` object that contains both the block height for + end-of-service and the estimated time that the end-of-service halt is + expected to occur. Note that this height is just an approximation and + will change over time as the end-of-service block height approaches, + due to the variability in block times. The + `end_of_service` object is intended to replace the `deprecationheight` + field; see the [Deprecations](#deprecations) section for additional detail. + - This RPC method was previously only available for mainnet nodes; it is now + also available for testnet and regtest nodes, in which case it does not + return end-of-service halt information (as testnet and regtest nodes do not + have an end-of-service halt feature.) +- Several `z_sendmany`, `z_shieldcoinbase` and `z_mergetoaddress` failures have + moved from synchronous to asynchronous, so while you should already be + checking the async operation status, there are now more cases that may trigger + failure at that stage. +- The `AllowRevealedRecipients` privacy policy is now required in order to choose a + transparent change address for a transaction. This will only occur when the wallet + is unable to construct the transaction without selecting funds from the transparent + pool, so the impact of this change is that for such transactions, the user must specify + `AllowFullyTransparent`. +- The `z_shieldcoinbase` and `z_mergetoaddress` RPC methods now support an + optional privacy policy. +- The `estimatepriority` RPC call has been removed. +- The `priority_delta` argument to the `prioritisetransaction` RPC call now has + no effect and must be set to a dummy value (0 or null). + +Changes to Transaction Fee Selection +------------------------------------ + +- The `-mintxfee` and `-sendfreetransactions` options have been removed. These + options used to instruct the wallet's legacy transaction creation APIs + (`sendtoaddress`, `sendmany`, and `fundrawtransaction`) to increase fees to + this limit and to use a zero fee for "small" transactions that spend "old" + inputs, respectively. They will now cause a warning on node startup if used. + +Changes to Block Template Construction +-------------------------------------- + +We now use a new block template construction algorithm documented in +[ZIP 317](https://zips.z.cash/zip-0317#recommended-algorithm-for-block-template-construction). + +- This algorithm no longer favours transactions that were previously considered + "high priority" because they spent older inputs. The `-blockprioritysize` config + option, which configured the portion of the block reserved for these transactions, + has been removed and will now cause a warning if used. +- The `-blockminsize` option, which configured the size of a portion of the block + to be filled regardless of transaction fees or priority, has also been removed + and will cause a warning if used. +- A `-blockunpaidactionlimit` option has been added to control the limit on + "unpaid actions" that will be accepted in a block for transactions paying less + than the ZIP 317 fee. This defaults to 50. + +Removal of Priority Estimation +------------------------------ + +- Estimation of "priority" needed for a transaction to be included within a target + number of blocks, and the associated `estimatepriority` RPC call, have been + removed. The format for `fee_estimates.dat` has also changed to no longer save + these priority estimates. It will automatically be converted to the new format + which is not readable by prior versions of the software. The `-txconfirmtarget` + config option is now obsolete and has also been removed. It will cause a + warning if used. + +[Deprecations](https://zcash.github.io/zcash/user/deprecation.html) +-------------- + +The following features have been deprecated, but remain available by default. +These features may be disabled by setting `-allowdeprecated=none`. 18 weeks +after this release, these features will be disabled by default and the following +flags to `-allowdeprecated` will be required to permit their continued use: + +- `deprecationinfo_deprecationheight`: The `deprecationheight` field of + `getdeprecationinfo` has been deprecated and replaced by the `end_of_service` + object. + +Changelog +========= + +ANISH M (3): + use SOURCES_PATH instead of local git DEPENDS_SOURCES_DIR + report the git-derived version in metrics screen + Update src/metrics.cpp by removing v prefix. + +Alex Morcos (14): + Refactor CreateNewBlock to be a method of the BlockAssembler class + FIX: Account for txs already added to block in addPriorityTxs + FIX: correctly measure size of priority block + [rpc] Remove estimatepriority. + [mining] Remove -blockprioritysize. + [debug] Change -printpriority option + [cleanup] Remove estimatePriority + [rpc] sendrawtransaction no longer bypasses minRelayTxFee + [test] Remove priority from tests + [rpc] Remove priority information from mempool RPC calls + [rpc] Remove priorityDelta from prioritisetransaction + [cleanup] Remove coin age priority completely. + Allow setting minrelaytxfee to 0 + Update example zcash.conf + +Daira Emma Hopwood (34): + Remove unnecessary #include. + Adjust indentation to be consistent without changing existing code. + Repair show_help RPC test. + Fix bit-rotted code in miner tests. + Implement ZIP 317 computations. + `cargo update` + Add audits for updates to futures-* 0.3.28 and redjubjub 0.7.0. + Add `examine`, a wrapper around `std::visit` that reverses the arguments. + Use the new `examine` macro to replace all instances of `std::visit(match {...}, specimen)`, improving code readability. + Refactoring to avoid duplicated code. + Refactoring to avoid an unnecessary temporary. + Refactor that avoids using exceptions for local flow control and is simpler. + Correct the documentation of `-rpcconnect` in the example `zcash.conf`. `-rpcconnect` is only used by `zcash-cli`. + Change ZIP 401 mempool limiting to use conventional fee. + Change ZIP 401 mempool limiting to use constants decided in zcash/zips#565. + Warn on node startup if the removed `-blockprioritysize` option is set to a non-zero value. + Log (at the mempool DEBUG level) when a transaction cannot be accepted to the mempool because its modified fee is below the minimum relay fee. + Fix the dust threshold rate to three times 100 zats/1000 bytes. (We express it that way rather than 300 zats/1000 bytes, because the threshold is always rounded to an integer and then multiplied by 3.) + Fix some messages, comments, and documentation that: * used "fee" to mean "fee rate", "kB" to mean 1000 bytes, "satoshis" to mean zatoshis, or that incorrectly used "BTC" in place of "ZEC"; * used obsolete concepts such as "zero fee" or "free transaction"; or * did not accurately document their applicability. + Fix tests that failed due to the minimum relay fee being enforced. + Fix miner_tests btest. + Fix mempool_packages and prioritisetransaction RPC tests. + Implement `GetUnpaidActionCount` and `GetWeightRatio` for ZIP 317. + ZIP 317 block construction algorithm. This breaks tests which are repaired in subsequent commits. + Add assertions that `GetRandInt*` functions are called with `nMax >= 0`. All existing uses have been checked to ensure they are consistent with this assertion. + Repair `miner_tests.py` btest. + Repair some RPC tests. + mergetoaddress_helper.py: Use `generate_and_check` helper to mine a block and make sure that it contains the expected number of transactions. + mergetoaddress_helper.py: use Decimal for amounts and integers otherwise. + Remove the implementation of score-based block template construction and the `-blockminsize` option. + Add a `-blockunpaidactionlimit` config option to configure the per-block limit on unpaid actions for ZIP 317 block template construction. + miner_tests.cpp improvements. + random.h documentation improvements. + Fix/suppress clippy warnings. + +Daira Hopwood (9): + Use a more recent URL format for GitHub release archives. + Clarify that patches to a dependency are under the same license as that dependency. + Update copyright date and email for tl_expected. + Use the same convention for the tl_expected download files as for native_cctools + Refactoring to split the weighted tx tree out of mempool_limit.{cpp,h} and make it more reusable. + Minor optimization to weighted_map::remove + This PR doesn't bring in any ZIP 317 changes yet + Another minor optimization + Change spelling of prioritisation in an error message + +DeckerSU (1): + InsertBlockIndex: pass const reference on hash, instead of hash + +Dimitris Apostolou (3): + Fix typo + Update documentation link + Fix typos + +Evan Klitzke (1): + Fix automake warnings when running autogen.sh + +Greg Pfeil (81): + Show in-progress tests when rpc-tests is interrupted + Make extra newline more explicit + Apply suggestions from code review + Make pool selection order more flexible + Simplify diversifier_index_t handling + Update tests for async z_sendmany + Limit UTXOs + Some orchard fixes for wallet_tx_builder + Return anchorHeight from ResolveInputsAndPayments + Refactoring InsufficientFundsError + Ensure we don’t make Orchard change pre-NU5 + Test updates for z_sendmany WalletTxBuilder changes + Fix weakened privacy policy for transparent change + Fix some overly-strict privacy policies in btest + Apply suggestions from code review + Unify requireTransparentCoinbase handling + Rename `Get*Balance` to `Get*Total` + Remove changes that aren’t needed by z_sendmany + Improve GetRequiredPrivacyPolicy + Add release notes for (a)sync z_sendmany changes + Assert that we get a change addr for any selector + Don’t pass PrivacyPolicy to selector constructor + Address comments on WalletTxBuilder introduction + Make RPC test output more deterministic + Update WalletTxBuilder based on review + Clarify `AddressResolutionError` + Don’t permit user-provided “internal” payments + Address WalletTxBuilder PR feedback + Ensure that a WalletTxBuilder tx balances + Additional z_sendmany test cases + Address WalletTxBuilder review feedback + Apply suggestions for WalletTxBuilder from code review + Simplify SelectOVKs + Have GetRecipientPools return a copy + Remove CWallet member from WalletTxBuilder + Improve taddr no-memo check + Update src/wallet/rpcwallet.cpp + Lock notes (except Orchard) in wallet_tx_builder + Improve Doxygen for note locking + Require `AllowRevealedRecipients` for t-change + Update release-notes for transparent change restriction + Correct EditorConfig for Makefiles + Split C++ generated from Rust into own lib + Simplify canResolveOrchard logic + Support ZIP 317 fees in the zcashd wallet + Correct change handling for ZIP 317 fees + Address review feedback re: ZIP 317 in wallet + Revert "Add `AllowRevealedSenders` to fix `mempool_nu_activation.py`" + Eliminate LegacyCompat–ZTXOSelector cycle + Simplify client.cpp + Enrich zcash-cli arg conversion + Better messages on client-side zcash-cli errors + Fix accidental reversion of #6409 + Remove unnecessary explicit privacy policy + Use examine instead of std::visit + Simplify some vector initialization + Fix edge case revealed by #6409 + Rename Arg* to Param + Adjust wallet absurd fee check for ZIP 317 + Address review feedback for ZIP 317 fees in wallet + Address more ZIP 317 fee feedback + Fix zcash-cli crash when printing help message + Use null as the ZIP 317 fee sentinel instead of -1 + Add z_sendmany RPC examples with fee field + Have z_shieldcoinbase use WalletTxBuilder + Address review feedback on z_shieldcoinbase + Fix an incorrect error message in a test + Minor improvements to z_shieldcoinbase + Support ZIP 317 fees for legacy wallet operations + Remove `-mintxfee` config option + Address review comments re: legacy wallet ZIP 317 + Remove `-txconfirmtarget` config option + Restore previous `-maxtxfee` bound + Correct -maxtxfee lower bound diagnostic messages + WalletTxBuilder support for net payments + fixup! WalletTxBuilder support for net payments + Don’t test “Insufficient funds” for `z_shieldcoinbase` + Update z_mergetoaddress to use WalletTxBuilder + Many z_mergetoaddress updates + Avoid extra copy in ResolveInputsAndPayments + Address z_mergetoaddress review feedback + +Jack Grigg (77): + rust: Add `cxx` version of `RustStream` + rust: Migrate `OrchardMerkleFrontier` to `cxx` + CreateNewBlock: Leave more space for Orchard shielded coinbase + Retroactively enable ZIP 216 before NU5 activation + rust: Compile with ThinLTO + depends: Update Rust to 1.67.1 + depends: Update Clang / libcxx to LLVM 15.0.6 + Fix 1.67.1 clippy lints + depends: Evaluate `native_packages` before `packages` + qa: Fix year in postponement lines + qa: Fix `google/leveldb` tag parsing in `updatecheck.py` + qa: Handle commit IDs correctly to `updatecheck.py` + depends: `cxx 1.0.91` + depends: `native_zstd 1.5.4` + `cargo vet regenerate imports` + qa: Import Rust crate audits from ISRG + `cargo update` + qa: Postpone LevelDB 1.23 + book: Add page with release support details and EoS halt heights + Update release support book page in release process + depends: Update Rust to 1.68.0 + qa: Replace Firefox audits with aggregated Mozilla audits in registry + qa: Import Rust crate audits from ChromeOS + Move `fEnableAddrTypeField` outside `ENABLE_WALLET` + `s/string/std::string` in `init.cpp` + CI: Check that the PR branch has a sufficiently recent base for Tekton + CI: Fix permissions for Checks workflow + Add `CChainParams::RustNetwork` + wallet: Consolidate `CWalletTx` Sapling output decryption methods + wallet: Use `zcash_note_encryption` in `CWalletTx::DecryptSaplingNote` + wallet: Use `CWalletTx::DecryptSaplingNote` in more places + wallet: Use `zcash_note_encryption` in `CWallet::FindMySaplingNotes` + wallet: Use `zcash_note_encryption` in `CWalletTx::RecoverSaplingNote` + wallet: Remove recipient-side `SaplingNotePlaintext::decrypt` + CI: Fetch all history for "recent base" check + CI: Include explicit `failure()` condition in "recent base" check + CI: Use `github.head_ref` instead of `HEAD` for "recent base" check + book: Add End-of-Support heights for v5.3.3 and v5.4.2 + CI: Remove most usages of `actions-rs` actions + CI: Migrate to `cargo-vet 0.5` + cargo vet prune + CI: Provide `write` permission for `pull-requests` + CI: Check out both the base and PR branches for "recent base" check + Migrate to `zcash_primitives 0.10` + depends: `cxx 1.0.92` + depends: CMake 3.26.0 + depends: Postpone CCache updates again + cargo update + Use `RandomInvalidOutputDescription()` everywhere it makes sense + Merge most `cxx::bridge` definitions into a single bridge + Expand `CppStream` to cover all `Stream`-like C++ types + Migrate `OrchardMerkleFrontier` to use new `CppStream` APIs + build: Tolerate split LLVM versions + Use `cxx` bridge for all Orchard bundle inspection and validation + gtest: Minor improvements to `CoinsTests` + rust: Migrate Ed25519 FFI to `cxx` + Tell `cargo-vet` to ignore patched dependencies + cargo-vet: Regenerate imports + cargo-vet: Switch to Google's aggregated audits + More crate audits + Migrate to published `orchard 0.4` + qa: Fix update checker to handle `native_clang` version format + depends: CMake 3.26.3 + depends: Rust 1.68.2 + depends: `native_zstd 1.5.5` + depends: `cxx 1.0.94` + qa: Postpone dependencies we aren't updating + cargo update + Use published `zcash_primitives 0.11` and `zcash_proofs 0.11` + test: Avoid generating a chain fork in `mempool_packages` RPC test + test: Sync blocks before invalidating them in `mempool_packages` RPC test + depends: Boost 1.82.0 + qa: Postpone Clang 16.0.2 + cargo update + depends: Rust 1.69.0 + make-release.py: Versioning changes for 5.5.0-rc1. + make-release.py: Updated manpages for 5.5.0-rc1. + +Kris Nuttycombe (26): + Fix potential path or symlink traversal + Add a docker-compose.yml for prometheus/grafana metrics collection. + Apply suggestions from code review + Make all CCoinsView methods pure-virtual. + Remove `FakeCoinsViewDB` as it is identical to `CCoinsViewDummy` + Postpone dependency updates. + make-release.py: Versioning changes for 5.3.3. + make-release.py: Updated manpages for 5.3.3. + make-release.py: Updated release notes and changelog for 5.3.3. + Set urgency to `high` in Debian changelog. + Add information about deprecated features to `deprecationinfo` results. + Apply suggestions from code review + Add a wallet-aware transaction builder. + Use WalletTxBuilder for z_sendmany + Allow selectors to require transparent coinbase + Fix a longstanding zcashd build warning + Fix `make distclean` to recursively remove `rust/gen` + Improve const-ness of CChainParams retrieval by network ID + Explicitly provide CChainParams to `EnforceNodeDeprecation` + revert broken "safe extract" functionality in golden tests. + Refactor RPC privacyPolicy handling + Update to use the `ff 0.13` dependency stack. + Add `AllowRevealedSenders` to fix `mempool_nu_activation.py` + Calculate convential fee in `CreateTransaction` before stripping sigs. + Fix formating of money strings. + Use the conventional fee for prioritisation in prioritisetransactions.py + +Luke Dashjr (1): + RPC/Mining: Restore API compatibility for prioritisetransaction + +Marco Falke (1): + wallet: Remove sendfree + +Marius Kjærstad (2): + New checkpoint at block 2000000 for mainnet + Update estimated number of transactions due to Blossom NU + +Miodrag Popović (2): + Fix for broken cross-build to Windows target on Ubuntu 22.04 and Debian 11 + Update depends/hosts/mingw32.mk to use posix variant library path + +Sean Bowe (1): + Add additional audits. + +Suhas Daftuar (4): + Add tags to mempool's mapTx indices + Fix mempool limiting for PrioritiseTransaction + Use fee deltas for determining mempool acceptance + Remove GetMinRelayFee + +TrellixVulnTeam (1): + Adding tarfile member sanitization to extractall() + +Wladimir J. van der Laan (1): + Merge #7730: Remove priority estimation + +Yasser Isa (1): + DOWNLOAD_URL dynamic in fetch-params.sh + +cronicc (1): + Fix Horizen Security contact email + +instagibbs (2): + Gave miner test values constants for less error-prone values. + Corrected values + +sasha (6): + Partially revert PR #6384, but only for URLs using a git commit hash + Download `native_cctools` and its `libtapi` to meaningful filenames + Better error messages if proof parameters aren't loaded + Enable the (existing) custom error message for the invalid checksum case + Re-download parameters if they already exist but don't have correct sums + Alias Sasha->sasha in release-notes.py to avoid authors.md split + +Jack Grigg (2): + Improvements to code comments + Adjust documentation + From 33e6e6a522189d4602e35945ac069157d3831005 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 20 Apr 2023 22:19:50 +0000 Subject: [PATCH 5/6] make-release.py: Updated book for 5.5.0-rc1. --- doc/book/src/user/release-support.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/book/src/user/release-support.md b/doc/book/src/user/release-support.md index 7033a7623c1..36a1a6bd709 100644 --- a/doc/book/src/user/release-support.md +++ b/doc/book/src/user/release-support.md @@ -42,10 +42,9 @@ time, and may shift due to changes in network solution power. | `zcashd` version | Release date | Halt height | End of Support | | ---------------- | ------------ | ----------- | -------------- | -| 5.3.1 | 2022-12-02 | 2027524 | 2023-03-24 | -| 5.3.2 | 2022-12-03 | 2029524 | 2023-03-25 | | 5.4.0 | 2023-02-09 | 2106524 | 2023-06-01 | | 5.4.1 | 2023-02-13 | 2112024 | 2023-06-05 | | 5.3.3 | 2023-03-13 | 2121024 | 2023-06-13 | | 5.4.2 | 2023-03-13 | 2121024 | 2023-06-13 | +| 5.5.0-rc1 | 2023-04-20 | 2059000 | 2023-08-10 | From 1c62d059400214630d27ac31abccc6e6e95714f2 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Fri, 21 Apr 2023 17:04:47 +0000 Subject: [PATCH 6/6] Clear out v5.5.0 release notes This enables PRs that have release notes to be merged in parallel to the RC process. --- doc/release-notes.md | 79 -------------------------------------------- 1 file changed, 79 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 80d70068c02..68bdf3e602d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,83 +4,4 @@ release-notes at release time) Notable changes =============== -RPC Changes ------------ -- `getdeprecationinfo` has several changes: - - It now returns additional information about currently deprecated and - disabled features. - - A new `end_of_service` object that contains both the block height for - end-of-service and the estimated time that the end-of-service halt is - expected to occur. Note that this height is just an approximation and - will change over time as the end-of-service block height approaches, - due to the variability in block times. The - `end_of_service` object is intended to replace the `deprecationheight` - field; see the [Deprecations](#deprecations) section for additional detail. - - This RPC method was previously only available for mainnet nodes; it is now - also available for testnet and regtest nodes, in which case it does not - return end-of-service halt information (as testnet and regtest nodes do not - have an end-of-service halt feature.) -- Several `z_sendmany`, `z_shieldcoinbase` and `z_mergetoaddress` failures have - moved from synchronous to asynchronous, so while you should already be - checking the async operation status, there are now more cases that may trigger - failure at that stage. -- The `AllowRevealedRecipients` privacy policy is now required in order to choose a - transparent change address for a transaction. This will only occur when the wallet - is unable to construct the transaction without selecting funds from the transparent - pool, so the impact of this change is that for such transactions, the user must specify - `AllowFullyTransparent`. -- The `z_shieldcoinbase` and `z_mergetoaddress` RPC methods now support an - optional privacy policy. -- The `estimatepriority` RPC call has been removed. -- The `priority_delta` argument to the `prioritisetransaction` RPC call now has - no effect and must be set to a dummy value (0 or null). - -Changes to Transaction Fee Selection ------------------------------------- - -- The `-mintxfee` and `-sendfreetransactions` options have been removed. These - options used to instruct the wallet's legacy transaction creation APIs - (`sendtoaddress`, `sendmany`, and `fundrawtransaction`) to increase fees to - this limit and to use a zero fee for "small" transactions that spend "old" - inputs, respectively. They will now cause a warning on node startup if used. - -Changes to Block Template Construction --------------------------------------- - -We now use a new block template construction algorithm documented in -[ZIP 317](https://zips.z.cash/zip-0317#recommended-algorithm-for-block-template-construction). - -- This algorithm no longer favours transactions that were previously considered - "high priority" because they spent older inputs. The `-blockprioritysize` config - option, which configured the portion of the block reserved for these transactions, - has been removed and will now cause a warning if used. -- The `-blockminsize` option, which configured the size of a portion of the block - to be filled regardless of transaction fees or priority, has also been removed - and will cause a warning if used. -- A `-blockunpaidactionlimit` option has been added to control the limit on - "unpaid actions" that will be accepted in a block for transactions paying less - than the ZIP 317 fee. This defaults to 50. - -Removal of Priority Estimation ------------------------------- - -- Estimation of "priority" needed for a transaction to be included within a target - number of blocks, and the associated `estimatepriority` RPC call, have been - removed. The format for `fee_estimates.dat` has also changed to no longer save - these priority estimates. It will automatically be converted to the new format - which is not readable by prior versions of the software. The `-txconfirmtarget` - config option is now obsolete and has also been removed. It will cause a - warning if used. - -[Deprecations](https://zcash.github.io/zcash/user/deprecation.html) --------------- - -The following features have been deprecated, but remain available by default. -These features may be disabled by setting `-allowdeprecated=none`. 18 weeks -after this release, these features will be disabled by default and the following -flags to `-allowdeprecated` will be required to permit their continued use: - -- `deprecationinfo_deprecationheight`: The `deprecationheight` field of - `getdeprecationinfo` has been deprecated and replaced by the `end_of_service` - object.