diff --git a/Cargo.lock b/Cargo.lock
index bf6931a9d..d4d3ad161 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -439,9 +439,9 @@ dependencies = [
[[package]]
name = "cxx"
-version = "1.0.68"
+version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e599641dff337570f6aa9c304ecca92341d30bf72e1c50287869ed6a36615a6"
+checksum = "b7c14d679239b1ccaad7acaf972a19b41b6c1d7a8cb942158294b4f11ec71bd8"
dependencies = [
"cc",
"cxxbridge-flags",
@@ -451,15 +451,15 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
-version = "1.0.68"
+version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3894ad0c6d517cb5a4ce8ec20b37cd0ea31b480fe582a104c5db67ae21270853"
+checksum = "2fdfa84261f05a9b69c0afe03270f9f26d6899ca7df6f442563908b646e8a376"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.68"
+version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34fa7e395dc1c001083c7eed28c8f0f0b5a225610f3b6284675f444af6fab86b"
+checksum = "0269826813dfbda75223169c774fede73401793e9af3970e4edbe93879782c1d"
dependencies = [
"proc-macro2",
"quote",
@@ -1472,11 +1472,11 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.37"
+version = "1.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1"
+checksum = "cdcc2916cde080c1876ff40292a396541241fe0072ef928cd76582e9ea5d60d2"
dependencies = [
- "unicode-xid",
+ "unicode-ident",
]
[[package]]
@@ -1861,13 +1861,13 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
-version = "1.0.91"
+version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
dependencies = [
"proc-macro2",
"quote",
- "unicode-xid",
+ "unicode-ident",
]
[[package]]
@@ -2076,6 +2076,12 @@ dependencies = [
"static_assertions",
]
+[[package]]
+name = "unicode-ident"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+
[[package]]
name = "unicode-normalization"
version = "0.1.19"
diff --git a/Cargo.toml b/Cargo.toml
index e4e22ab9a..13d830915 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -63,7 +63,7 @@ zeroize = "1.4.2"
# Rust/C++ interop
# The version needs to match depends/packages/native_cxxbridge.mk
-cxx = { version = "=1.0.68", features = ["c++17"] }
+cxx = { version = "=1.0.72", features = ["c++17"] }
# Rust threading
rayon = "1.5"
diff --git a/README.md b/README.md
index 32d1b8296..ac54ae4cd 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Zcash 5.1.0
+Zcash 5.2.0
===========
diff --git a/configure.ac b/configure.ac
index e1eb3a3f6..f787b9142 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 5)
-define(_CLIENT_VERSION_MINOR, 1)
+define(_CLIENT_VERSION_MINOR, 2)
define(_CLIENT_VERSION_REVISION, 0)
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)))
diff --git a/contrib/debian/changelog b/contrib/debian/changelog
index a3beaee95..32fb6c5d2 100644
--- a/contrib/debian/changelog
+++ b/contrib/debian/changelog
@@ -1,3 +1,15 @@
+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.
+
+ -- Electric Coin Company Fri, 22 Jul 2022 15:07:59 -0600
+
zcash (5.1.0) stable; urgency=medium
* 5.1.0 release.
diff --git a/contrib/debian/copyright b/contrib/debian/copyright
index 808b41e10..b86334da3 100644
--- a/contrib/debian/copyright
+++ b/contrib/debian/copyright
@@ -227,6 +227,12 @@ Files: depends/*/vendored-sources/terminfo/*
Copyright: 2016-2020 meh
License: WTFPL
+Files: depends/*/vendored-sources/unicode-ident/src/tables.rs
+Copyright: 1991-2022 Unicode, Inc
+License: Unicode
+Comment: This entry is for code in the unicode-ident crate generated from Unicode data tables.
+ The license of the unicode-ident crate itself is MIT/Expat or Apache-2.0.
+
Files: src/crypto/ctaes/*
Copyright: 2016 Pieter Wuille
License: Expat
@@ -1893,3 +1899,51 @@ License: BOSL-1
above with the notice "Licensed under " or with
a notice of your own that is not confusingly similar to the notice in this
License.
+
+License: Unicode
+ UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+ .
+ See Terms of Use
+ for definitions of Unicode Inc.’s Data Files and Software.
+ .
+ NOTICE TO USER: Carefully read the following legal agreement.
+ BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
+ DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
+ YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
+ TERMS AND CONDITIONS OF THIS AGREEMENT.
+ IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
+ THE DATA FILES OR SOFTWARE.
+ .
+ COPYRIGHT AND PERMISSION NOTICE
+ .
+ Copyright © 1991-2022 Unicode, Inc. All rights reserved.
+ Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
+ .
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of the Unicode data files and any associated documentation
+ (the "Data Files") or Unicode software and any associated documentation
+ (the "Software") to deal in the Data Files or Software
+ without restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, and/or sell copies of
+ the Data Files or Software, and to permit persons to whom the Data Files
+ or Software are furnished to do so, provided that either
+ (a) this copyright and permission notice appear with all copies
+ of the Data Files or Software, or
+ (b) this copyright and permission notice appear in associated
+ Documentation.
+ .
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+ NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+ DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+ .
+ Except as contained in this notice, the name of a copyright holder
+ shall not be used in advertising or otherwise to promote the sale,
+ use or other dealings in these Data Files or Software without prior
+ written authorization of the copyright holder.
diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml
index d25403476..fc7de7de5 100644
--- a/contrib/gitian-descriptors/gitian-linux.yml
+++ b/contrib/gitian-descriptors/gitian-linux.yml
@@ -1,5 +1,5 @@
---
-name: "zcash-5.1.0"
+name: "zcash-5.2.0"
enable_cache: true
distro: "debian"
suites:
diff --git a/depends/packages/native_cxxbridge.mk b/depends/packages/native_cxxbridge.mk
index 996fa59e9..865cadaf0 100644
--- a/depends/packages/native_cxxbridge.mk
+++ b/depends/packages/native_cxxbridge.mk
@@ -1,24 +1,25 @@
package=native_cxxbridge
# The version needs to match cxx in Cargo.toml
-$(package)_version=1.0.68
+$(package)_version=1.0.72
$(package)_download_path=https://github.com/dtolnay/cxx/archive/refs/tags
$(package)_file_name=native_cxxbridge-$($(package)_version).tar.gz
$(package)_download_file=$($(package)_version).tar.gz
-$(package)_sha256_hash=6fed9ef1c64a37c343727368b38c27fa4e15b27ca9924c6672a6a5496080c832
+$(package)_sha256_hash=22b2ec9b6cbec281f4b4d8dc8e403e7ab276b9d2140d4e7074a1388a252c4c0b
$(package)_build_subdir=gen/cmd
$(package)_dependencies=native_rust
# This file is somewhat annoying to update, but can be done like so from the repo base:
+# $ export VERSION=1.0.72
# $ rm .cargo/config .cargo/.configured-for-offline
# $ mkdir tmp
# $ cd tmp
-# $ tar xf ../depends/sources/native_cxxbridge-1.0.68.tar.gz
-# $ cd cxx-1.0.68
+# $ tar xf ../depends/sources/native_cxxbridge-$VERSION.tar.gz
+# $ cd cxx-$VERSION
# $ cargo build --release --package=cxxbridge-cmd --bin=cxxbridge
# $ cargo clean
# $ cd ..
-# $ mv cxx-1.0.68 cxx-1.0.68-locked
-# $ tar xf ../depends/sources/native_cxxbridge-1.0.68.tar.gz
-# $ diff -urN cxx-1.0.68 cxx-1.0.68-locked >../depends/patches/native_cxxbridge/lockfile.diff
+# $ mv cxx-$VERSION cxx-$VERSION-locked
+# $ tar xf ../depends/sources/native_cxxbridge-$VERSION.tar.gz
+# $ diff -urN cxx-$VERSION cxx-$VERSION-locked >../depends/patches/native_cxxbridge/lockfile.diff
$(package)_patches=lockfile.diff
$(package)_extra_sources=$(package)-$($(package)_version)-vendored.tar.gz
diff --git a/depends/patches/native_cxxbridge/lockfile.diff b/depends/patches/native_cxxbridge/lockfile.diff
index 67a23584a..91d3bf7a3 100644
--- a/depends/patches/native_cxxbridge/lockfile.diff
+++ b/depends/patches/native_cxxbridge/lockfile.diff
@@ -1,7 +1,7 @@
-diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
---- cxx-1.0.68/Cargo.lock 1970-01-01 00:00:00.000000000 +0000
-+++ cxx-1.0.68-locked/Cargo.lock 2022-05-27 23:14:22.902459945 +0000
-@@ -0,0 +1,447 @@
+diff -urN cxx-1.0.72/Cargo.lock cxx-1.0.72-locked/Cargo.lock
+--- cxx-1.0.72/Cargo.lock 1970-01-01 01:00:00.000000000 +0100
++++ cxx-1.0.72-locked/Cargo.lock 2022-07-25 13:19:29.023791072 +0100
+@@ -0,0 +1,445 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
@@ -50,9 +50,9 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "clap"
-+version = "3.1.18"
++version = "3.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b"
++checksum = "54635806b078b7925d6e36810b1755f2a4b5b4d57560432c1ecf60bcbe10602b"
+dependencies = [
+ "bitflags",
+ "clap_lex",
@@ -63,9 +63,9 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "clap_lex"
-+version = "0.2.0"
++version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213"
++checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
@@ -91,7 +91,7 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "cxx"
-+version = "1.0.68"
++version = "1.0.72"
+dependencies = [
+ "cc",
+ "cxx-build",
@@ -106,7 +106,7 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "cxx-build"
-+version = "1.0.68"
++version = "1.0.72"
+dependencies = [
+ "cc",
+ "codespan-reporting",
@@ -121,7 +121,7 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "cxx-gen"
-+version = "0.7.68"
++version = "0.7.72"
+dependencies = [
+ "codespan-reporting",
+ "proc-macro2",
@@ -140,7 +140,7 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "cxxbridge-cmd"
-+version = "1.0.68"
++version = "1.0.72"
+dependencies = [
+ "clap",
+ "codespan-reporting",
@@ -151,11 +151,11 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "cxxbridge-flags"
-+version = "1.0.68"
++version = "1.0.72"
+
+[[package]]
+name = "cxxbridge-macro"
-+version = "1.0.68"
++version = "1.0.72"
+dependencies = [
+ "clang-ast",
+ "cxx",
@@ -184,13 +184,11 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "flate2"
-+version = "1.0.23"
++version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af"
++checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+dependencies = [
-+ "cfg-if",
+ "crc32fast",
-+ "libc",
+ "miniz_oxide",
+]
+
@@ -202,15 +200,15 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "hashbrown"
-+version = "0.11.2"
++version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "indexmap"
-+version = "1.8.1"
++version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee"
++checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
@@ -258,24 +256,24 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "miniz_oxide"
-+version = "0.5.1"
++version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
++checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "once_cell"
-+version = "1.12.0"
++version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
++checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "os_str_bytes"
-+version = "6.1.0"
++version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
++checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4"
+
+[[package]]
+name = "pkg-config"
@@ -285,27 +283,27 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "proc-macro2"
-+version = "1.0.39"
++version = "1.0.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
++checksum = "cdcc2916cde080c1876ff40292a396541241fe0072ef928cd76582e9ea5d60d2"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
-+version = "1.0.18"
++version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
++checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rustversion"
-+version = "1.0.6"
++version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
++checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8"
+
+[[package]]
+name = "ryu"
@@ -321,18 +319,18 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "serde"
-+version = "1.0.137"
++version = "1.0.140"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
++checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
-+version = "1.0.137"
++version = "1.0.140"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
++checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -341,9 +339,9 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "serde_json"
-+version = "1.0.81"
++version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
++checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+dependencies = [
+ "itoa",
+ "ryu",
@@ -358,9 +356,9 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "syn"
-+version = "1.0.95"
++version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942"
++checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -393,9 +391,9 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "trybuild"
-+version = "1.0.61"
++version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fc92f558afb6d1d7c6f175eb8d615b8ef49c227543e68e19c123d4ee43d8a7d"
++checksum = "764b9e244b482a9b81bde596aa37aa6f1347bf8007adab25e59f901b32b4e0a0"
+dependencies = [
+ "dissimilar",
+ "glob",
@@ -409,9 +407,9 @@ diff -urN cxx-1.0.68/Cargo.lock cxx-1.0.68-locked/Cargo.lock
+
+[[package]]
+name = "unicode-ident"
-+version = "1.0.0"
++version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
++checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+
+[[package]]
+name = "unicode-width"
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/man/zcash-cli.1 b/doc/man/zcash-cli.1
index 5724e84ae..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.47.13.
-.TH ZCASH-CLI "1" "July 2022" "zcash-cli v5.1.0" "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.1.0
+zcash-cli \- manual page for zcash-cli v5.2.0
.SH DESCRIPTION
-Zcash RPC client version v5.1.0
+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 56d676156..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.47.13.
-.TH ZCASH-TX "1" "July 2022" "zcash-tx v5.1.0" "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.1.0
+zcash-tx \- manual page for zcash-tx v5.2.0
.SH DESCRIPTION
-Zcash zcash\-tx utility version v5.1.0
+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 6a3ec282b..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.47.13.
-.TH ZCASHD-WALLET-TOOL "1" "July 2022" "zcashd-wallet-tool v5.1.0" "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.1.0
+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 e2606d5a7..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.47.13.
-.TH ZCASHD "1" "July 2022" "zcashd v5.1.0" "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.1.0
+zcashd \- manual page for zcashd v5.2.0
.SH DESCRIPTION
-Zcash Daemon version v5.1.0
+Zcash Daemon version v5.2.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see .
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 2cb9f9413..a29094b51 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -4,11 +4,3 @@ release-notes at release time)
Notable changes
===============
-Merkle branches removed from wallet
------------------------------------
-
-Previously, every wallet transaction stored a Merkle branch to prove its
-presence in blocks. This wasn't being used for more than an expensive
-sanity check. Since 5.1.0, these are no longer stored. When loading a
-5.1.0 wallet into an older version, it will automatically rescan to avoid
-failed checks.
diff --git a/doc/release-notes/release-notes-5.1.0.md b/doc/release-notes/release-notes-5.1.0.md
index be2aef4a6..83a39ef97 100644
--- a/doc/release-notes/release-notes-5.1.0.md
+++ b/doc/release-notes/release-notes-5.1.0.md
@@ -68,6 +68,11 @@ Wallet
`zcashd` now attempts to rectify the situation, and otherwise will inform the
user before shutting down that a reindex is required.
+- Previously, every wallet transaction stored a Merkle branch to prove its
+ presence in blocks. This wasn't being used for more than an expensive sanity
+ check. Since 5.1.0, these are no longer stored. When loading a 5.1.0 wallet
+ into an older version, it will automatically rescan to avoid failed checks.
+
Deprecated
----------
diff --git a/doc/release-notes/release-notes-5.2.0-rc1.md b/doc/release-notes/release-notes-5.2.0-rc1.md
new file mode 100644
index 000000000..e49669463
--- /dev/null
+++ b/doc/release-notes/release-notes-5.2.0-rc1.md
@@ -0,0 +1,200 @@
+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` the first time .
+
+- 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 (3):
+ 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.
+
+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 (15):
+ 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
+ make-release.py: Versioning changes for 5.2.0-rc1.
+ make-release.py: Updated manpages for 5.2.0-rc1.
+
+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
+
+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 (3):
+ 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
+
+Jack Grigg (2):
+ Improve bundlecache documentation
+ Minor fixes to documentation
+
+Zancas Wilcox (1):
+ match the actual two hyphen flag
+
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
+
diff --git a/qa/supply-chain/audits.toml b/qa/supply-chain/audits.toml
index 93083eb57..23037998c 100644
--- a/qa/supply-chain/audits.toml
+++ b/qa/supply-chain/audits.toml
@@ -13,6 +13,21 @@ criteria = ["crypto-reviewed", "safe-to-deploy"]
delta = "0.13.0 -> 0.13.1"
notes = "Adds multi-threaded batch validation, which I checked against the existing single-threaded batch validation."
+[[audits.cxx]]
+who = "Daira Hopwood "
+criteria = "safe-to-deploy"
+delta = "1.0.68 -> 1.0.72"
+
+[[audits.cxxbridge-flags]]
+who = "Daira Hopwood "
+criteria = "safe-to-deploy"
+delta = "1.0.68 -> 1.0.72"
+
+[[audits.cxxbridge-macro]]
+who = "Daira Hopwood "
+criteria = "safe-to-deploy"
+delta = "1.0.68 -> 1.0.72"
+
[[audits.equihash]]
who = "Jack Grigg "
criteria = "safe-to-deploy"
@@ -67,6 +82,21 @@ criteria = ["crypto-reviewed", "safe-to-deploy"]
delta = "0.1.0 -> 0.2.0"
notes = "The ECC core team maintains this crate, and we have reviewed every line."
+[[audits.proc-macro2]]
+who = "Daira Hopwood "
+criteria = "safe-to-deploy"
+delta = "1.0.37 -> 1.0.41"
+
+[[audits.syn]]
+who = "Daira Hopwood "
+criteria = "safe-to-deploy"
+delta = "1.0.91 -> 1.0.98"
+
+[[audits.unicode-ident]]
+who = "Daira Hopwood "
+criteria = "safe-to-deploy"
+version = "1.0.2"
+
[[audits.zcash_address]]
who = "Jack Grigg "
criteria = "safe-to-deploy"
diff --git a/qa/zcash/postponed-updates.txt b/qa/zcash/postponed-updates.txt
index b9667095d..7ea61b87e 100644
--- a/qa/zcash/postponed-updates.txt
+++ b/qa/zcash/postponed-updates.txt
@@ -4,13 +4,6 @@
# bdb 18.1.40 2020-09-01
#
-native_cxxbridge 1.0.69 2022-09-01
-native_cxxbridge 1.0.70 2022-09-01
-native_cxxbridge 1.0.71 2022-09-01
-rustcxx 1.0.69 2022-09-01
-rustcxx 1.0.70 2022-09-01
-rustcxx 1.0.71 2022-09-01
-
# Ccache 4.0 requires adding CMake to the depends system.
native_ccache 4.0 2022-09-01
native_ccache 4.1 2022-09-01
@@ -43,6 +36,7 @@ libcxx 14.0.6 2022-09-01
native_rust 1.60.0 2022-09-01
native_rust 1.61.0 2022-09-01
native_rust 1.62.0 2022-09-01
+native_rust 1.62.1 2022-09-01
# We're never updating to this version
bdb 18.1.40 2024-02-01
diff --git a/src/Makefile.am b/src/Makefile.am
index c5a66ee47..50bc11206 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -233,6 +233,7 @@ BITCOIN_CORE_H = \
consensus/validation.h \
core_io.h \
core_memusage.h \
+ cuckoocache.h \
deprecation.h \
experimental_features.h \
fs.h \
diff --git a/src/clientversion.h b/src/clientversion.h
index c1997d2d9..8e52e0e1a 100644
--- a/src/clientversion.h
+++ b/src/clientversion.h
@@ -16,7 +16,7 @@
//! 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 1
+#define CLIENT_VERSION_MINOR 2
#define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 50
diff --git a/src/deprecation.h b/src/deprecation.h
index 72d83414e..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 = 1730371;
+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.");
diff --git a/src/rust/src/sapling.rs b/src/rust/src/sapling.rs
index 9c25628fc..0ba8cdf4e 100644
--- a/src/rust/src/sapling.rs
+++ b/src/rust/src/sapling.rs
@@ -2,11 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or https://www.opensource.org/licenses/mit-license.php .
-// This is added because `check_spend` takes several arguments over FFI. This
-// annotation gets removed by the cxx procedural macro so it needs to be enabled
-// on the entire module.
-#![allow(clippy::too_many_arguments)]
-
use std::convert::TryInto;
use bellman::groth16::{prepare_verifying_key, Proof};
@@ -66,6 +61,7 @@ mod ffi {
type Verifier;
fn init_verifier() -> Box;
+ #[allow(clippy::too_many_arguments)]
fn check_spend(
self: &mut Verifier,
cv: &[u8; 32],
@@ -226,6 +222,7 @@ fn init_verifier() -> Box {
}
impl Verifier {
+ #[allow(clippy::too_many_arguments)]
fn check_spend(
&mut self,
cv: &[u8; 32],