Auto merge of #4998 - str4d:release-v4.3.0-rc1, r=str4d

Release v4.3.0-rc1
This commit is contained in:
Homu 2021-02-20 00:52:04 +00:00
commit fd9bf43c3d
10 changed files with 361 additions and 28 deletions

View File

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

View File

@ -1,9 +1,9 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 4)
define(_CLIENT_VERSION_MINOR, 2)
define(_CLIENT_VERSION_MINOR, 3)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 50)
define(_CLIENT_VERSION_BUILD, 25)
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 (4.3.0~rc1) stable; urgency=medium
* 4.3.0-rc1 release.
-- Electric Coin Company <team@electriccoin.co> Fri, 19 Feb 2021 22:05:06 +0000
zcash (4.2.0) stable; urgency=medium
* 4.2.0 release.

View File

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

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH ZCASH-CLI "1" "December 2020" "zcash-cli v4.2.0" "User Commands"
.TH ZCASH-CLI "1" "February 2021" "zcash-cli v4.3.0-rc1" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v4.2.0
zcash-cli \- manual page for zcash-cli v4.3.0-rc1
.SH DESCRIPTION
Zcash RPC client version v4.2.0
Zcash RPC client version v4.3.0\-rc1
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@ -30,6 +30,13 @@ Specify configuration file (default: zcash.conf)
\fB\-datadir=\fR<dir>
.IP
Specify data directory
.HP
\fB\-stdin\fR
.IP
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases). If first
extra argument is `walletpassphrase` then the first line(password) will
not be echoed.
.PP
Chain selection options:
.HP
@ -67,18 +74,13 @@ Password for JSON\-RPC connections
.IP
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
900)
.HP
\fB\-stdin\fR
.IP
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases)
.SH COPYRIGHT
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
Copyright (C) 2009-2020 The Bitcoin Core Developers
Copyright (C) 2015-2020 The Zcash Developers
Copyright (C) 2009-2021 The Bitcoin Core Developers
Copyright (C) 2015-2021 The Zcash Developers
This is experimental software.

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH ZCASH-TX "1" "December 2020" "zcash-tx v4.2.0" "User Commands"
.TH ZCASH-TX "1" "February 2021" "zcash-tx v4.3.0-rc1" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v4.2.0
zcash-tx \- manual page for zcash-tx v4.3.0-rc1
.SH DESCRIPTION
Zcash zcash\-tx utility version v4.2.0
Zcash zcash\-tx utility version v4.3.0\-rc1
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]
@ -91,8 +91,8 @@ Set register NAME to given JSON\-STRING
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
Copyright (C) 2009-2020 The Bitcoin Core Developers
Copyright (C) 2015-2020 The Zcash Developers
Copyright (C) 2009-2021 The Bitcoin Core Developers
Copyright (C) 2015-2021 The Zcash Developers
This is experimental software.

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH ZCASHD "1" "December 2020" "zcashd v4.2.0" "User Commands"
.TH ZCASHD "1" "February 2021" "zcashd v4.3.0-rc1" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v4.2.0
zcashd \- manual page for zcashd v4.3.0-rc1
.SH DESCRIPTION
Zcash Daemon version v4.2.0
Zcash Daemon version v4.3.0\-rc1
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@ -84,7 +84,7 @@ Keep at most <n> unconnectable transactions in memory (default: 100)
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
Set the number of script verification threads (\fB\-6\fR to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
@ -255,6 +255,11 @@ Whitelist peers connecting from the given netmask or IP address. Can be
specified multiple times. Whitelisted peers cannot be DoS banned and
their transactions are always relayed, even if they are already in the
mempool, useful e.g. for a gateway
.HP
\fB\-maxuploadtarget=\fR<n>
.IP
Tries to keep outbound traffic under the given target (in MiB per 24h),
0 = no limit (default: 0)
.PP
Wallet options:
.HP
@ -518,8 +523,8 @@ console, 600 otherwise)
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
Copyright (C) 2009-2020 The Bitcoin Core Developers
Copyright (C) 2015-2020 The Zcash Developers
Copyright (C) 2009-2021 The Bitcoin Core Developers
Copyright (C) 2015-2021 The Zcash Developers
This is experimental software.

View File

@ -0,0 +1,320 @@
Notable changes
===============
Reduce download traffic
-----------------------
We have made several changes to reduce the amount of data downloaded by `zcashd`
during initial block download (IBD):
- Significant time and bandwidth is spent in issuing `getheaders` P2P requests.
This results in noticeable bandwidth usage due to the large size of Zcash
block headers.
We now eliminate redundant requests in cases where we already know the last
header in the message. This optimization is enabled by default, but can be
disabled by setting the config option `-no-optimize-getheaders`.
- Transactions in the mempool are no longer downloaded during IBD (`zcashd` will
only request block data).
Reduce upload traffic
---------------------
A major part of the outbound traffic is caused by serving historic blocks to
other nodes in initial block download state.
It is now possible to reduce the total upload traffic via the `-maxuploadtarget`
parameter. This is *not* a hard limit but a threshold to minimize the outbound
traffic. When the limit is about to be reached, the uploaded data is cut by not
serving historic blocks (blocks older than one week).
Moreover, any SPV peer is disconnected when they request a filtered block.
This option can be specified in MiB per day and is turned off by default
(`-maxuploadtarget=0`).
The recommended minimum is 1152 * MAX_BLOCK_SIZE (currently 2304MB) per day.
Whitelisted peers will never be disconnected, although their traffic counts for
calculating the target.
A more detailed documentation about keeping traffic low can be found in
[/doc/reduce-traffic.md](/doc/reduce-traffic.md).
`libzcashconsensus` replaced by `libzcash_script`
-------------------------------------------------
The `libzcashconsensus` library inherited from upstream has been unusable since
the Overwinter network upgrade in 2018. We made changes to signature digests
similar to those made in Bitcoin's SegWit, which required additional per-input
data that could not be added to the existing APIs without breaking backwards
compatibility.
Additionally, it has become increasingly inaccurately named; it only covers
(Zcash's subset of) the Bitcoin scripting system, and not the myriad of other
consensus changes: in particular, Zcash's shielded pools.
We have now renamed the library to `libzcash_script`, and reworked it to instead
focus on transparent script verification:
- The script verification APIs are altered to take `consensusBranchId` and
`amount` fields.
- New precomputing APIs have been added that enable multiple transparent inputs
on a single transaction to be verified more efficiently.
- Equihash has been removed from the compiled library. The canonical Equihash
validator is the [`equihash` Rust crate](https://crates.io/crates/equihash)
since v3.1.0.
The C++ library can be built by compiling `zcashd` with the environment variable
`CONFIGURE_FLAGS=--with-libs`. It is also wrapped as the
[`zcash_script` Rust crate](https://crates.io/crates/zcash_script)
(maintained by the Zcash Foundation for use in `zebrad`).
Other P2P Changes
-----------------
The list of banned peers is now stored on disk rather than in memory. Restarting
`zcashd` will no longer clear out the list of banned peers; instead the
`clearbanned` RPC call can be used to manually clear the list. The `setban` RPC
call can also be used to manually ban or unban a peer.
Build system updates
--------------------
- We now build with Clang 11 and Rust 1.49.
- We have downgraded Boost to 1.74 to mitigate `statx`-related breakage in some
container environments.
Changelog
=========
Alex Wied (3):
Add support for FreeBSD 12
Set rust_target for all FreeBSD versions
Use parentheses for defined in windows-unused-variables.diff
Alfredo Garcia (3):
split wallet.py tests
hide password in -stdin `walletpassphrase` command
Apply suggestions from code review
Bernhard M. Wiedemann (1):
Make tests pass after 2020
BtcDrak (1):
Remove bad chain alert partition check
Carl Dong (13):
build: Add variable printing target to Makefiles
depends: Propagate well-known vars into depends
depends: boost: Specify toolset to bootstrap.sh
depends: boost: Split target-os from toolset
depends: boost: Use clang toolset if clang in CXX
depends: Propagate only specific CLI variables to sub-makes
depends: boost: Refer to version in URL
depends: boost: Split into non-/native packages
depends: boost: Disable all compression
depends: boost: Cleanup architecture/address-model
depends: boost: Cleanup toolset selection
depends: boost: Remove unnecessary _archiver_
depends: boost: Specify cflags+compileflags
Casey Rodarmor (3):
Make limited map actually respect max size
Disallow unlimited limited maps
Add limitedmap test
Cory Fields (6):
depends: fix boost mac cross build with clang 9+
build: add missing leveldb defines
net: make Ban/Unban/ClearBan functionality consistent
net: No need to export DumpBanlist
net: move CBanDB and CAddrDB out of net.h/cpp
net: Drop CNodeRef for AttemptToEvictConnection
Daira Hopwood (2):
qa/zcash/updatecheck.py: remove dead code; print instructions to run `cargo outdated` and `cargo update`.
Ensure that `CONFIGURE_FLAGS=--enable-debug` correctly uses -O0 for dependencies and main build.
Daniel Kraft (1):
doc: add comment explaining initial header request
Dimitris Apostolou (1):
Discord invite instead of direct link
Ethan Heilman (1):
Fix de-serialization bug where AddrMan is corrupted after exception * CAddrDB modified so that when de-serialization code throws an exception Addrman is reset to a clean state * CAddrDB modified to make unit tests possible * Regression test created to ensure bug is fixed * StartNode modifed to clear adrman if CAddrDB::Read returns an error code.
Gregory Maxwell (2):
Return early in IsBanned.
Disconnect on mempool requests from peers when over the upload limit.
Igor Cota (1):
Define TARGET_OS when host is android
Jack Grigg (41):
Add JSDescriptionInfo for constructing JSDescriptions
Remove JSDescription::h_sig
prevector: Terminate without logging on failed allocation
Remove init_and_check_sodium from crypto/common.h
Store inputs and outputs by reference in JSDescriptionInfo
depends: Update Rust to 1.49.0
rust: Use renamed broken_intra_doc_links lint
depends: cargo update
depends: Move to Clang 11
depends: Fix Boost warnings under Clang 11
depends: Allow per-host package download paths
depends: Ensure the native_clang download path is for the builder
Revert "Update boost to 1.75, postpone other updates."
qa: Postpone Boost and native_b2 updates
QA: Remove unused update postponements
QA: Postpone BDB update again
depends: ZeroMQ 4.3.4
depends: Postpone updates that require adding CMake
cargo update
Squashed 'src/univalue/' changes from 9ef5b78c1..98fadc090
Remove crypto/equihash from libzcashconsensus
Add amount and consensus branch ID to zcashconsensus_verify_script
Rename src/script/zcashconsensus.* -> src/script/zcash_script.*
Rename zcashconsensus_* -> zcash_script_* in APIs
Rename libzcashconsensus.la -> libzcash_script.la
Set up an mdbook in which we can document zcashd's architecture design
Actions: Add a workflow to deploy the zcashd book
Show README as root of zcashd book
Link to zips.z.cash for protocol spec
test: Convert Bech32 test vectors into known-answer test vectors
zcash_script: Add API to verify scripts with precomputed tx data
test: Migrate maxuploadtarget.py to Python 3
Pass current PoWTargetSpacing() into CNode::OutboundTargetReached()
init: Pass post-Blossom spacing into CNode::SetMaxOutboundTarget()
Fix some typos
zcash_script: Clarify return values in docs
Rename responsible_disclosure.md to SECURITY.md
Add IBD download traffic reduction to release notes
Fill out the rest of the 4.3.0 release notes
make-release.py: Versioning changes for 4.3.0-rc1.
make-release.py: Updated manpages for 4.3.0-rc1.
Jeremy Rubin (1):
Minimal fix to slow prevector tests as stopgap measure
Jonas Schnelli (14):
banlist.dat: store banlist on disk
CAddrDB/CBanDB: change filesize variables from int to uint64_t
use CBanEntry as object container for banned nodes
Adding CSubNet constructor over a single CNetAddr
[Qt] add ui signal for banlist changes
[Qt] banlist, UI optimizing and better signal handling
net: use CIDR notation in CSubNet::ToString()
[QA] fix netbase tests because of new CSubNet::ToString() output
Introduce -maxuploadtarget
[doc] add documentation how to reduce traffic
don't enforce maxuploadtargets disconnect for whitelisted peers
[docs] rename reducetraffic.md to reduce-traffic.md
add documentation for exluding whitelistes peer from maxuploadtarget
add (max)uploadtarget infos to getnettotals RPC help
Josh Lehan (1):
Re-organize -maxconnections option handling
Karel Bilek (1):
scripted-diff: Use UniValue.pushKV instead of push_back(Pair())
Kaz Wesley (4):
fix race that could fail to persist a ban
prevector: destroy elements only via erase()
test prevector::swap
prevector::swap: fix (unreached) data corruption
Kris Nuttycombe (4):
Skip "tx" messages during initial block download.
Fix pyflakes complaints
Whitespace-only fix in chainparams.cpp
Update the maxuploadtarget.py tests to accommodate zcash.
Larry Ruane (1):
#4624 improve IBD sync by eliminating getheaders requests
Marco Falke (3):
[net] Cleanup maxuploadtarget
[doc] Add -maxuploadtarget release notes
[walletdb] Add missing LOCK() in Recover() for dummyWallet
Marius Kjærstad (3):
Update _COPYRIGHT_YEAR in configure.ac to 2021
Update COPYRIGHT_YEAR in clientversion.h to 2021
Update of copyright year to 2021
Matt Corallo (6):
Default to defining endian-conversion DECLs in compat w/o config
Make fDisconnect an std::atomic
Make fImporting an std::atomic
Fix AddrMan locking
Remove double brackets in addrman
Fix unlocked access to vNodes.size()
Patrick Strateman (1):
Avoid recalculating vchKeyedNetGroup in eviction logic.
Peter Bushnell (1):
depends: Consistent use of package variable
Peter Todd (1):
Remove LOCK(cs_main) from decodescript
Philip Kaufmann (4):
banlist: update set dirty to be more fine grained
banlist: better handling of banlist in StartNode()
banlist: add more banlist infos to log / add GUI signal
banlist (bugfix): allow CNode::SweepBanned() to run on interval
Pieter Wuille (11):
Add SipHash-2-4 primitives to hash
Use SipHash-2-4 for CCoinsCache index
Switch CTxMempool::mapTx to use a hash index for txids
Use SipHash-2-4 for address relay selection
Add extra message to avoid a long 'Loading banlist'
Support SipHash with arbitrary byte writes
Use 64-bit SipHash of netgroups in eviction
Use C++11 thread-safe static initializers
Add ChaCha20
Switch FastRandomContext to ChaCha20
Add a FastRandomContext::randrange and use it
Suhas Daftuar (1):
Add RPC test for -maxuploadtarget
Taylor Hornby (2):
Move the github API token out of updatecheck.py into an untracked file.
Document the required .updatecheck-token file in the release docs
Wladimir J. van der Laan (6):
build: Updates for OpenBSD
net: Fix CIDR notation in ToString()
test: Add more test vectors for siphash
timedata: Prevent warning overkill
Always allow getheaders from whitelisted peers
rpc: remove cs_main lock from `createrawtransaction`
fanquake (2):
[build] Add NETBSD leveldb target to configure.ac
[doc] Improve lanaguge in reducetraffic.md
kirkalx (1):
peers.dat, banlist.dat recreated when missing
randy-waterhouse (1):
Re-instate TARGET_OS=linux in configure.ac. Removed by 351abf9e035.
Jack Grigg (1):
Update URL for Zcash Foundation security policy
Ying Tong Lai (2):
Cargo update
Postpone dependencies
tulip (1):
Move time data log print to 'net' category to reduce log noise
Benjamin Winston (1):
Added foundation to responsible_disclosure.md

View File

@ -16,9 +16,9 @@
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
#define CLIENT_VERSION_MAJOR 4
#define CLIENT_VERSION_MINOR 2
#define CLIENT_VERSION_MINOR 3
#define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 50
#define CLIENT_VERSION_BUILD 25
//! 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 = 1084650;
static const int APPROX_RELEASE_HEIGHT = 1154000;
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.");