Merge pull request #6099 from ebfull/release-v5.2.0

Release v5.2.0
This commit is contained in:
Kris Nuttycombe 2022-07-26 09:03:35 -06:00 committed by GitHub
commit d6d2093beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 261 additions and 87 deletions

View File

@ -1,4 +1,4 @@
Zcash 5.2.0-rc1
Zcash 5.2.0
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
===========

View File

@ -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)

View File

@ -1,3 +1,9 @@
zcash (5.2.0) stable; urgency=medium
* 5.2.0 release.
-- Electric Coin Company <team@electriccoin.co> Mon, 25 Jul 2022 12:42:25 -0600
zcash (5.2.0~rc1) stable; urgency=medium
* 5.2.0-rc1 release.

View File

@ -1,5 +1,5 @@
---
name: "zcash-5.2.0-rc1"
name: "zcash-5.2.0"
enable_cache: true
distro: "debian"
suites:

View File

@ -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)

View File

@ -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 <https://z.cash/support/security/>.

View File

@ -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] <hex\-tx> [commands]

View File

@ -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]

View File

@ -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 <https://z.cash/support/security/>.

View File

@ -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.

View File

@ -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 <chrono> 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

View File

@ -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

View File

@ -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.");