Skip to content

Commit

Permalink
Auto merge of zcash#4186 - Eirik0:release-v2.1.0, r=Eirik0
Browse files Browse the repository at this point in the history
Release v2.1.0
  • Loading branch information
zkbot committed Nov 2, 2019
2 parents fe89651 + 842e737 commit ffdba7c
Show file tree
Hide file tree
Showing 12 changed files with 245 additions and 114 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Zcash 2.1.0-rc1
Zcash 2.1.0
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
===========

Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 2)
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)
Expand Down
6 changes: 6 additions & 0 deletions contrib/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
zcash (2.1.0) stable; urgency=medium

* 2.1.0 release.

-- Electric Coin Company <team@z.cash> Sat, 02 Nov 2019 11:01:00 -0600

zcash (2.1.0~rc1) stable; urgency=medium

* 2.1.0-rc1 release.
Expand Down
2 changes: 1 addition & 1 deletion contrib/gitian-descriptors/gitian-linux.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: "zcash-2.1.0-rc1"
name: "zcash-2.1.0"
enable_cache: true
distro: "debian"
suites:
Expand Down
18 changes: 10 additions & 8 deletions doc/authors.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
Zcash Contributors
==================

Jack Grigg (880)
Jack Grigg (919)
Simon Liu (459)
Sean Bowe (278)
Eirik Ogilvie-Wigley (169)
Daira Hopwood (140)
Sean Bowe (279)
Eirik Ogilvie-Wigley (210)
Daira Hopwood (144)
Jay Graber (89)
Wladimir J. van der Laan (82)
Taylor Hornby (73)
Jonas Schnelli (62)
Nathan Wilcox (56)
Pieter Wuille (54)
Kevin Gallagher (38)
Larry Ruane (36)
Cory Fields (35)
Larry Ruane (31)
Marshall Gaucher (22)
Jonathan "Duke" Leto (17)
syd (15)
Expand All @@ -24,13 +24,13 @@ Marco Falke (11)
Ariel Gabizon (11)
Jorge Timón (10)
nomnombtc (9)
Dimitris Apostolou (9)
kozyilmaz (8)
fanquake (8)
Luke Dashjr (8)
Dimitris Apostolou (8)
Benjamin Winston (8)
Jeff Garzik (7)
Gregory Maxwell (7)
Benjamin Winston (7)
Marius Kjærstad (6)
David Mercer (6)
Daniel Cousens (6)
Expand All @@ -39,14 +39,14 @@ Suhas Daftuar (5)
Peter Todd (5)
Karl-Johan Alm (5)
Johnathan Corgan (5)
Gareth Davies (5)
Alex Morcos (5)
WO (4)
Philip Kaufmann (4)
Pavel Janík (4)
Patrick Strateman (4)
João Barbosa (4)
George Tankersley (4)
Gareth Davies (4)
Daniel Kraft (4)
lpescher (3)
ca333 (3)
Expand All @@ -73,6 +73,7 @@ Joe Turgeon (2)
Jack Gavigan (2)
ITH4Coinomia (2)
Gavin Andresen (2)
Bryant Eisenbach (2)
Brad Miller (2)
Bjorn Hjortsberg (2)
Amgad Abdelhafez (2)
Expand All @@ -84,6 +85,7 @@ sandakersmann (1)
practicalswift (1)
mrbandrews (1)
kazcw (1)
jeff-liang (1)
jc (1)
isle2983 (1)
instagibbs (1)
Expand Down
6 changes: 3 additions & 3 deletions doc/man/zcash-cli.1
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH ZCASH-CLI "1" "October 2019" "zcash-cli v2.1.0-rc1" "User Commands"
.TH ZCASH-CLI "1" "November 2019" "zcash-cli v2.1.0" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v2.1.0-rc1
zcash-cli \- manual page for zcash-cli v2.1.0
.SH DESCRIPTION
Zcash RPC client version v2.1.0\-rc1
Zcash RPC client version v2.1.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
Expand Down
6 changes: 3 additions & 3 deletions doc/man/zcash-tx.1
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH ZCASH-TX "1" "October 2019" "zcash-tx v2.1.0-rc1" "User Commands"
.TH ZCASH-TX "1" "November 2019" "zcash-tx v2.1.0" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v2.1.0-rc1
zcash-tx \- manual page for zcash-tx v2.1.0
.SH DESCRIPTION
Zcash zcash\-tx utility version v2.1.0\-rc1
Zcash zcash\-tx utility version v2.1.0
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]
Expand Down
6 changes: 3 additions & 3 deletions doc/man/zcashd.1
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH ZCASHD "1" "October 2019" "zcashd v2.1.0-rc1" "User Commands"
.TH ZCASHD "1" "November 2019" "zcashd v2.1.0" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v2.1.0-rc1
zcashd \- manual page for zcashd v2.1.0
.SH DESCRIPTION
Zcash Daemon version v2.1.0\-rc1
Zcash Daemon version v2.1.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
Expand Down
92 changes: 0 additions & 92 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,95 +4,3 @@ release-notes at release time)
Notable changes
===============

Blossom network upgrade
-----------------------

The mainnet activation of the Blossom network upgrade is supported by this
release, with an activation height of 653600, which should occur in early
December — roughly one day following the targeted EOS halt of our 2.0.7-3
release. Please upgrade to this release, or any subsequent release, in order to
follow the Blossom network upgrade.

The Blossom network upgrade implements
[ZIP208](https://github.com/zcash/zips/blob/master/zip-0208.rst) which shortens
block times from 150s to 75s.

DoS Mitigation: Mempool Size Limit and Random Drop
--------------------------------------------------

This release adds a mechanism for preventing nodes from running out of memory
in the situation where an attacker is trying to overwhelm the network with
transactions. This is achieved by keeping track of and limiting the total
`cost` and `evictionWeight` of all transactions in the mempool. The `cost` of a
transaction is determined by its size in bytes, and its `evictionWeight` is a
function of the transaction's `cost` and its fee. The maximum total cost is
configurable via the parameter `mempooltxcostlimit` which defaults to
80,000,000 (up to 20,000 txs). If a node's total mempool `cost` exceeds this
limit the node will evict a random transaction, preferentially picking larger
transactions and ones with below the standard fee. To prevent a node from
re-accepting evicted transactions, it keeps track of ones that it has evicted
recently. By default, a transaction will be considered recently evicted for 60
minutes, but this can be configured with the parameter
`mempoolevictionmemoryminutes`.

For full details see ZIP 401.

Asynchronous Operations Incorrectly Reporting Success
-----------------------------------------------------
We fixed an issue where asynchronous operations were sometimes reporting sucess
when they had actually failed. One way this could occur was when trying to use
`z_sendmany` to create a transaction spending coinbase funds in a way where
change would be generated (not a valid use of `z_sendmany`). In this case the
operation would erroneously report success, and the only way to see that the
transaction had actually failed was to look in the `debug.log` file. Such
operations will now correctly report that they have failed.

Fake chain detection during initial block download
--------------------------------------------------

One of the mechanisms that `zcashd` uses to detect whether it is in "initial
block download" (IBD) mode is to compare the active chain's cumulative work
against a hard-coded "minimum chain work" value. This mechanism (inherited from
Bitcoin Core) means that once a node exits IBD mode, it is either on the main
chain, or a fake alternate chain with similar amounts of work. In the latter
case, the node has most likely become the victim of a 50% + 1 adversary.

Starting from this release, `zcashd` additionally hard-codes the block hashes
for the activation blocks of each past network upgrade (NU). During initial
chain synchronization, and after the active chain has reached "minimum chain
work", the node checks the blocks at each NU activation height against the
hard-coded hashes. If any of them do not match, the node will immediately alert
the user and **shut down for safety**.

Disabling old Sprout proofs
---------------------------

As part of our ongoing work to clean up the codebase and minimise the security
surface of `zcashd`, we are removing `libsnark` from the codebase, and dropping
support for creating and verifying old Sprout proofs. Funds stored in Sprout
addresses are not affected, as they are spent using the hybrid Sprout circuit
(built using `bellman`) that was deployed during the Sapling network upgrade.

This change has several implications:

- `zcashd` no longer verifies old Sprout proofs, and will instead assume they
are valid. This has a minor implication for nodes: during initial block
download, an adversary could feed the node fake blocks containing invalid old
Sprout proofs, and the node would accept the fake chain as valid. However,
as soon as the active chain contains at least as much work as the hard-coded
"minimum chain work" value, the node will detect this situation and shut down.

- Shielded transactions can no longer be created before Sapling has activated.
This does not affect Zcash itself, but will affect downstream codebases that
have not yet activated Sapling (or that start a new chain after this point and
do not activate Sapling from launch). Note that the old Sprout circuit is
[vulnerable to counterfeiting](https://z.cash/support/security/announcements/security-announcement-2019-02-05-cve-2019-7167/)
and should not be used in current deployments.

- Starting from this release, the circuit parameters from the original Sprout
MPC are no longer required to start `zcashd`, and will not be downloaded by
`fetch-params.sh`. They are not being automatically deleted at this time.

We would like to take a moment to thank the `libsnark` authors and contributors.
It was vital to the success of Zcash, and the development of zero-knowledge
proofs in general, to have this code available and usable.
Loading

0 comments on commit ffdba7c

Please sign in to comment.