From 9d8e85373e642f1e95089335904420f5c54257c7 Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Mon, 25 Jul 2022 12:38:28 -0600 Subject: [PATCH 1/3] make-release.py: Versioning changes for 5.2.0. --- README.md | 2 +- configure.ac | 2 +- contrib/gitian-descriptors/gitian-linux.yml | 2 +- src/clientversion.h | 2 +- src/deprecation.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index af76ad402..ac54ae4cd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Zcash 5.2.0-rc1 +Zcash 5.2.0 =========== diff --git a/configure.ac b/configure.ac index 802de8a5b..f787b9142 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 5) define(_CLIENT_VERSION_MINOR, 2) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 25) +define(_CLIENT_VERSION_BUILD, 50) 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.yml b/contrib/gitian-descriptors/gitian-linux.yml index 54d13fc5e..fc7de7de5 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -1,5 +1,5 @@ --- -name: "zcash-5.2.0-rc1" +name: "zcash-5.2.0" enable_cache: true distro: "debian" suites: diff --git a/src/clientversion.h b/src/clientversion.h index 2e658b055..8e52e0e1a 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -18,7 +18,7 @@ #define CLIENT_VERSION_MAJOR 5 #define CLIENT_VERSION_MINOR 2 #define CLIENT_VERSION_REVISION 0 -#define CLIENT_VERSION_BUILD 25 +#define CLIENT_VERSION_BUILD 50 //! 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 382271a51..2012b1037 100644 --- a/src/deprecation.h +++ b/src/deprecation.h @@ -10,7 +10,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 = 1747000; +static const int APPROX_RELEASE_HEIGHT = 1750350; 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 011092e608429eeb3892f11e93159241a63121d0 Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Mon, 25 Jul 2022 12:42:25 -0600 Subject: [PATCH 2/3] make-release.py: Updated manpages for 5.2.0. --- doc/man/zcash-cli.1 | 8 ++++---- doc/man/zcash-tx.1 | 8 ++++---- doc/man/zcashd-wallet-tool.1 | 6 +++--- doc/man/zcashd.1 | 8 ++++---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/man/zcash-cli.1 b/doc/man/zcash-cli.1 index 7738da3dd..0fdca7865 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" "July 2022" "zcash-cli v5.2.0-rc1" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. +.TH ZCASH-CLI "1" "July 2022" "zcash-cli v5.2.0" "User Commands" .SH NAME -zcash-cli \- manual page for zcash-cli v5.2.0-rc1 +zcash-cli \- manual page for zcash-cli v5.2.0 .SH DESCRIPTION -Zcash RPC client version v5.2.0\-rc1 +Zcash RPC client version v5.2.0 .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 d674f37ca..948dbd3ea 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" "July 2022" "zcash-tx v5.2.0-rc1" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. +.TH ZCASH-TX "1" "July 2022" "zcash-tx v5.2.0" "User Commands" .SH NAME -zcash-tx \- manual page for zcash-tx v5.2.0-rc1 +zcash-tx \- manual page for zcash-tx v5.2.0 .SH DESCRIPTION -Zcash zcash\-tx utility version v5.2.0\-rc1 +Zcash zcash\-tx utility version v5.2.0 .SS "Usage:" .TP zcash\-tx [options] [commands] diff --git a/doc/man/zcashd-wallet-tool.1 b/doc/man/zcashd-wallet-tool.1 index fc85a0bb0..e51d09560 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" "July 2022" "zcashd-wallet-tool v5.2.0-rc1" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. +.TH ZCASHD-WALLET-TOOL "1" "July 2022" "zcashd-wallet-tool v5.2.0" "User Commands" .SH NAME -zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.2.0-rc1 +zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.2.0 .SH SYNOPSIS .B zcashd-wallet-tool [\fI\,OPTIONS\/\fR] diff --git a/doc/man/zcashd.1 b/doc/man/zcashd.1 index e144031e8..9ba4f6aea 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" "July 2022" "zcashd v5.2.0-rc1" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. +.TH ZCASHD "1" "July 2022" "zcashd v5.2.0" "User Commands" .SH NAME -zcashd \- manual page for zcashd v5.2.0-rc1 +zcashd \- manual page for zcashd v5.2.0 .SH DESCRIPTION -Zcash Daemon version v5.2.0\-rc1 +Zcash Daemon version v5.2.0 .PP In order to ensure you are adequately protecting your privacy when using Zcash, please see . From b63dc026c77d413dd7bac381bf149d87a5df45bf Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Mon, 25 Jul 2022 12:42:25 -0600 Subject: [PATCH 3/3] make-release.py: Updated release notes and changelog for 5.2.0. --- contrib/debian/changelog | 6 + doc/authors.md | 46 ++--- doc/release-notes.md | 45 ----- doc/release-notes/release-notes-5.2.0.md | 211 +++++++++++++++++++++++ 4 files changed, 241 insertions(+), 67 deletions(-) create mode 100644 doc/release-notes/release-notes-5.2.0.md diff --git a/contrib/debian/changelog b/contrib/debian/changelog index ab84d5f30..32fb6c5d2 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,9 @@ +zcash (5.2.0) stable; urgency=medium + + * 5.2.0 release. + + -- Electric Coin Company Mon, 25 Jul 2022 12:42:25 -0600 + zcash (5.2.0~rc1) stable; urgency=medium * 5.2.0-rc1 release. diff --git a/doc/authors.md b/doc/authors.md index 35be1a2b7..d3a0e048f 100644 --- a/doc/authors.md +++ b/doc/authors.md @@ -1,39 +1,39 @@ Zcash Contributors ================== -Jack Grigg (1188) -Kris Nuttycombe (552) +Jack Grigg (1190) +Kris Nuttycombe (570) Simon Liu (460) -Sean Bowe (387) -Daira Hopwood (329) +Sean Bowe (389) +Daira Hopwood (334) Eirik Ogilvie-Wigley (216) -Wladimir J. van der Laan (150) +Wladimir J. van der Laan (152) +Pieter Wuille (142) Alfredo Garcia (119) Taylor Hornby (118) -Marshall Gaucher (114) -Pieter Wuille (108) +Marshall Gaucher (116) Ying Tong Lai (90) Jonas Schnelli (90) Jay Graber (89) Larry Ruane (88) Marco Falke (85) -Cory Fields (76) +Cory Fields (78) Matt Corallo (60) +sasha (58) Nathan Wilcox (56) -sasha (54) -practicalswift (41) +practicalswift (42) Kevin Gallagher (38) Dimitris Apostolou (38) fanquake (36) Carl Dong (26) +Luke Dashjr (24) +Gregory Maxwell (24) John Newbery (23) -Gregory Maxwell (23) Jorge Timón (22) -Luke Dashjr (21) +furszy (18) Jonathan "Duke" Leto (18) syd (16) Patick Strateman (16) -furszy (15) Charlie O'Keefe (15) avnish (14) Per Grön (14) @@ -41,6 +41,7 @@ Benjamin Winston (13) Steven Smith (12) Pavel Janík (12) Patrick Strateman (12) +Jeremy Rubin (12) Ariel Gabizon (12) Suhas Daftuar (11) Paige Peterson (11) @@ -53,14 +54,13 @@ Marius Kjærstad (10) ying tong (9) teor (9) nomnombtc (9) +Zancas Wilcox (9) Russell Yanofsky (9) kozyilmaz (8) -Zancas Wilcox (8) -Jeremy Rubin (8) Jeff Garzik (8) +Chun Kuan Lee (8) Ben Wilson (8) Karl-Johan Alm (7) -Chun Kuan Lee (7) James O'Beirne (6) David Mercer (6) Daniel Kraft (6) @@ -80,6 +80,7 @@ gladcow (4) WO (4) Sjors Provoost (4) Nate Wilcox (4) +Jim Posen (4) mruddy (3) lpescher (3) isle2983 (3) @@ -88,20 +89,22 @@ Thomas Snider (3) NikVolf (3) Martin Ankerl (3) Julian Fleischer (3) -Jim Posen (3) Jason Davies (3) Evan Klitzke (3) Ethan Heilman (3) Eric Lombrozo (3) Danny Willems (3) +Ben Woosley (3) Anthony Towns (3) Alfie John (3) +Aditya Kulkarni (3) whythat (2) rofl0r (2) ptschip (2) noname45688@gmail.com (2) kpcyrd (2) kobake (2) +instagibbs (2) hexabot (2) face (2) aniemerg (2) @@ -125,17 +128,17 @@ Jesse Cohen (2) Jeffrey Czyz (2) Jack Gavigan (2) ITH4Coinomia (2) +Hennadii Stepanov (2) +Dan Raviv (2) Dagur Valberg Johannsson (2) Conrado Gouvea (2) Bryant Eisenbach (2) Brian Stafford (2) Brad Miller (2) Bjorn Hjortsberg (2) -Ben Woosley (2) Amgad Abdelhafez (2) Alex Tsankov (2) Akio Nakamura (2) -Aditya Kulkarni (2) ロハン ダル (1) zathras-crypto (1) vim88 (1) @@ -145,13 +148,13 @@ tpantin (1) sgmoore (1) randy-waterhouse (1) plutoforever (1) +nathannaveen (1) murrayn (1) mrbandrews (1) kirkalx (1) kazcw (1) jeff-liang (1) jc (1) -instagibbs (1) glowang (1) ewillbefull@gmail.com (1) emilrus (1) @@ -208,6 +211,7 @@ Karel Bilek (1) Josh Lehan (1) Josh Ellithorpe (1) Jonas Nick (1) +Jon Layton (1) Jeffrey Walton (1) Janito Vaqueiro Ferreira Filho (1) Jainan-Tandel (1) @@ -215,7 +219,6 @@ Igor Cota (1) Ian T (1) Ian Munoz (1) Ian Kelling (1) -Hennadii Stepanov (1) Gregory Sanders (1) Gaurav Rana (1) Forrest Voight (1) @@ -226,7 +229,6 @@ Dimitris Tsapakidis (1) DesWurstes (1) Denis Lukianov (1) David Llop (1) -Dan Raviv (1) Christian von Roques (1) Chirag Davé (1) Cameron Boehmer (1) diff --git a/doc/release-notes.md b/doc/release-notes.md index 2bce0a3e3..a29094b51 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,48 +4,3 @@ release-notes at release time) Notable changes =============== -Node Performance Improvements ------------------------------ - -This release makes several changes to improve the performance of node operations. -These include: - -- Backported CuckooCache from upstream to improve the performance of signature - caching. - -- Added caching of proof and signature validation results for Sapling and - Orchard to eliminate redundant computation. - -- Backported SHA-256 assembly optimizations from upstream. - -Wallet Performance Improvements -------------------------------- - -This release makes several changes to improve the performance of wallet operations. -These include: - -- We now parallelize and batch trial decryption of Sapling outputs. - -- We now prune witness data in the wallet for notes spent more than 100 blocks - in the past, so that we can avoid unnecessarily updating those witnesses. - In order to take advantage of this performance improvement, users will need - to start their nodes with `-rescan` one time, in order to ensure that witnesses - for spent notes are in the wallet are properly pruned. - -- The process for incrementing the witnesses for notes the wallet is tracking - has been optimized to avoid redundant passes over the wallet. - -- Removed an assertion that was causing a slowdown in wallet scanning post-NU5. - -RPC Interface Changes -===================== - -- A `version` field was added to the result for the `gettransaction` RPC call to - avoid the need to make an extra call to `getrawtransaction` just to retrieve - the version. - -Fixes -===== - -- Fixed a regression that caused an incorrect process name to appear in the - process list. diff --git a/doc/release-notes/release-notes-5.2.0.md b/doc/release-notes/release-notes-5.2.0.md new file mode 100644 index 000000000..f5b938ec6 --- /dev/null +++ b/doc/release-notes/release-notes-5.2.0.md @@ -0,0 +1,211 @@ +Notable changes +=============== + +Node Performance Improvements +----------------------------- + +This release makes several changes to improve the performance of node operations. +These include: + +- Backported CuckooCache from upstream to improve the performance of signature + caching. + +- Added caching of proof and signature validation results for Sapling and + Orchard to eliminate redundant computation. + +- Backported SHA-256 assembly optimizations from upstream. + +Wallet Performance Improvements +------------------------------- + +This release makes several changes to improve the performance of wallet operations. +These include: + +- We now parallelize and batch trial decryption of Sapling outputs. + +- We now prune witness data in the wallet for notes spent more than 100 blocks + in the past, so that we can avoid unnecessarily updating those witnesses. + In order to take advantage of this performance improvement, users will need + to start their nodes with `-rescan` one time, in order to ensure that witnesses + for spent notes are in the wallet are properly pruned. + +- The process for incrementing the witnesses for notes the wallet is tracking + has been optimized to avoid redundant passes over the wallet. + +- Removed an assertion that was causing a slowdown in wallet scanning post-NU5. + +RPC Interface Changes +===================== + +- A `version` field was added to the result for the `gettransaction` RPC call to + avoid the need to make an extra call to `getrawtransaction` just to retrieve + the version. + +Fixes +===== + +- Fixed a regression that caused an incorrect process name to appear in the + process list. + +Changelog +========= + +Aditya Kulkarni (1): + Add tx version + +Ben Woosley (1): + build: Detect gmtime_* definitions via configure + +Chun Kuan Lee (1): + Use __cpuid_count for gnu C to avoid gitian build fail. + +Cory Fields (2): + time: add runtime sanity check + build: always attempt to enable targeted sse42 cxxflags + +Daira Hopwood (5): + This reverts part of 1f1810c37d00cb46d00d8553e6de3c6fdb991010 in #5959. Leaving the main thread unnamed causes it to be displayed as the executable name (i.e. `zcashd`) or command line in process monitoring tools. fixes #6066 + Apply doc suggestions from code review + Use crossbeam-channel instead of std::sync::mpsc. + Update cxx to 1.0.72. + Narrow the use of `#![allow(clippy::too_many_arguments)]` in src/rust/src/sapling.rs. + +Dan Raviv (1): + Fix header guards using reserved identifiers + +Gregory Maxwell (1): + Add an explanation of quickly hashing onto a non-power of two range. + +Hennadii Stepanov (1): + Use correct C++11 header for std::swap() + +Jack Grigg (16): + lint: Fix include guards + wallet: Prune witnesses for notes spent more than 100 blocks ago + wallet: Make `{Increment, Decrement}NoteWitnesses`-internal helpers static + Cache Sapling and Orchard bundle validation + Add bundle kind to `BundleValidityCache` initialization log message + wallet: Throw error if `ReadBlockFromDisk` fails + wallet: Improve documentation of `SproutNotData` and `SaplingNoteData` + Move explicit instantiations for `BundleValidityCache` into `zcash/cache.cpp` + bench: Fix ConnectBlock large block benchmarks + wallet: Add `BatchScanner` interface to `CValidationInterface` + wallet: Pass `Consensus::Params` into `CWallet::FindMySaplingNotes` + wallet: Migrate `CWallet` to `CValidationInterface::InitBatchScanner` + rust: Implement multithreaded batched trial decryption for Sapling + wallet: Use batch trial decryption for Sapling outputs + wallet: Enforce an assumption about how wallet data evolves + wallet: Domain-separate batched txids with a "block tag" + +Jeremy Rubin (4): + Add CuckooCache implementation and replace the sigcache map_type with it + Add unit tests for the CuckooCache + Decrease testcase sizes in cuckoocache tests + Deduplicate SignatureCacheHasher + +Jim Posen (1): + scripted-diff: Move util files to separate directory. + +Jon Layton (1): + doc: Doxygen-friendly CuckooCache comments + +Kris Nuttycombe (18): + scripted-diff: Move utiltest to src/util + Add a clock for testing with an offset from the system clock. + Apply suggestions from code review + Add persistent Sprout test data. + Remove the temporary test that was used for setup of the cached Sprout fixtures. + Add RPC test initialization using the persisted Sprout chains. + Update sprout_sapling_migration test to use persisted sprout chains. + Update feature_zip239 test to use persisted sprout chains. + Add missing header to util/time.h + Update finalsaplingroot test to use persisted sprout chains. + Update getblocktemplate test to use persisted sprout chain + Replace setup_clean_chain with cache_behavior in rpc test init. + qa: Postpone recent native_rust, native_cxxbridge and rustcxx updates + Update release notes for v5.2.0. + make-release.py: Versioning changes for 5.2.0-rc1. + make-release.py: Updated manpages for 5.2.0-rc1. + make-release.py: Updated release notes and changelog for 5.2.0-rc1. + Fix incomplete release notes for witness pruning. + +Luke Dashjr (3): + configure: Invert --enable-asm help string since default is now enabled + configure: Skip assembly support checks, when assembly is disabled + configure: Initialise assembly enable_* variables + +Marshall Gaucher (2): + Update entrypoint.sh + Update contrib/docker/entrypoint.sh + +Pieter Wuille (34): + Allow non-power-of-2 signature cache sizes + Do not store Merkle branches in the wallet. + Avoid duplicate CheckBlock checks + Add merkle.{h,cpp}, generic merkle root/branch algorithm + Switch blocks to a constant-space Merkle root/branch algorithm. + Add FastRandomContext::rand256() and ::randbytes() + scripted-diff: Rename cuckoo tests' local rand context + Merge test_random.h into test_bitcoin.h + Add various insecure_rand wrappers for tests + scripted-diff: use insecure_rand256/randrange more + Replace more rand() % NUM by randranges + Replace rand() & ((1 << N) - 1) with randbits(N) + Use randbits instead of ad-hoc emulation in prevector tests + scripted-diff: Use randbits/bool instead of randrange where possible + scripted-diff: Use new naming style for insecure_rand* functions + Support multi-block SHA256 transforms + Add SHA256 dispatcher + Add SSE4 based SHA256 + Add selftest for SHA256 transform + Protect SSE4 code behind a compile-time flag + Benchmark Merkle root computation + Refactor SHA256 code + Specialized double sha256 for 64 byte inputs + Use SHA256D64 in Merkle root computation + 4-way SSE4.1 implementation for double SHA256 on 64-byte inputs + 8-way AVX2 implementation for double SHA256 on 64-byte inputs + [MOVEONLY] Move unused Merkle branch code to tests + Enable double-SHA256-for-64-byte code on 32-bit x86 + Improve coverage of SHA256 SelfTest code + For AVX2 code, also check for AVX, XSAVE, and OS support + [Refactor] CPU feature detection logic for SHA256 + Add SHA256 implementation using using Intel SHA intrinsics + Use immintrin.h everywhere for intrinsics + Avoid non-trivial global constants in SHA-NI code + +Sean Bowe (2): + make-release.py: Versioning changes for 5.2.0. + make-release.py: Updated manpages for 5.2.0. + +Wladimir J. van der Laan (2): + build: Rename --enable-experimental-asm to --enable-asm and enable by default + build: Mention use of asm in summary + +furszy (3): + Fix missing vector include and vector type definition + Rework Sprout and Sapling witnesses increment and cache workflow, so it does not loop over the entire wallet txs map indiscriminately. + Use references instead of pointers where possible. + +instagibbs (1): + Return useful error message on ATMP failure + +nathannaveen (1): + chore: Set permissions for GitHub actions + +practicalswift (1): + Use explicit casting in cuckoocache's compute_hashes(...) to clarify integer conversion + +sasha (4): + Patch smoke_tests.py to properly handle changes in minconf behavior + Improve smoke_test.py wait_for_balance message in the minconf!=1 case + Patch smoke_tests.py to require 4 confirmations for z_mergetoaddress + Add cuckoocache.h to Makefile.am + +Jack Grigg (2): + Improve bundlecache documentation + Minor fixes to documentation + +Zancas Wilcox (1): + match the actual two hyphen flag +