From f64c346eca57d8cf0d2959d38c1bd542b65dc249 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Wed, 11 Apr 2018 20:02:10 -0600 Subject: [PATCH 1/4] make-release.py: Versioning changes for 1.1.0. --- README.md | 2 +- configure.ac | 2 +- contrib/gitian-descriptors/gitian-linux.yml | 2 +- src/clientversion.h | 2 +- src/deprecation.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2ffb3093e..20d2ce56f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Zcash 1.1.0-rc1 +Zcash 1.1.0 ============= What is Zcash? diff --git a/configure.ac b/configure.ac index 96bea4cd6..72b63f329 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 1) define(_CLIENT_VERSION_MINOR, 1) 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/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 1d5ecca88..01495bbef 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -1,5 +1,5 @@ --- -name: "zcash-1.1.0-rc1" +name: "zcash-1.1.0" enable_cache: true distro: "debian" suites: diff --git a/src/clientversion.h b/src/clientversion.h index 6023bd106..0b2d7ce1a 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -18,7 +18,7 @@ #define CLIENT_VERSION_MAJOR 1 #define CLIENT_VERSION_MINOR 1 #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 7497200a9..7fe75f0f9 100644 --- a/src/deprecation.h +++ b/src/deprecation.h @@ -8,7 +8,7 @@ // Deprecation policy: // * Shut down 16 weeks' worth of blocks after the estimated release block height. // * A warning is shown during the 2 weeks' worth of blocks prior to shut down. -static const int APPROX_RELEASE_HEIGHT = 300600; +static const int APPROX_RELEASE_HEIGHT = 304600; static const int WEEKS_UNTIL_DEPRECATION = 16; static const int DEPRECATION_HEIGHT = APPROX_RELEASE_HEIGHT + (WEEKS_UNTIL_DEPRECATION * 7 * 24 * 24); From 145ee7909974140d6fa1b1a50b852a87cd3ccffe Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Wed, 11 Apr 2018 20:15:13 -0600 Subject: [PATCH 2/4] make-release.py: Updated manpages for 1.1.0. --- doc/man/zcash-cli.1 | 6 +++--- doc/man/zcash-tx.1 | 6 +++--- doc/man/zcashd.1 | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/man/zcash-cli.1 b/doc/man/zcash-cli.1 index 3424c2660..66a9db960 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.3. -.TH ZCASH-CLI "1" "April 2018" "zcash-cli v1.1.0-rc1" "User Commands" +.TH ZCASH-CLI "1" "April 2018" "zcash-cli v1.1.0" "User Commands" .SH NAME -zcash-cli \- manual page for zcash-cli v1.1.0-rc1 +zcash-cli \- manual page for zcash-cli v1.1.0 .SH DESCRIPTION -Zcash RPC client version v1.1.0\-rc1 +Zcash RPC client version v1.1.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 52ce95a2d..b256b759c 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.3. -.TH ZCASH-TX "1" "April 2018" "zcash-tx v1.1.0-rc1" "User Commands" +.TH ZCASH-TX "1" "April 2018" "zcash-tx v1.1.0" "User Commands" .SH NAME -zcash-tx \- manual page for zcash-tx v1.1.0-rc1 +zcash-tx \- manual page for zcash-tx v1.1.0 .SH DESCRIPTION -Zcash zcash\-tx utility version v1.1.0\-rc1 +Zcash zcash\-tx utility version v1.1.0 .SS "Usage:" .TP zcash\-tx [options] [commands] diff --git a/doc/man/zcashd.1 b/doc/man/zcashd.1 index d3c312e64..d43d49248 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.3. -.TH ZCASHD "1" "April 2018" "zcashd v1.1.0-rc1" "User Commands" +.TH ZCASHD "1" "April 2018" "zcashd v1.1.0" "User Commands" .SH NAME -zcashd \- manual page for zcashd v1.1.0-rc1 +zcashd \- manual page for zcashd v1.1.0 .SH DESCRIPTION -Zcash Daemon version v1.1.0\-rc1 +Zcash Daemon version v1.1.0 .PP In order to ensure you are adequately protecting your privacy when using Zcash, please see . @@ -54,7 +54,7 @@ Specify data directory \fB\-disabledeprecation=\fR .IP Disable block\-height node deprecation and automatic shutdown (example: -\fB\-disabledeprecation\fR=\fI\,1\/\fR.1.0\-rc1) +\fB\-disabledeprecation\fR=\fI\,1\/\fR.1.0) .HP \fB\-exportdir=\fR .IP From 2141de16e8d3f826996385d77eef800a65708233 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Wed, 11 Apr 2018 20:15:29 -0600 Subject: [PATCH 3/4] make-release.py: Updated release notes and changelog for 1.1.0. --- contrib/debian/changelog | 6 + doc/authors.md | 33 ++-- doc/release-notes.md | 33 ---- doc/release-notes/release-notes-1.1.0.md | 185 +++++++++++++++++++++++ 4 files changed, 211 insertions(+), 46 deletions(-) create mode 100644 doc/release-notes/release-notes-1.1.0.md diff --git a/contrib/debian/changelog b/contrib/debian/changelog index 7e9c56949..119814c49 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,9 @@ +zcash (1.1.0) stable; urgency=medium + + * 1.1.0 release. + + -- Zcash Company Wed, 11 Apr 2018 20:15:29 -0600 + zcash (1.1.0~rc1) stable; urgency=medium * 1.1.0-rc1 release. diff --git a/doc/authors.md b/doc/authors.md index 8f249b1c0..39b3bcf66 100644 --- a/doc/authors.md +++ b/doc/authors.md @@ -1,44 +1,50 @@ Zcash Contributors ================== -Jack Grigg (601) -Simon Liu (297) +Jack Grigg (648) +Simon Liu (311) Sean Bowe (193) -Daira Hopwood (102) -Wladimir J. van der Laan (71) +Daira Hopwood (107) +Wladimir J. van der Laan (77) Taylor Hornby (65) -Jay Graber (61) +Jay Graber (62) Nathan Wilcox (56) Jonas Schnelli (49) Kevin Gallagher (38) Cory Fields (30) -Pieter Wuille (24) +Pieter Wuille (26) syd (15) +Matt Corallo (12) nomnombtc (9) Paige Peterson (9) -Matt Corallo (9) fanquake (8) +Jonathan "Duke" Leto (8) MarcoFalke (7) +Jeff Garzik (7) Luke Dashjr (6) +kozyilmaz (5) Johnathan Corgan (5) Gregory Maxwell (5) Ariel Gabizon (5) -kozyilmaz (4) Philip Kaufmann (4) Peter Todd (4) +Pavel Janík (4) Patrick Strateman (4) Karl-Johan Alm (4) Jorge Timón (4) -Jeff Garzik (4) David Mercer (4) Daniel Cousens (4) lpescher (3) Suhas Daftuar (3) -Pavel Janík (3) +Patick Strateman (3) João Barbosa (3) +Jason Davies (3) +James O'Beirne (3) +Daniel Kraft (3) Ariel (3) Alfie John (3) str4d (2) +rofl0r (2) paveljanik (2) kpcyrd (2) aniemerg (2) @@ -47,11 +53,10 @@ Robert C. Seacord (2) Per Grön (2) Pavel Vasin (2) Joe Turgeon (2) -Jason Davies (2) Jack Gavigan (2) ITH4Coinomia (2) Gavin Andresen (2) -Daniel Kraft (2) +Brad Miller (2) Bjorn Hjortsberg (2) Amgad Abdelhafez (2) zathras-crypto (1) @@ -73,6 +78,7 @@ Stephen (1) S. Matthew English (1) Ross Nicoll (1) René Nyffenegger (1) +R E Broadley (1) Paul Georgiou (1) Paragon Initiative Enterprises, LLC (1) Nicolas DORIER (1) @@ -84,9 +90,9 @@ Mark Friedenbach (1) Marius Kjærstad (1) Louis Nyffenegger (1) Leo Arias (1) +Lauda (1) Lars-Magnus Skog (1) Kevin Pan (1) -Jonathan "Duke" Leto (1) Jonas Nick (1) Jeffrey Walton (1) Ian Kelling (1) @@ -98,6 +104,7 @@ Eran Tromer (1) Duke Leto (1) Christian von Roques (1) Chirag Davé (1) +Charlie O'Keefe (1) Casey Rodarmor (1) Cameron Boehmer (1) Bryan Stitt (1) diff --git a/doc/release-notes.md b/doc/release-notes.md index 4ecb9d000..a29094b51 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -4,36 +4,3 @@ release-notes at release time) Notable changes =============== -`-mempooltxinputlimit` deprecation ----------------------------------- - -The configuration option `-mempooltxinputlimit` was added in release 1.0.10 as a -short-term fix for the quadratic hashing problem inherited from Bitcoin. At the -time, transactions with many inputs were causing performance issues for miners. -Since then, several performance improvements have been merged from the Bitcoin -Core codebase that significantly reduce these issues. - -The Overwinter network upgrade includes changes that solve the quadratic hashing -problem, and so `-mempooltxinputlimit` will no longer be needed - a transaction -with 1000 inputs will take just as long to validate as 10 transactions with 100 -inputs each. Starting from this release, `-mempooltxinputlimit` will be enforced -before the Overwinter activation height is reached, but will be ignored once -Overwinter activates. The option will be removed entirely in a future release -after Overwinter has activated. - -`NODE_BLOOM` service bit ------------------------- - -Support for the `NODE_BLOOM` service bit, as described in [BIP -111](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki), has been -added to the P2P protocol code. - -BIP 111 defines a service bit to allow peers to advertise that they support -Bloom filters (such as used by SPV clients) explicitly. It also bumps the protocol -version to allow peers to identify old nodes which allow Bloom filtering of the -connection despite lacking the new service bit. - -In this version, it is only enforced for peers that send protocol versions -`>=170004`. For the next major version it is planned that this restriction will be -removed. It is recommended to update SPV clients to check for the `NODE_BLOOM` -service bit for nodes that report version 170004 or newer. diff --git a/doc/release-notes/release-notes-1.1.0.md b/doc/release-notes/release-notes-1.1.0.md new file mode 100644 index 000000000..ba8a39c48 --- /dev/null +++ b/doc/release-notes/release-notes-1.1.0.md @@ -0,0 +1,185 @@ +Notable changes +=============== + +`-mempooltxinputlimit` deprecation +---------------------------------- + +The configuration option `-mempooltxinputlimit` was added in release 1.0.10 as a +short-term fix for the quadratic hashing problem inherited from Bitcoin. At the +time, transactions with many inputs were causing performance issues for miners. +Since then, several performance improvements have been merged from the Bitcoin +Core codebase that significantly reduce these issues. + +The Overwinter network upgrade includes changes that solve the quadratic hashing +problem, and so `-mempooltxinputlimit` will no longer be needed - a transaction +with 1000 inputs will take just as long to validate as 10 transactions with 100 +inputs each. Starting from this release, `-mempooltxinputlimit` will be enforced +before the Overwinter activation height is reached, but will be ignored once +Overwinter activates. The option will be removed entirely in a future release +after Overwinter has activated. + +`NODE_BLOOM` service bit +------------------------ + +Support for the `NODE_BLOOM` service bit, as described in [BIP +111](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki), has been +added to the P2P protocol code. + +BIP 111 defines a service bit to allow peers to advertise that they support +Bloom filters (such as used by SPV clients) explicitly. It also bumps the protocol +version to allow peers to identify old nodes which allow Bloom filtering of the +connection despite lacking the new service bit. + +In this version, it is only enforced for peers that send protocol versions +`>=170004`. For the next major version it is planned that this restriction will be +removed. It is recommended to update SPV clients to check for the `NODE_BLOOM` +service bit for nodes that report version 170004 or newer. + +Changelog +========= + +Brad Miller (2): + Clean up + Implement note locking for z_mergetoaddress + +Charlie O'Keefe (1): + Add filename and sha256 hash for windows rust package + +Daira Hopwood (5): + Squashed commit of the following: + pyflakes cleanups to RPC tests after Overwinter PRs. + Add support for Overwinter v3 transactions to mininode framework. + Test that receiving an expired transaction does not increase the peer's ban score. + Don't increase banscore if the transaction only just expired. + +Daniel Kraft (1): + trivial: use constants for db keys + +Jack Grigg (47): + Add environment variable for setting ./configure flags in zcutil/build.sh + Add configure flags for enabling ASan/UBSan and TSan + Split declaration and definition of SPROUT_BRANCH_ID constant + Add link to Overwinter info page + Notify users about auto-senescence via -alertnotify + test: Move wait_and_assert_operationid_status debug output before asserts + Don't require RELRO and BIND_NOW for Darwin + Only set multicore flags if OpenMP is available + Revert "remove -mt suffix from boost libraries built by depends" + Use correct Boost::System linker flag for libzcash + depends: Remove -mt suffix from Boost libraries + snark: Remove -mt suffix from Boost library + cleanup: Ensure code is pyflakes-clean for CI + Ignore -mempooltxinputlimit once Overwinter activates + depends: Explicitly download and vendor Rust dependencies + Make Rust compilation mandatory + Optimise serialization of MerklePath, avoiding ambiguity of std::vector + Use uint64_t instead of size_t for serialized indices into tx.vjoinsplit + Move explicit instantiation of IncrementalMerkleTree::emptyroots into header + libsnark: Don't set -static on Darwin + Set PLATFORM flag when compiling libsnark + Add base case to CurrentEpoch() + Cast ZCIncrementalMerkleTree::size() to uint64_t before passing to UniValue + rpcwallet.cpp: Cast size_t to uint64_t before passing to UniValue + wallet: Cast size_t to uint64_t before passing to UniValue + Test calling z_mergetoaddress to merge notes while a note merge is ongoing + depends: Fix regex bugs in cargo-checksum.sh + Fix z_importviewingkey startHeight parameter + Add RPC test of RewindBlockIndex + When rewinding, remove insufficiently-validated blocks + Adjust deprecation message to work in both UI and -alertnotify + Refactor Zcash changes to CCoinsViewDB + Update blockchain.py RPC test for Zcash + Update CBlockTreeDB::EraseBatchSync for dbwrapper refactor + Fix typo + test: Check return value of snprintf + test: Add missing Overwinter fields to mininode's CTransaction + Add RPC test for -enforcenodebloom + Fix NODE_BLOOM documentation errors + Move bloom filter filtering logic back into command "switch" + Update -enforcenodebloom RPC test with filterclear vs filteradd + make-release.py: Versioning changes for 1.1.0-rc1. + make-release.py: Updated manpages for 1.1.0-rc1. + make-release.py: Updated release notes and changelog for 1.1.0-rc1. + Set Overwinter protocol version to 170005 + make-release.py: Versioning changes for 1.1.0. + make-release.py: Updated manpages for 1.1.0. + +James O'Beirne (3): + Refactor leveldbwrapper + Minor bugfixes + Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator + +Jason Davies (1): + Fix typo in comment: should link to issue #1359. + +Jay Graber (1): + Set ban score for expired txs to 0 + +Jeff Garzik (3): + leveldbwrapper: Remove unused .Prev(), .SeekToLast() methods + leveldbwrapper symbol rename: Remove "Level" from class, etc. names + leveldbwrapper file rename to dbwrapper.* + +Jonathan "Duke" Leto (7): + Fix references to Bitcoin in RPC tests readme + This library seems to not be used at all and all comments mentioning it are ghosts + Update awkward wording about blocks as per @daira + Regtest mining does have a founders reward, a single address t2FwcEhFdNXuFMv1tcYwaBJtYVtMj8b1uTg + Fix outdated comment about starting balance of nodes + Return JoinSplit and JoinSplitOutput indexes in z_listreceivedbyaddress + Add tests for new JoinSplit keys returned by z_listreceivedbyaddress + +Lauda (1): + [Trivial] Grammar and typo correction + +Matt Corallo (3): + Add test for dbwrapper iterators with same-prefix keys. + Add NODE_BLOOM service bit and bump protocol version + Don't do mempool lookups for "mempool" command without a filter + +Patick Strateman (3): + Move bloom filter filtering logic outside of command "switch" (giant if/else). + Add enforcenodebloom option. + Document both the peerbloomfilters and enforcenodebloom options. + +Pavel Janík (1): + Do not shadow members in dbwrapper + +Pieter Wuille (2): + Encapsulate CLevelDB iterators cleanly + Fix chainstate serialized_size computation + +R E Broadley (1): + Allow filterclear messages for enabling TX relay only. + +Simon Liu (14): + Code clean up. Remove use of X macro. + Enable mempool logging in tx expiry QA test. + Closes #3084. Log txid when removing expired txs from mempool. + Add qa test for cache invalidation bug found in v1.0.0 to v1.0.3. + Remove local function wait_and_assert_operationid_status which is now defined in the test framework for shared usage. + Update boost to 1.66.0 + Part of #2966, extending Sprout tests to other epochs. + Update boost package URL to match official download url on boost.org + Closes #3110. Ensure user can see error message about absurdly high fees. + Closes #2910. Add z_listunspent RPC call. + Upgrade OpenSSL to 1.1.0h + Use range based for loop + Bump MIT Licence copyright header. + Fix test to check for sanitized string from alertnotify. + +Wladimir J. van der Laan (6): + dbwrapper: Pass parent CDBWrapper into CDBBatch and CDBIterator + dbwrapper: Move `HandleError` to `dbwrapper_private` + chain: Add assertion in case of missing records in index db + test: Add more thorough test for dbwrapper iterators + test: Replace remaining sprintf with snprintf + doc: update release-notes and bips.md for BIP111 + +kozyilmaz (1): + Fix test/gtest bugs caught by latest macOS clang + +rofl0r (2): + fix build error due to usage of obsolete boost_system-mt + remove -mt suffix from boost libraries built by depends + From 4d234cd2f836f7adc9e92bba343ad9bd7dd6da11 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Wed, 11 Apr 2018 20:21:45 -0600 Subject: [PATCH 4/4] Overwinter mainnet activation height --- doc/release-notes/release-notes-1.1.0.md | 8 ++++++++ src/chainparams.cpp | 3 +-- src/version.h | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/release-notes/release-notes-1.1.0.md b/doc/release-notes/release-notes-1.1.0.md index ba8a39c48..37f803e6f 100644 --- a/doc/release-notes/release-notes-1.1.0.md +++ b/doc/release-notes/release-notes-1.1.0.md @@ -1,6 +1,14 @@ Notable changes =============== +Overwinter network upgrade +-------------------------- + +The activation height for the Overwinter network upgrade on mainnet is included +in this release. Overwinter will activate on mainnet at height 347500, which is +expected to be mined on the 25th of June 2018. Please upgrade to this release, +or any subsequent release, in order to follow the Overwinter network upgrade. + `-mempooltxinputlimit` deprecation ---------------------------------- diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 4806dcfc5..ae9d82d52 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -102,8 +102,7 @@ public: consensus.vUpgrades[Consensus::UPGRADE_TESTDUMMY].nActivationHeight = Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT; consensus.vUpgrades[Consensus::UPGRADE_OVERWINTER].nProtocolVersion = 170005; - consensus.vUpgrades[Consensus::UPGRADE_OVERWINTER].nActivationHeight = - Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT; + consensus.vUpgrades[Consensus::UPGRADE_OVERWINTER].nActivationHeight = 347500; /** * The message start string should be awesome! ⓩ❤ diff --git a/src/version.h b/src/version.h index 258534aa6..bf8c518d8 100644 --- a/src/version.h +++ b/src/version.h @@ -9,7 +9,7 @@ * network protocol versioning */ -static const int PROTOCOL_VERSION = 170004; +static const int PROTOCOL_VERSION = 170005; //! initial proto version, to be increased after version/verack negotiation static const int INIT_PROTO_VERSION = 209;