diff --git a/README.md b/README.md
index 6c03aec85..59f7aa509 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Zcash 4.0.0-rc1
+Zcash 4.0.0
===========
diff --git a/configure.ac b/configure.ac
index 352b9d486..b25c75956 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 4)
define(_CLIENT_VERSION_MINOR, 0)
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 506967ea3..adff3fe11 100644
--- a/contrib/debian/changelog
+++ b/contrib/debian/changelog
@@ -1,3 +1,9 @@
+zcash (4.0.0) stable; urgency=medium
+
+ * 4.0.0 release.
+
+ -- Electric Coin Company Tue, 01 Sep 2020 13:31:19 -0600
+
zcash (4.0.0~rc1) stable; urgency=medium
* 4.0.0-rc1 release.
diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml
index f2838f546..917d2f4ba 100644
--- a/contrib/gitian-descriptors/gitian-linux.yml
+++ b/contrib/gitian-descriptors/gitian-linux.yml
@@ -1,5 +1,5 @@
---
-name: "zcash-4.0.0-rc1"
+name: "zcash-4.0.0"
enable_cache: true
distro: "debian"
suites:
diff --git a/doc/authors.md b/doc/authors.md
index 974b8d70c..5683071d4 100644
--- a/doc/authors.md
+++ b/doc/authors.md
@@ -1,48 +1,51 @@
Zcash Contributors
==================
-Jack Grigg (1048)
+Jack Grigg (1050)
Simon Liu (460)
-Sean Bowe (348)
+Sean Bowe (361)
Eirik Ogilvie-Wigley (216)
-Daira Hopwood (207)
-Taylor Hornby (104)
+Daira Hopwood (214)
+Taylor Hornby (109)
+Alfredo Garcia (102)
Marshall Gaucher (100)
Wladimir J. van der Laan (99)
-Alfredo Garcia (99)
Jay Graber (89)
Jonas Schnelli (71)
-Pieter Wuille (66)
+Kris Nuttycombe (69)
+Pieter Wuille (67)
Nathan Wilcox (56)
-Kris Nuttycombe (56)
-Larry Ruane (50)
-Cory Fields (41)
+Cory Fields (55)
+Larry Ruane (52)
+Ying Tong Lai (43)
Kevin Gallagher (38)
-therealyingtong (36)
Marco Falke (31)
Matt Corallo (25)
-Dimitris Apostolou (22)
+Dimitris Apostolou (23)
Jonathan "Duke" Leto (18)
+fanquake (16)
Luke Dashjr (16)
syd (15)
avnish (14)
+Per Grön (14)
Jorge Timón (14)
Gregory Maxwell (12)
+Ariel Gabizon (12)
Paige Peterson (11)
-Ariel Gabizon (11)
+Benjamin Winston (11)
+Carl Dong (10)
practicalswift (9)
nomnombtc (9)
-Benjamin Winston (9)
kozyilmaz (8)
-fanquake (8)
Peter Todd (8)
+Charlie O'Keefe (8)
Pavel Janík (7)
Jeff Garzik (7)
-Charlie O'Keefe (7)
Marius Kjærstad (6)
Karl-Johan Alm (6)
David Mercer (6)
Daniel Cousens (6)
+ying tong (5)
ca333 (5)
Suhas Daftuar (5)
Philip Kaufmann (5)
@@ -54,15 +57,15 @@ Gareth Davies (5)
Alex Morcos (5)
sandakersmann (4)
gladcow (4)
+Zancas Wilcox (4)
WO (4)
João Barbosa (4)
Jeremy Rubin (4)
James O'Beirne (4)
Daniel Kraft (4)
Ben Wilson (4)
-zancas (3)
lpescher (3)
-Per Grön (3)
+elbandi (3)
Patick Strateman (3)
NikVolf (3)
MeshCollider (3)
@@ -71,6 +74,7 @@ Jason Davies (3)
Danny Willems (3)
Alfie John (3)
rofl0r (2)
+noname45688@gmail.com (2)
mruddy (2)
kpcyrd (2)
face (2)
@@ -92,7 +96,6 @@ ITH4Coinomia (2)
Evan Klitzke (2)
Dagur Valberg Johannsson (2)
Casey Rodarmor (2)
-Carl Dong (2)
Bryant Eisenbach (2)
Brad Miller (2)
Bjorn Hjortsberg (2)
@@ -100,9 +103,9 @@ Anthony Towns (2)
Amgad Abdelhafez (2)
Alex Tsankov (2)
zathras-crypto (1)
-ying tong (1)
unsystemizer (1)
tpantin (1)
+teor (1)
ptschip (1)
murrayn (1)
mrbandrews (1)
@@ -147,6 +150,7 @@ Maxwell Gubler (1)
Matt Quinn (1)
Mark Friedenbach (1)
Louis Nyffenegger (1)
+LongShao007 (1)
LitecoinZ (1)
Leo Arias (1)
Lauda (1)
@@ -178,6 +182,7 @@ Bob McElrath (1)
Bitcoin Error Log (1)
Ben Woosley (1)
Ashley Holman (1)
+Andrew Chow (1)
Allan Niemerg (1)
Alex van der Peet (1)
Alex (1)
diff --git a/doc/man/zcash-cli.1 b/doc/man/zcash-cli.1
index 6fcd1c1dc..dd12c2ff6 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.16.
-.TH ZCASH-CLI "1" "August 2020" "zcash-cli v4.0.0-rc1" "User Commands"
+.TH ZCASH-CLI "1" "September 2020" "zcash-cli v4.0.0" "User Commands"
.SH NAME
-zcash-cli \- manual page for zcash-cli v4.0.0-rc1
+zcash-cli \- manual page for zcash-cli v4.0.0
.SH DESCRIPTION
-Zcash RPC client version v4.0.0\-rc1
+Zcash RPC client version v4.0.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 a3e869b55..381645985 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.16.
-.TH ZCASH-TX "1" "August 2020" "zcash-tx v4.0.0-rc1" "User Commands"
+.TH ZCASH-TX "1" "September 2020" "zcash-tx v4.0.0" "User Commands"
.SH NAME
-zcash-tx \- manual page for zcash-tx v4.0.0-rc1
+zcash-tx \- manual page for zcash-tx v4.0.0
.SH DESCRIPTION
-Zcash zcash\-tx utility version v4.0.0\-rc1
+Zcash zcash\-tx utility version v4.0.0
.SS "Usage:"
.TP
zcash\-tx [options] [commands]
diff --git a/doc/man/zcashd.1 b/doc/man/zcashd.1
index 7e3a67ae4..a5a209d7a 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.16.
-.TH ZCASHD "1" "August 2020" "zcashd v4.0.0-rc1" "User Commands"
+.TH ZCASHD "1" "September 2020" "zcashd v4.0.0" "User Commands"
.SH NAME
-zcashd \- manual page for zcashd v4.0.0-rc1
+zcashd \- manual page for zcashd v4.0.0
.SH DESCRIPTION
-Zcash Daemon version v4.0.0\-rc1
+Zcash Daemon version v4.0.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 157948496..a29094b51 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -4,59 +4,3 @@ release-notes at release time)
Notable changes
===============
-The mainnet activation of the Canopy network upgrade is supported by the 4.0.0
-release, with an activation height of 1046400, which should occur roughly in the
-middle of November — following the targeted EOS halt of our 3.1.0 release.
-Please upgrade to this release, or any subsequent release, in order to follow
-the Canopy network upgrade.
-
-The following ZIPs are being deployed as part of this upgrade:
-
-* [ZIP 207: Funding Streams](https://zips.z.cash/zip-0207) in conjunction with [ZIP 214: Consensus rules for a Zcash Development Fund](https://zips.z.cash/zip-0214)
-* [ZIP 211: Disabling Addition of New Value to the Sprout Value Pool](https://zips.z.cash/zip-0211)
-* [ZIP 212: Allow Recipient to Derive Sapling Ephemeral Secret from Note Plaintext](https://zips.z.cash/zip-0212)
-* [ZIP 215: Explicitly Defining and Modifying Ed25519 Validation Rules](https://zips.z.cash/zip-0215)
-
-In order to help the ecosystem prepare for the mainnet activiation, Canopy has
-already been activated on the Zcash testnet. Any node version 3.1.0 or higher,
-including this release, supports the Canopy activation on testnet.
-
-Disabling new value in the Sprout value pool
---------------------------------------------
-
-After the mainnet activation of Canopy, it will not be possible to send funds to
-Sprout z-addresses from any _other_ kind of address, as described in [ZIP 211](https://zips.z.cash/zip-0211).
-It will still be possible to send funds _from_ a Sprout z-address and to send
-funds between Sprout addresses. Users of Sprout z-addresses are encouraged to
-use Sapling z-addresses instead, and to migrate their remaining Sprout funds
-into a Sapling z-address using the migration utility in zcashd: set `migrate=1`
-in your `zcash.conf` file, or use the `z_setmigration` RPC.
-
-New logging system
-------------------
-
-The `zcashd` logging system is now powered by the Rust `tracing` crate. This
-has two main benefits:
-
-- `tracing` supports the concept of "spans", which represent periods of time
- with a beginning and end. These enable logging additional information about
- temporality and causality of events. (Regular log lines, which represent
- moments in time, are called `events` in `tracing`.)
-- Spans and events are structured, and can record typed data in addition to text
- messages. This structure can then be filtered dynamically.
-
-The existing `-debug=target` config flags are mapped to `tracing` log filters,
-and will continue to correctly enable additional logging when starting `zcashd`.
-A new `setlogfilter` RPC method has been introduced that enables reconfiguring
-the log filter at runtime. See `zcash-cli help setlogfilter` for its syntax.
-
-As a minor note, `zcashd` no longer reopens the `debug.log` file on `SIGHUP`.
-This behaviour was originally introduced in upstream Bitcoin Core to support log
-rotation using external tools. `tracing` supports log rotation internally (which
-is currently disabled), as well as a variety of interesting backends (such as
-`journald` and OpenTelemetry integration); we are investigating how these might
-be exposed in future releases.
-
-Compatibility
--------------
-macOS versions earlier than 10.12 (Sierra) are no longer supported.
diff --git a/doc/release-notes/release-notes-4.0.0.md b/doc/release-notes/release-notes-4.0.0.md
new file mode 100644
index 000000000..5870bd251
--- /dev/null
+++ b/doc/release-notes/release-notes-4.0.0.md
@@ -0,0 +1,290 @@
+Notable changes
+===============
+
+The mainnet activation of the Canopy network upgrade is supported by the 4.0.0
+release, with an activation height of 1046400, which should occur roughly in the
+middle of November — following the targeted EOS halt of our 3.1.0 release.
+Please upgrade to this release, or any subsequent release, in order to follow
+the Canopy network upgrade.
+
+The following ZIPs are being deployed as part of this upgrade:
+
+* [ZIP 207: Funding Streams](https://zips.z.cash/zip-0207) in conjunction with [ZIP 214: Consensus rules for a Zcash Development Fund](https://zips.z.cash/zip-0214)
+* [ZIP 211: Disabling Addition of New Value to the Sprout Value Pool](https://zips.z.cash/zip-0211)
+* [ZIP 212: Allow Recipient to Derive Sapling Ephemeral Secret from Note Plaintext](https://zips.z.cash/zip-0212)
+* [ZIP 215: Explicitly Defining and Modifying Ed25519 Validation Rules](https://zips.z.cash/zip-0215)
+
+In order to help the ecosystem prepare for the mainnet activiation, Canopy has
+already been activated on the Zcash testnet. Any node version 3.1.0 or higher,
+including this release, supports the Canopy activation on testnet.
+
+Disabling new value in the Sprout value pool
+--------------------------------------------
+
+After the mainnet activation of Canopy, it will not be possible to send funds to
+Sprout z-addresses from any _other_ kind of address, as described in [ZIP 211](https://zips.z.cash/zip-0211).
+It will still be possible to send funds _from_ a Sprout z-address and to send
+funds between Sprout addresses. Users of Sprout z-addresses are encouraged to
+use Sapling z-addresses instead, and to migrate their remaining Sprout funds
+into a Sapling z-address using the migration utility in zcashd: set `migrate=1`
+in your `zcash.conf` file, or use the `z_setmigration` RPC.
+
+New logging system
+------------------
+
+The `zcashd` logging system is now powered by the Rust `tracing` crate. This
+has two main benefits:
+
+- `tracing` supports the concept of "spans", which represent periods of time
+ with a beginning and end. These enable logging additional information about
+ temporality and causality of events. (Regular log lines, which represent
+ moments in time, are called `events` in `tracing`.)
+- Spans and events are structured, and can record typed data in addition to text
+ messages. This structure can then be filtered dynamically.
+
+The existing `-debug=target` config flags are mapped to `tracing` log filters,
+and will continue to correctly enable additional logging when starting `zcashd`.
+A new `setlogfilter` RPC method has been introduced that enables reconfiguring
+the log filter at runtime. See `zcash-cli help setlogfilter` for its syntax.
+
+As a minor note, `zcashd` no longer reopens the `debug.log` file on `SIGHUP`.
+This behaviour was originally introduced in upstream Bitcoin Core to support log
+rotation using external tools. `tracing` supports log rotation internally (which
+is currently disabled), as well as a variety of interesting backends (such as
+`journald` and OpenTelemetry integration); we are investigating how these might
+be exposed in future releases.
+
+Compatibility
+-------------
+macOS versions earlier than 10.12 (Sierra) are no longer supported.
+
+Changelog
+=========
+
+Alfredo Garcia (3):
+ only allow duplicates for certain options of the config
+ install bdb binaries
+ add more allowed duplicates
+
+Andrew Chow (1):
+ Fix naming of macOS SDK and clarify version
+
+Carl Dong (8):
+ contrib: macdeploy: Correctly generate macOS SDK
+ Adapt rest of tooling to new SDK naming scheme
+ native_cctools: Don't use libc++ from pinned clang
+ contrib: macdeploy: Use apple-sdk-tools instead of xar+pbzx
+ contrib: macdeploy: Remove historical extraction notes
+ depends: Decouple toolchain + binutils
+ depends: Specify path to native binaries as clang argument
+ depends: Add justifications for macOS clang flags
+
+Charlie O'Keefe (1):
+ Remove 'jessie' (debian 8) from suites list in linux gitian descriptors
+
+Cory Fields (14):
+ crypto: add AES 128/256 CBC classes
+ crypto: add aes cbc tests
+ crypter: fix the stored initialization vector size
+ crypter: constify encrypt/decrypt
+ crypter: hook up the new aes cbc classes
+ crypter: add a BytesToKey clone to replace the use of openssl
+ crypter: add tests for crypter
+ build: Enumerate ctaes rather than globbing
+ depends: bump MacOS toolchain
+ macos: Bump to xcode 11.3.1 and 10.15 SDK
+ darwin: pass mlinker-version so that clang enables new features
+ depends: specify libc++ header location for darwin
+ depends: enable lto support for Apple's ld64
+ depends: bump native_cctools for fixed lto with external clang
+
+Daira Hopwood (7):
+ zcutil/distclean.sh: remove BDB utility programs.
+ Update .gitignore.
+ Fix a return status issue.
+ Update Makefile.am
+ Newer version of checksec.sh from https://github.com/slimm609/checksec.sh/commit/a6df608ac077689b2160e521db6601abc7b9e26e
+ Repair full_test_suite.py for new checksec.sh.
+ Clarify a comment about the ZF and MG addresses
+
+Dimitris Apostolou (1):
+ Remove deprecated contrib utilities
+
+Jack Grigg (65):
+ Move GrothProof and SproutProof definitions into zcash/Proof.hpp
+ Remove unused declarations left over from libsnark verification
+ Make ZCJoinSplit::prove static and remove ZCJoinSplit globals
+ Move ProofVerifier out of the libzcash namespace
+ Move JSDescription::Verify to ProofVerifier::VerifySprout
+ Skip Sprout proof verification for ProofVerifier::Disabled
+ Send alert to put pre-Heartwood nodes into safe mode.
+ Squashed 'src/crypto/ctaes/' content from commit 003a4acfc
+ build: shuffle gtest Makefile so that crypto can be used by the wallet
+ metrics: Collect general stats before clearing screen
+ Debian: Add copyright entries for ctaes and secp256k1
+ Revert "Rename FALLBACK_DOWNLOAD_PATH to PRIORITY_DOWNLOAD_PATH"
+ Revert "Try downloading from our mirror first to avoid headaches."
+ depends: Use FALLBACK_DOWNLOAD_PATH if the primary's hash doesn't match
+ test: Remove obsolete TransactionBuilder test
+ Add tracing to librustzcash dependencies
+ FFI wrapper around tracing crate
+ Replace C++ logging with tracing logging
+ Use a tracing EnvFilter directive for -debug flags
+ Add support for reloading the tracing filter
+ Add an RPC method for setting the tracing filter directives
+ Add support for tracing spans
+ Add some spans to the Zcash codebase
+ FFI: Extract common codeunit types into a rust/types.h header
+ tracing: Use 'static constexpr' hack in macros
+ wallet: Fix logging to satisfy constexpr requirements
+ FFI: Add missing includes
+ init: Place additional constraints on pathDebug
+ rpc: Throw error in setlogfilter if filter reloading fails
+ tracing: Log field values that aren't valid UTF-8
+ tracing: Document macro arguments that MUST be static constant UTF-8 strings
+ doc: Update release notes for tracing backend
+ qa: Add tracing dependencies to updatecheck.py
+ depends: tracing-core 0.1.13
+ Revert "Add check-depends step to STAGE_COMMANDS list"
+ contrib: Update macdeploy README
+ depends: Rework Rust integration
+ depends: Add platform-specific overrides for download files
+ depends: Split check-packages and check-sources across categories
+ FFI: Fix tracing log path handling on Windows
+ tracing: Add MAP macro
+ tracing: Add support for event fields
+ tracing: Add support for span fields
+ tracing: Format field values with Display
+ Add fields to logging in CNode and UpdateTip
+ util: Use DEBUG level for LogPrint(), leaving INFO for LogPrintf()
+ tracing: Parse log_path into an Option
+ tracing: Rework tracing_init into a single function
+ init: Rework tracing_init call
+ init: Add spans for initialization and shutdown
+ Replace libsodium's randombytes_buf with rand_core::OsRng::fill_bytes
+ consensus: Add assertions for Params::HalvingHeight parameters
+ consensus: Document the empty conditional branch in ContextualCheckBlock
+ consensus: Statically check funding stream numerators and denominators
+ consensus: Clearly gate active funding stream elements on Canopy
+ Replace libsodium's crypto_sign with ed25519-zebra
+ ed25519: Panic (triggering abort) if nullptr passed into APIs
+ test: Update ZIP 215 test cases from ed25519-zebra
+ depends: Migrate to zcash_* 0.3.0 Rust crates
+ FFI: Remove circuit parameter hashes from librustzcash_init_zksnark_params
+ FFI: Migrate to bls12_381 and jubjub crates
+ depends: cargo update
+ qa: Update list of postponed crate versions
+ FFI: Rename to librustzcash_sapling_compute_cmu
+ FFI: Rename r to rcm
+
+Kris Nuttycombe (13):
+ Remove amqp code and Proton library depenencies & flags.
+ Remove Proton license from contrib/debian/copyright
+ consensus: Clean up some whitespace and variable names
+ consensus: Refactor Sprout contextual rules to match the rest
+ consensus: Remove canopyActive gate around GetActiveFundingStreamElements
+ consensus: Combine heartwoodActive conditionals
+ consensus: Add a placeholder for !canopyActive
+ consensus: Move overwinterActive rules ahead of saplingActive rules
+ consensus: Combine saplingActive conditionals
+ consensus: Move Sapling-disabled Overwinter rules above Sapling rules
+ consensus: Reorder Overwinter+!Sapling rules
+ consensus: Remove redundant contextual consensus rules
+ Add comment in lieu of redundant overwinter version check & fix tests.
+
+Larry Ruane (2):
+ flush wallet db (SetBestChain()) on clean shutdown
+ wallet: lock cs_main while accessing chainActive
+
+LongShao007 (1):
+ fix bug of bdb.mk
+
+Per Grön (11):
+ Get rid of implicit hidden dependencies between test .cpp files
+ Add missing #includes to test_block.cpp
+ Add actual header file for utilities in gtest/utils.cpp
+ Fix linkage issue with consts in primitives/block.h
+ Remove Checkpoints_tests.cpp
+ libsnark: Don't (implicitly) rely on other tests initializing the public params
+ Add missing libsnark initialization call
+ Don't clobber cwd in rpc_wallet_tests.cpp
+ Include header files within the source tree using "" instead of <>
+ Be consistent about what path to include bitcoin-config.h with
+ Be consistent with how to #include test data headers
+
+Pieter Wuille (1):
+ Add ctaes-based constant time AES implementation
+
+Sean Bowe (13):
+ Postpone boost 1.74.0 update
+ Postpone rust updates
+ make-release.py: Versioning changes for 4.0.0-rc1.
+ make-release.py: Updated manpages for 4.0.0-rc1.
+ make-release.py: Updated release notes and changelog for 4.0.0-rc1.
+ Add release notes to describe the Canopy network upgrade.
+ Update names of contributors in release notes.
+ Specify 4.0.0 in release notes
+ Add dev fund addresses for mainnet.
+ Set activation height for Canopy on mainnet.
+ Postpone updates for dependencies until after 4.0.0 release.
+ make-release.py: Versioning changes for 4.0.0.
+ make-release.py: Updated manpages for 4.0.0.
+
+Taylor Hornby (5):
+ Implement system for postponing dependency updates.
+ Change release instructions to block the release when dependencies are not updated and not postponed.
+ Enforce pre-release dependency update check in make-release.py
+ Extend deadline for postponing dependency updates
+ Add new dependencies to updatecheck.py, add a flag we can use to have our CI test it.
+
+Ariel Gabizon (1):
+ explain expiry error
+
+Benjamin Winston (2):
+ Added support for afl-clang-fast.
+ Added libfuzzer support.
+
+elbandi (3):
+ Allow configure params directory
+ Add paramsdir option for manpage
+ Throw error if -paramsdir not a valid directory
+
+fanquake (8):
+ depends: set OSX_MIN_VERSION to 10.10
+ doc: mention that macOS 10.10 is now required
+ scripted-diff: prefer MAC_OSX over `__APPLE__`
+ build: set minimum supported macOS to 10.12
+ depends: clang 6.0.1
+ depends: native_cctools 921, ld64 409.12, libtapi 1000.10.8
+ build: use macOS 10.14 SDK
+ doc: explain why passing -mlinker-version is required
+
+noname45688@gmail.com (2):
+ Updating to Python 3
+ Update to Python 3
+
+Jack Grigg (2):
+ debian: Rename X11 to Expat-with-advertising-clause in copyright
+ Adjust GetActiveFundingStream* comments
+
+teor (1):
+ Fix a comment typo in pow.cpp
+
+Ying Tong Lai (7):
+ Add Debian8 deprecation to release notes
+ Add missing curly braces after if statement
+ Add test for garbage memory in history nodes
+ Add documentation specific to ZIP 212
+ Move esk derivation check to beginning of plaintext_checks_without_height()
+ Define PRF diversifiers in prf.h
+ assert(leadbyte == 0x02) after every if(leadbyte != 0x01)
+
+ying tong (4):
+ Update doc/release-notes/release-notes-3.1.0.md
+ Make sure garbage bytes are different
+ Rename PRV_DIVERSIFIER to PRF_TAG
+ Add link to ZIP212 in coinbase comment
+
+Zancas Wilcox (1):
+ make deprecation.h include consensus/params.h
+
diff --git a/qa/zcash/postponed-updates.txt b/qa/zcash/postponed-updates.txt
index f9a6f8683..befd3659a 100644
--- a/qa/zcash/postponed-updates.txt
+++ b/qa/zcash/postponed-updates.txt
@@ -50,6 +50,7 @@ native_rust 1.44.1 2020-10-01
native_rust 1.45.0 2020-10-01
native_rust 1.45.1 2020-10-01
native_rust 1.45.2 2020-10-01
+native_rust 1.46.0 2020-10-01
zeromq 4.3.2 2020-10-01
leveldb 1.19 2020-10-01
leveldb 1.20 2020-10-01
@@ -68,6 +69,10 @@ crate_aesni 0.9.0 2020-11-01
crate_crunchy 0.2.1 2020-11-01
crate_crunchy 0.2.2 2020-11-01
+# These are being deferred until after 4.0.0 to avoid blocking the release.
+crate_time 0.1.44 2020-10-01
+crate_redox_users 0.3.5 2020-10-01
+
# The chrono crate depends on "time ^0.1.43", and is highly unlikely to
# upgrade to v0.2: https://github.com/chronotope/chrono/issues/400
crate_time 0.2.0 2021-02-01
@@ -103,11 +108,14 @@ crate_futures 0.3.5 2021-02-01
# The redox_users crate depends on:
# - "redox_syscall ^0.1"
# - "rust-argon2 ^0.7", which in turn depends on "base64 ^0.11"
+#
+# redox_users 0.3.5 depends on rust-argon2 ^0.8 which will address some of this.
crate_base64 0.12.0 2020-11-01
crate_base64 0.12.1 2020-11-01
crate_base64 0.12.2 2020-11-01
crate_base64 0.12.3 2020-11-01
crate_redox_syscall 0.2.0 2020-11-01
+crate_redox_syscall 0.2.1 2020-11-01
crate_rust_argon2 0.8.0 2020-11-01
crate_rust_argon2 0.8.1 2020-11-01
crate_rust_argon2 0.8.2 2020-11-01
diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index 56ac2aaeb..3aae1183d 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -123,8 +123,7 @@ public:
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nProtocolVersion = 170011;
consensus.vUpgrades[Consensus::UPGRADE_HEARTWOOD].nActivationHeight = 903000;
consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nProtocolVersion = 170013;
- consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight =
- Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT;
+ consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight = 1046400;
consensus.nFundingPeriodLength = consensus.nPostBlossomSubsidyHalvingInterval / 48;
@@ -150,8 +149,7 @@ public:
keyConstants.bech32HRPs[SAPLING_EXTENDED_SPEND_KEY] = "secret-extended-key-main";
keyConstants.bech32HRPs[SAPLING_EXTENDED_FVK] = "zxviews";
- // TODO: This `if` can be removed once canopy activation height is set.
- if (consensus.vUpgrades[Consensus::UPGRADE_CANOPY].nActivationHeight != Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT) {
+ {
std::vector ecc_addresses = {
"t3LmX1cxWPPPqL4TZHx42HU3U5ghbFjRiif",
"t3Toxk1vJQ6UjWQ42tUJz2rV2feUWkpbTDs",
diff --git a/src/clientversion.h b/src/clientversion.h
index a3fd50e77..9cee57fde 100644
--- a/src/clientversion.h
+++ b/src/clientversion.h
@@ -18,7 +18,7 @@
#define CLIENT_VERSION_MAJOR 4
#define CLIENT_VERSION_MINOR 0
#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 8e8c0dd3f..52203fcea 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 = 950238;
+static const int APPROX_RELEASE_HEIGHT = 957287;
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/version.h b/src/version.h
index 60807beee..f8376bfb8 100644
--- a/src/version.h
+++ b/src/version.h
@@ -9,7 +9,7 @@
* network protocol versioning
*/
-static const int PROTOCOL_VERSION = 170012;
+static const int PROTOCOL_VERSION = 170013;
//! initial proto version, to be increased after version/verack negotiation
static const int INIT_PROTO_VERSION = 209;