Auto merge of #4928 - nuttycom:release-v4.2.0, r=daira

Release v4.2.0

Notable changes
===============

Switch to ed25519-zebra for consensus signature checks
------------------------------------------------------
This removes the zcashd dependency upon libsodium for ed25519
signature checks and instead uses the Rust implementation in
ed25519-zebra, which has been active for signature verification
since the Canopy upgrade. For more information on the conditions
that led to this change see https://hdevalence.ca/blog/2020-10-04-its-25519am

Update default fees according to ZIP-313
----------------------------------------
Reduce default fees to 0.00001 ZEC as specified in ZIP-313 and
ensure that transactions paying at least the new minimum fee meet
the transaction relay threshold irrespective of transaction size.

Improve getblocktemplate rpc performance when using shielded coinbase
---------------------------------------------------------------------
This change precomputes future block templates to permit miners to
begin working atop newly arrived blocks as quickly as possible, rather
than waiting for a new template to be generated after a block has arrived.
It also reduces the initial the wait time for incorporating new mempool
transactions into a block from 1 minute to 10 seconds; the previous value
was inherited from the upstream bitcoin codebase but is inappropriate for
our block timing.

Migrate from rpc-tests.sh to rpc-tests.py
-----------------------------------------
This unifies and simplifies the RPC testing framework, as has
been done in the upstream Bitcoin codebase.
This commit is contained in:
Homu 2020-12-21 20:08:33 +00:00
commit b812c3ad9d
11 changed files with 297 additions and 37 deletions

View File

@ -1,4 +1,4 @@
Zcash 4.2.0-rc1
Zcash 4.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, 4)
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 (4.2.0) stable; urgency=medium
* 4.2.0 release.
-- Electric Coin Company <team@electriccoin.co> Mon, 21 Dec 2020 12:55:52 -0700
zcash (4.2.0~rc1) stable; urgency=medium
* 4.2.0-rc1 release.

View File

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

View File

@ -1,90 +1,95 @@
Zcash Contributors
==================
Jack Grigg (1064)
Jack Grigg (1096)
Simon Liu (460)
Sean Bowe (367)
Daira Hopwood (247)
Daira Hopwood (254)
Eirik Ogilvie-Wigley (216)
Wladimir J. van der Laan (122)
Wladimir J. van der Laan (124)
Alfredo Garcia (113)
Taylor Hornby (112)
Alfredo Garcia (112)
Marshall Gaucher (100)
Kris Nuttycombe (89)
Marshall Gaucher (101)
Kris Nuttycombe (99)
Jay Graber (89)
Marco Falke (75)
Jonas Schnelli (73)
Pieter Wuille (70)
Cory Fields (63)
Cory Fields (64)
Larry Ruane (58)
Nathan Wilcox (56)
Larry Ruane (56)
Ying Tong Lai (54)
Marco Falke (38)
Kevin Gallagher (38)
practicalswift (36)
Dimitris Apostolou (28)
Dimitris Apostolou (33)
fanquake (28)
Matt Corallo (25)
fanquake (24)
Jorge Timón (22)
Luke Dashjr (18)
Jonathan "Duke" Leto (18)
syd (16)
furszy (15)
avnish (14)
Per Grön (14)
Jorge Timón (14)
Carl Dong (13)
Gregory Maxwell (12)
Benjamin Winston (12)
Ariel Gabizon (12)
Paige Peterson (11)
John Newbery (11)
nomnombtc (9)
Pavel Janík (9)
kozyilmaz (8)
Peter Todd (8)
Jeff Garzik (8)
Charlie O'Keefe (8)
Ben Wilson (8)
Jeff Garzik (7)
Suhas Daftuar (7)
Alex Morcos (7)
ying tong (6)
Philip Kaufmann (6)
Marius Kjærstad (6)
Karl-Johan Alm (6)
James O'Beirne (6)
David Mercer (6)
Daniel Cousens (6)
jnewbery (5)
ca333 (5)
Suhas Daftuar (5)
Patrick Strateman (5)
Kaz Wesley (5)
João Barbosa (5)
Johnathan Corgan (5)
John Newbery (5)
Jeremy Rubin (5)
George Tankersley (5)
Gavin Andresen (5)
Gareth Davies (5)
Alex Morcos (5)
Daniel Kraft (5)
sandakersmann (4)
gladcow (4)
Zancas Wilcox (4)
WO (4)
Nate Wilcox (4)
MeshCollider (4)
James O'Beirne (4)
Daniel Kraft (4)
mruddy (3)
lpescher (3)
isle2983 (3)
elbandi (3)
Sjors Provoost (3)
Patick Strateman (3)
NikVolf (3)
Nate Wilcox (3)
Julian Fleischer (3)
Jim Posen (3)
Jason Davies (3)
Evan Klitzke (3)
Danny Willems (3)
Chun Kuan Lee (3)
Casey Rodarmor (3)
Alfie John (3)
whythat (2)
rofl0r (2)
ptschip (2)
noname45688@gmail.com (2)
kpcyrd (2)
isle2983 (2)
face (2)
aniemerg (2)
UdjinM6 (2)
@ -105,7 +110,6 @@ Jeffrey Czyz (2)
Jack Gavigan (2)
ITH4Coinomia (2)
Dagur Valberg Johannsson (2)
Casey Rodarmor (2)
Bryant Eisenbach (2)
Brad Miller (2)
Bjorn Hjortsberg (2)
@ -117,7 +121,6 @@ vim88 (1)
unsystemizer (1)
tpantin (1)
teor (1)
ptschip (1)
murrayn (1)
mrbandrews (1)
kazcw (1)
@ -162,6 +165,7 @@ Miles Manley (1)
Maxwell Gubler (1)
Matt Quinn (1)
Mark Friedenbach (1)
Luv Khemani (1)
Louis Nyffenegger (1)
LongShao007 (1)
LitecoinZ (1)
@ -170,7 +174,9 @@ Lauda (1)
Lars-Magnus Skog (1)
Kristaps Kaupe (1)
Kevin Pan (1)
Josh Ellithorpe (1)
Jonas Nick (1)
Jesse Cohen (1)
Jeffrey Walton (1)
Jainan-Tandel (1)
Ian T (1)
@ -182,13 +188,14 @@ Gaurav Rana (1)
Forrest Voight (1)
Florian Schmaus (1)
Ethan Heilman (1)
Eric Lombrozo (1)
Eran Tromer (1)
Elliot Olds (1)
Dimitris Tsapakidis (1)
DesWurstes (1)
Denis Lukianov (1)
David Llop (1)
Dan Raviv (1)
Chun Kuan Lee (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.47.13.
.TH ZCASH-CLI "1" "December 2020" "zcash-cli v4.2.0-rc1" "User Commands"
.TH ZCASH-CLI "1" "December 2020" "zcash-cli v4.2.0" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v4.2.0-rc1
zcash-cli \- manual page for zcash-cli v4.2.0
.SH DESCRIPTION
Zcash RPC client version v4.2.0\-rc1
Zcash RPC client version v4.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.47.13.
.TH ZCASH-TX "1" "December 2020" "zcash-tx v4.2.0-rc1" "User Commands"
.TH ZCASH-TX "1" "December 2020" "zcash-tx v4.2.0" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v4.2.0-rc1
zcash-tx \- manual page for zcash-tx v4.2.0
.SH DESCRIPTION
Zcash zcash\-tx utility version v4.2.0\-rc1
Zcash zcash\-tx utility version v4.2.0
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]

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-rc1" "User Commands"
.TH ZCASHD "1" "December 2020" "zcashd v4.2.0" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v4.2.0-rc1
zcashd \- manual page for zcashd v4.2.0
.SH DESCRIPTION
Zcash Daemon version v4.2.0\-rc1
Zcash Daemon version v4.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

@ -0,0 +1,247 @@
Notable changes
===============
Switch to ed25519-zebra for consensus signature checks
------------------------------------------------------
This removes the zcashd dependency upon libsodium for ed25519
signature checks and instead uses the Rust implementation in
ed25519-zebra, which has been active for signature verification
since the Canopy upgrade. For more information on the conditions
that led to this change see https://hdevalence.ca/blog/2020-10-04-its-25519am
Update default fees according to ZIP-313
----------------------------------------
Reduce default fees to 0.00001 ZEC as specified in ZIP-313 and
ensure that transactions paying at least the new minimum fee meet
the transaction relay threshold irrespective of transaction size.
Improve getblocktemplate rpc performance when using shielded coinbase
---------------------------------------------------------------------
This change precomputes future block templates to permit miners to
begin working atop newly arrived blocks as quickly as possible, rather
than waiting for a new template to be generated after a block has arrived.
It also reduces the initial the wait time for incorporating new mempool
transactions into a block from 1 minute to 10 seconds; the previous value
was inherited from the upstream bitcoin codebase but is inappropriate for
our block timing.
Migrate from rpc-tests.sh to rpc-tests.py
-----------------------------------------
This unifies and simplifies the RPC testing framework, as has
been done in the upstream Bitcoin codebase.
Changelog
=========
Alex Morcos (2):
Reorder RPC tests for running time
remove obsolete run-bitcoind-for-test.sh
Alfredo Garcia (1):
add address to z_importviewingkey error
Casey Rodarmor (1):
Add p2p-fullblocktest.py
Chun Kuan Lee (2):
gui: get special folder in unicode
refactor: Drop boost::this_thread::interruption_point and boost::thread_interrupted in main thread
Cory Fields (1):
build: a few ugly hacks to get the rpc tests working out-of-tree
Daira Hopwood (7):
Windows cross-build generates .lib files, which should be ignored by git and removed by clean.
Partial revert of "Update links". See #4904
Fix a typo introduced in #4904.
Reduce the default fee for z_* operations, and the "low fee penalty" threshold for mempool limiting, to 1000 zatoshis.
Always allow transactions paying at least DEFAULT_FEE to be relayed, and do not rate-limit them. In other words, make sure that the "minimum relay fee" is no greater than DEFAULT_FEE.
gtest/test_mempoollimit: the test failed to properly ensure that the "low fee penalty" threshold matches the new ZIP 313 fee.
Revert changes in #4916 that assumed arguments represent fees, when they are actually number of confirmations.
Daniel Kraft (1):
Fix crash when mining with empty keypool.
Dimitris Apostolou (5):
Fix typo
readelf is Linux only
Fix readelf configuration
Update links
Remove workaround affecting old Boost version
Elliot Olds (1):
Check if zmq is installed in tests, update docs
Eric Lombrozo (1):
Added fPowNoRetargeting field to Consensus::Params that disables nBits recalculation.
Jack Grigg (32):
test: Use default shielded address in RPC tests where the type is irrelevant
Revert "remove SignatureHash from python rpc tests"
test: Remove FindAndDelete from RPC test framework
test: Fix SignatureHash RPC test helper
test: Set hashFinalSaplingRoot default correctly in create_block
test: Re-enable regtest difficulty adjustment for unit tests that use it
test: Adjust some Zcash RPC tests to work with parallel runner
test: Run rpc-tests.py in full_test_suite.py
lint: Remove boost/foreach.hpp from allowed includes
test: Silence pyflakes unused import warning
test: Run shielding-heavy RPC tests in serial
Fix Hungarian notation nit from Daira
Switch to ed25519-zebra for consensus signature checks
test: Use ed25519_verify in ConsensusTests
Update minimum chain work and set activation block hashes for mainnet
Update minimum chain work and set activation block hashes for testnet
net: Rework CNode spans
rpc: Reload CNode spans after reloading the log filter
rpc: Log the new filter when we set it
mempool: Log all accepted txids at INFO level
Add <variant> header to files that will need it
scripted-diff: Migrate from boost::variant to std::variant
Finish migrating to std::variant
Migrate from boost::optional::get to boost::optional::value
Add <optional> header to files that will need it
scripted-diff: Migrate from boost::optional to std::optional
Finish migrating to std::optional
lint: Remove boost::variant and boost::optional from allowed includes
test: Fix test_bitcoin compilation on macOS High Sierra
cargo update
tracing: Remove unnecessary tracing_init_inner internal function
tracing: Simplify init logic using optional layers
James O'Beirne (2):
Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator
Add basic coverage reporting for RPC tests
Jeff Garzik (1):
qa/pull-tester/rpc-tests.py: chmod 0755
Jesse Cohen (1):
[doc][trivial] no retargeting in regtest mode
John Newbery (6):
Use configparser in rpc-tests.py
Use argparse in rpc_tests.py
Improve rpc-tests.py arguments
Refactor rpc-tests.py
Various review markups for rpc-tests.py improvements
Add exclude option to rpc-tests.py
Jorge Timón (8):
Small preparations for Q_FOREACH, PAIRTYPE and #include <boost/foreach.hpp> removal
scripted-diff: Fully remove BOOST_FOREACH
scripted-diff: Remove PAIRTYPE
Introduce src/reverse_iterator.hpp and include it...
Fix const_reverse_iterator constructor (pass const ptr)
scripted-diff: Remove BOOST_REVERSE_FOREACH
scripted-diff: Remove #include <boost/foreach.hpp>
clang-format: Delete ForEachMacros
Josh Ellithorpe (1):
Include transaction hex in verbose getblock output
Kris Nuttycombe (10):
Write down the folklore about nSequence
Prefer explicit passing of CChainParams to the Params() global.
Remove vestigial OSX_SDK_VERSION from darwin build.
Update boost to 1.75, postpone other updates.
Don't log to stdout if a file logger is configured.
make-release.py: Versioning changes for 4.2.0-rc1.
make-release.py: Updated manpages for 4.2.0-rc1.
make-release.py: Updated release notes and changelog for 4.2.0-rc1.
make-release.py: Versioning changes for 4.2.0.
make-release.py: Updated manpages for 4.2.0.
Larry Ruane (2):
add more version information to getinfo rpc
improve getblocktemplate performance for shielded coinbase
Luv Khemani (1):
Add autocomplete to bitcoin-qt's console window.
Marco Falke (37):
[doc] trivial: fix markdown syntax in qa/rpc-tests/README.md
[rpc-tests] fundrawtransaction: Update fee after minRelayTxFee increase
[rpc-tests] Check return code
[qa] Split README.md to /qa and /qa/rpc-tests
[qa] Extend README.md
[qa] keypool: Fix white space to prepare transition to test framework
[qa] keypool: DRY: Use test framework
[qa] pull-tester: Cleanup (run keypool, tidy stdout)
[qa] Use python2/3 syntax
[qa] rpc-tests: Properly use integers, floats
[qa] mininode: Catch exceptions in got_data
[qa] pull-tester: Don't mute zmq ImportError
[qa] pull-tester: Exit early when no tests are run
[qa] rpc-tests: Fix link in comment and label error msg
[qa] Switch to py3
[qa] Refactor test_framework and pull tester
[qa] Update README.md
[qa] Stop other nodes, even when one fails to stop
[qa] pull-tester: Adjust comment
[qa] pull-tester: Run rpc test in parallel
[qa] Add option --portseed to test_framework
[qa] Remove hardcoded "4 nodes" from test_framework
[qa] test_framework: Append portseed to tmpdir
[qa] test_framework: Use different rpc_auth_pair for each node
[qa] pull-tester: Fix assertion and check for run_parallel
[qa] pull-tester: Start longest test first
[qa] Adjust timeouts for micro-optimization of run time
[qa] Use single cache dir for chains
[qa] Remove unused code
[qa] pull-tester: Don't mute zmq ImportError
[qa] create_cache: Delete temp dir when done
[qa] Refactor RPCTestHandler to prevent TimeoutExpired
[qa] pull-tester: Only print output when failed
[qa] test_framework: Exit when tmpdir exists
[qa] rpc-tests: Apply random offset to portseed
qa: Set correct path for binaries in rpc tests
util: Replace boost::signals2 with std::function
Nate Wilcox (1):
configure.ac: Introduce macros to simplify requiring tools.
Suhas Daftuar (2):
Remove unmaintained example test script_test.py
Tests: add timeout to sync_blocks() and sync_mempools()
Wladimir J. van der Laan (2):
build: don't distribute tests_config.py
test: don't override BITCOIND and BITCOINCLI if they're set
fanquake (4):
[doc] Add OS X ZMQ requirement to QA readme
[trivial] Add tests_config.ini to .gitignore
[qa][doc] Correct rpc test options in readme
build: set minimum supported macOS to 10.14
furszy (15):
wallet:AvailableCoins fOnlySpendable filtering flag implemented + connected to sendmany async operation.
wallet:AvailableCoins nMinDepth filter implemented + connected to sendmany async operation.
asyncrpcoperation_sendmany::find_utxos removing a redundant coinbase check, coinbases are already being filtered by the AvailableCoins flag.
wallet:AvailableCoins filter by destination/s feature implemented + connected to sendmany async operation.
sendmany::find_utxo removing an unneeded recursive lock, AvailableCoins is already locking cs_main and cs_wallet.
wallet:COutput adding fIsCoinbase member.
COutput: implemented Value() method.
asyncRPCOperation_sendmany:find_utxos, removing a redundant loop over all of the available utxo in the wallet.
sendmany: removing now unused SendManyInputUTXO class.
move-only: asyncOp_sendmany, target amount calculation moved before find inputs (utxos and notes).
sendmany operation: Creating TxValues struct to store the transaction values in a more organized manner.
Improving asyncoperation_sendmany, removing another redundant for loop over all of the available utxos.
rpc_wallet_tests: changed "Insufficient funds" error message to a proper "Insufficient transparent funds". This is because we are now throwing the insufficient transparent balance rpc error inside load_utxo.
asyncOp sendmany: moved inputs total amount check inside load_utxo before the dust validation.
sendmany::find_unspent_notes removing an unneeded recursive lock, GetFilteredNotes is already locking cs_main and cs_wallet.
isle2983 (1):
[doc] - clarify statement about parallel jobs in rpc-tests.py
Marshall Gaucher (1):
Update expected fails for Sprout txns flows on Canopy
ptschip (1):
Migrated rpc-tests.sh to all python rpc-tests.py
whythat (2):
[qa]: add parsing for '<host>:<port>' argument form to rpc_url()
[qa]: enable rpcbind_test

View File

@ -18,7 +18,7 @@
#define CLIENT_VERSION_MAJOR 4
#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 = 1082300;
static const int APPROX_RELEASE_HEIGHT = 1084650;
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.");