diff --git a/README.md b/README.md index 4ad2d15c9..9d9a121a5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Zcash 5.3.0-rc1 +Zcash 5.3.0 =========== diff --git a/configure.ac b/configure.ac index e40ff9dbd..4421ed480 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 5) define(_CLIENT_VERSION_MINOR, 3) 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/debian/changelog b/contrib/debian/changelog index e973ec7aa..2afc8e388 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,9 @@ +zcash (5.3.0) stable; urgency=medium + + * 5.3.0 release. + + -- Electric Coin Company Thu, 20 Oct 2022 10:52:37 -0600 + zcash (5.3.0~rc1) stable; urgency=medium * 5.3.0-rc1 release. diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index e6ecc763c..7c9ece4f5 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -1,5 +1,5 @@ --- -name: "zcash-5.3.0-rc1" +name: "zcash-5.3.0" enable_cache: true distro: "debian" suites: diff --git a/doc/authors.md b/doc/authors.md index d3a0e048f..d3a1e5457 100644 --- a/doc/authors.md +++ b/doc/authors.md @@ -1,14 +1,14 @@ Zcash Contributors ================== -Jack Grigg (1190) -Kris Nuttycombe (570) +Jack Grigg (1243) +Kris Nuttycombe (582) Simon Liu (460) Sean Bowe (389) -Daira Hopwood (334) +Daira Hopwood (343) Eirik Ogilvie-Wigley (216) -Wladimir J. van der Laan (152) -Pieter Wuille (142) +Wladimir J. van der Laan (158) +Pieter Wuille (143) Alfredo Garcia (119) Taylor Hornby (118) Marshall Gaucher (116) @@ -16,20 +16,21 @@ Ying Tong Lai (90) Jonas Schnelli (90) Jay Graber (89) Larry Ruane (88) -Marco Falke (85) +Marco Falke (86) Cory Fields (78) Matt Corallo (60) -sasha (58) -Nathan Wilcox (56) +sasha (59) +Nathan Wilcox (57) practicalswift (42) Kevin Gallagher (38) Dimitris Apostolou (38) fanquake (36) +Luke Dashjr (26) Carl Dong (26) -Luke Dashjr (24) Gregory Maxwell (24) John Newbery (23) Jorge Timón (22) +Greg Pfeil (20) furszy (18) Jonathan "Duke" Leto (18) syd (16) @@ -61,6 +62,8 @@ Jeff Garzik (8) Chun Kuan Lee (8) Ben Wilson (8) Karl-Johan Alm (7) +Hennadii Stepanov (7) +Alex Wied (7) James O'Beirne (6) David Mercer (6) Daniel Kraft (6) @@ -74,13 +77,13 @@ Johnathan Corgan (5) George Tankersley (5) Gavin Andresen (5) Gareth Davies (5) -Alex Wied (5) sandakersmann (4) gladcow (4) WO (4) Sjors Provoost (4) Nate Wilcox (4) Jim Posen (4) +Ben Woosley (4) mruddy (3) lpescher (3) isle2983 (3) @@ -94,7 +97,7 @@ Evan Klitzke (3) Ethan Heilman (3) Eric Lombrozo (3) Danny Willems (3) -Ben Woosley (3) +Conrado Gouvea (3) Anthony Towns (3) Alfie John (3) Aditya Kulkarni (3) @@ -128,20 +131,21 @@ Jesse Cohen (2) Jeffrey Czyz (2) Jack Gavigan (2) ITH4Coinomia (2) -Hennadii Stepanov (2) +DeckerSU (2) Dan Raviv (2) Dagur Valberg Johannsson (2) -Conrado Gouvea (2) Bryant Eisenbach (2) Brian Stafford (2) Brad Miller (2) Bjorn Hjortsberg (2) Amgad Abdelhafez (2) Alex Tsankov (2) +Alex (2) Akio Nakamura (2) ロハン ダル (1) zathras-crypto (1) vim88 (1) +user (1) unsystemizer (1) tulip (1) tpantin (1) @@ -214,6 +218,7 @@ Jonas Nick (1) Jon Layton (1) Jeffrey Walton (1) Janito Vaqueiro Ferreira Filho (1) +James White (1) Jainan-Tandel (1) Igor Cota (1) Ian T (1) @@ -241,10 +246,10 @@ Bob McElrath (1) Bitcoin Error Log (1) Bernhard M. Wiedemann (1) Ashley Holman (1) +Andrés G. Aragoneses (1) Andrew Chow (1) Allan Niemerg (1) Alex van der Peet (1) -Alex (1) Ahmad Kazi (1) Adam Weiss (1) Adam Langley (1) diff --git a/doc/man/zcash-cli.1 b/doc/man/zcash-cli.1 index 8a9632ab2..6bc31fbcb 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" "October 2022" "zcash-cli v5.3.0-rc1" "User Commands" +.TH ZCASH-CLI "1" "October 2022" "zcash-cli v5.3.0" "User Commands" .SH NAME -zcash-cli \- manual page for zcash-cli v5.3.0-rc1 +zcash-cli \- manual page for zcash-cli v5.3.0 .SH DESCRIPTION -Zcash RPC client version v5.3.0\-rc1 +Zcash RPC client version v5.3.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 7626ce290..ce8c1ae64 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" "October 2022" "zcash-tx v5.3.0-rc1" "User Commands" +.TH ZCASH-TX "1" "October 2022" "zcash-tx v5.3.0" "User Commands" .SH NAME -zcash-tx \- manual page for zcash-tx v5.3.0-rc1 +zcash-tx \- manual page for zcash-tx v5.3.0 .SH DESCRIPTION -Zcash zcash\-tx utility version v5.3.0\-rc1 +Zcash zcash\-tx utility version v5.3.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 060784e72..2c19ea2c0 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" "October 2022" "zcashd-wallet-tool v5.3.0-rc1" "User Commands" +.TH ZCASHD-WALLET-TOOL "1" "October 2022" "zcashd-wallet-tool v5.3.0" "User Commands" .SH NAME -zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.3.0-rc1 +zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.3.0 .SH SYNOPSIS .B zcashd-wallet-tool [\fI\,OPTIONS\/\fR] diff --git a/doc/man/zcashd.1 b/doc/man/zcashd.1 index 9ba4f6aea..090c5a511 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.2. -.TH ZCASHD "1" "July 2022" "zcashd v5.2.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. +.TH ZCASHD "1" "October 2022" "zcashd v5.3.0" "User Commands" .SH NAME -zcashd \- manual page for zcashd v5.2.0 +zcashd \- manual page for zcashd v5.3.0 .SH DESCRIPTION -Zcash Daemon version v5.2.0 +Zcash Daemon version v5.3.0 .PP In order to ensure you are adequately protecting your privacy when using Zcash, please see . @@ -94,7 +94,7 @@ Keep at most unconnectable transactions in memory (default: 100) .HP \fB\-par=\fR .IP -Set the number of script verification threads (\fB\-16\fR to 16, 0 = auto, <0 = +Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 = leave that many cores free, default: 0) .HP \fB\-pid=\fR @@ -458,7 +458,7 @@ transaction; setting this too low may abort large transactions (default: .HP \fB\-printtoconsole\fR .IP -Send trace/debug info to console instead of debug.log file +Send trace/debug info to console instead of the debug log .PP Chain selection options: .HP diff --git a/doc/release-notes.md b/doc/release-notes.md index 7b5ae4bbf..a29094b51 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,29 +4,3 @@ release-notes at release time) Notable changes =============== -Wallet Performance Improvements -------------------------------- - -`zcashd 5.2.0` improved the performance of wallet scanning with multithreaded -batched trial decryption of Sapling outputs. However, for some nodes this -resulted in growing memory usage that would eventually cause an OOM abort. We -have identified the cause of the growth, and made significant improvements to -reduce the memory usage of the batch scanner. In addition, the batch scanner now -has a memory limit of 100 MiB. - -`zcashd` now reports the following new metrics when `-prometheusport` is set: - -- (counter) `zcashd.wallet.batchscanner.outputs.scanned` -- (gauge) `zcashd.wallet.batchscanner.size.transactions` -- (gauge) `zcashd.wallet.batchscanner.usage.bytes` -- (gauge) `zcashd.wallet.synced.block.height` - -RPC Interface -------------- - -- The `finalorchardroot` field in the `getblock` result and the - `orchard.commitments.finalRoot` field in the `z_gettreestate` result have - been changed to match the byte ordering used for the `orchard.anchor` - field in the `getrawtransaction` result. These previously produced different - hash values from the `orchard.anchor` field due to having been byte-flipped - in their internal representation in zcashd. diff --git a/doc/release-notes/release-notes-5.3.0.md b/doc/release-notes/release-notes-5.3.0.md new file mode 100644 index 000000000..e2e5435be --- /dev/null +++ b/doc/release-notes/release-notes-5.3.0.md @@ -0,0 +1,192 @@ +Notable changes +=============== + +Wallet Performance Improvements +------------------------------- + +`zcashd 5.2.0` improved the performance of wallet scanning with multithreaded +batched trial decryption of Sapling outputs. However, for some nodes this +resulted in growing memory usage that would eventually cause an OOM abort. We +have identified the cause of the growth, and made significant improvements to +reduce the memory usage of the batch scanner. In addition, the batch scanner now +has a memory limit of 100 MiB. + +`zcashd` now reports the following new metrics when `-prometheusport` is set: + +- (counter) `zcashd.wallet.batchscanner.outputs.scanned` +- (gauge) `zcashd.wallet.batchscanner.size.transactions` +- (gauge) `zcashd.wallet.batchscanner.usage.bytes` +- (gauge) `zcashd.wallet.synced.block.height` + +RPC Interface +------------- + +- The `finalorchardroot` field in the `getblock` result and the + `orchard.commitments.finalRoot` field in the `z_gettreestate` result have + been changed to match the byte ordering used for the `orchard.anchor` + field in the `getrawtransaction` result. These previously produced different + hash values from the `orchard.anchor` field due to having been byte-flipped + in their internal representation in zcashd. + +Changelog +========= + +Alex (1): + build: update book.yml Signed-off-by: sashashura <93376818+sashashura@users.noreply.github.com> + +Alex Wied (2): + cuckoocache: Add missing header + build: Reorder link targets to properly build on Nix + +Andrés G. Aragoneses (1): + autogen.sh: warn about needing autoconf if autoreconf is not found + +Ben Woosley (1): + doc: Correct spelling errors in comments + +Conrado Gouvea (1): + Include algorithm.h in cuckoocache.h + +Daira Hopwood (9): + Add contrib/debian/copyright entry for crc32c. + Apply suggestions from code review + Update doc/book/src/user/security-warnings.md + Update librustzcash commit and adapt to changes in `DiversifierKey`. + Avoid an implicit clone of the Orchard bundle in ContextualCheckTransaction. + Use prepared epks and ivks in trial decryption. + Audit dependency updates. + Include memory usage of the `tags` vector. This fixes *one* of the bugs pointed out by @str4d at https://github.com/zcash/zcash/pull/6156/files#r979122874 + Always use a tuple as right argument of % in new Python code. + +DeckerSU (2): + miner: fix MAXSOLS + test_framework: fix AttributeError in sapling_spends_compact_digest + +Greg Pfeil (20): + Eliminate indirection for debug log + Define some basic cross-editor configuration + Canonicalize some user-provided paths + Add an `rpc-tests` make target + Add simplejson to requirements for rpc-tests + Also canonicalize paramsdir. + Backport tor.md changes from readthedocs + Don't recommend -reindex-chainstate. + Add a finalorchardroot RPC test + Fix finalorchardroot serialization + Apply suggestions from code review + Fix display of binary name in error messages. + Address review feedback and fixed test failures + Add test for `zcashd --help` + Fix `zcashd --help` + Apply suggestions from code review + Qualify a `string` + Don’t define wallet-needing code when --disable-wallet + make-release.py: Versioning changes for 5.3.0. + make-release.py: Updated manpages for 5.3.0. + +Hennadii Stepanov (5): + Enable ShellCheck rules + script: Lint Gitian descriptors with ShellCheck + script: Enable SC2006 rule for Gitian scripts + script: Enable SC2155 rule for Gitian scripts + script: Enable SC2001 rule for Gitian scripts + +Jack Grigg (53): + Squashed 'src/leveldb/' changes from f545dfabff..f8ae182c1e + Squashed 'src/crc32c/' content from commit 224988680f + depends: Update Rust to 1.62.1 + depends: Update Clang / libcxx to LLVM 14.0.6 + depends: Update Rust to 1.63.0 + CI: Migrate to published versions of cargo-vet + rust: Update some of the pinned dependencies + rust: Add `zcash-inspect` binary for inspecting Zcash data + rust: Add P2PKH signature checking to `zcash-inspect` + rust: Add address inspection to `zcash-inspect` + rust: Add mnemonic phrase inspection to `zcash-inspect` + rust: Simplify `next_pow2` in `zcash-inspect` + rust: Place tighter bound on encoded heights in `zcash-inspect` + lint: Fix shell lints + CI: Enforce shell lints to prevent regression + lint: Fix ShellCheck lints in Zcash scripts + lint: Disable some ShellChecks on Gitian descriptors + rust: Add shielded sighash to `zcash-inspect` output for txs + rust: `zcash-inspect` 32-byte hex as maybe a commitment or nullifier + build: Build Rust library and binaries at the same time + rust: Migrate to latest `zcash_primitives` revision + rust: Migrate Rust tests to latest `zcash_primitives` revision + wallet: Use `auto&` to avoid copying inside `ThreadNotifyWallets` + wallet: Refactor `ThreadNotifyWallets` to support batch memory limits + wallet: Add dynamic memory usage tracking to `BatchScanner` + wallet: Collect metrics on the number of scanned outputs + wallet: Set a memory limit of 100 MiB for batch scanning + wallet: Only store successful trial decryptions in batch scanner + depends: Update Rust to 1.64.0 + qa: Postpone dependencies that require CMake + qa: Postpone Clang 15 to retain LLVM 14 pin + depends: Update cxx to 1.0.76 + depends: Update Boost to 1.80.0 + Fix clippy lints + qa: Add audit policies for patched Rust crates + metrics: Add gauge for the height to which the wallet is synced + wallet: Move heap tracking of batch tasks behind a trait + wallet: Correctly track heap usage of batch items + wallet: Improve estimation of `rayon` spawned task size + Squashed 'src/secp256k1/' changes from a4abaab793..efad3506a8 + Squashed 'src/secp256k1/' changes from efad3506a8..1758a92ffd + build: Disable secp256k1 OpenSSL tests + wallet: Remove lock on cs_main from CWallet::ChainTip + rust: Update to `metrics 0.20` + depends: Update cxx to 1.0.78 + qa: Postpone Clang 15.0.2 + rust: Update to `cpufeatures 0.2.5` + qa: Recommend cargo-upgrades instead of cargo-outdated + rust: Audit some dependency updates + rust: Update remaining dependencies + make-release.py: Versioning changes for 5.3.0-rc1. + make-release.py: Updated manpages for 5.3.0-rc1. + make-release.py: Updated release notes and changelog for 5.3.0-rc1. + +James White (1): + Add IPv6 support to qos.sh + +Kris Nuttycombe (12): + Update `z_sendmany` help to clarify what happens when sending from a UA + Revert "redirect and update source documentation" + Fix documentation line wrapping + Backport changes from zcash.readthedocs.io + Move restored documentation into the zcashd book + Replace manual mangement of the Sapling proving context with cxx + Apply suggestions from code review + Update and/or postpone dependencies for 5.3.0 + Vet cxxbridge upgrade. + Update to released versions of librustzcash crates. + Certify librustzcash crate upgrades. + Fix clippy lints. + +Luke Dashjr (2): + Bugfix: Only use git for build info if the repository is actually the right one + Bugfix: Detect genbuild.sh in repo correctly + +Marco Falke (1): + Remove script to clean up datadirs + +Nathan Wilcox (1): + Update rust.md + +Pieter Wuille (1): + libsecp256k1 no longer has --with-bignum= configure option + +Wladimir J. van der Laan (6): + build: Update build system for new leveldb + doc: Add crc32c subtree to developer notes + test: Add crc32c to subtree check linter + test: Add crc32c exception to various linters and generation scripts + build: CRC32C build system integration + build: Get rid of `CLIENT_DATE` + +sasha (1): + Make RUST_DIST in Makefile.am refer to rust-toolchain.toml (baf7d9e) + +user (1): + README.md: Clarify distinction between protocol vs zcashd implementation; link to Zebra; line wrapping. + diff --git a/src/clientversion.h b/src/clientversion.h index cdf0f1dab..3bd546896 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -18,7 +18,7 @@ #define CLIENT_VERSION_MAJOR 5 #define CLIENT_VERSION_MINOR 3 #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 2012b1037..411649a8f 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 = 1750350; +static const int APPROX_RELEASE_HEIGHT = 1849900; 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.");