Auto merge of #4469 - ebfull:release-v2.1.2, r=ebfull
Release v2.1.2 Includes **testnet** activation of Heartwood (NU3) on block `903800` -- approx May 6th, 4pm MST. Does **not** include mainnet activation, that's planned for `3.0.0`. See release notes for other cool changes.
This commit is contained in:
commit
ff1e8ebe2f
|
@ -1,4 +1,4 @@
|
|||
Zcash 2.1.2-rc1
|
||||
Zcash 2.1.2
|
||||
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
|
||||
===========
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ AC_PREREQ([2.60])
|
|||
define(_CLIENT_VERSION_MAJOR, 2)
|
||||
define(_CLIENT_VERSION_MINOR, 1)
|
||||
define(_CLIENT_VERSION_REVISION, 2)
|
||||
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)
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
zcash (2.1.2) stable; urgency=medium
|
||||
|
||||
* 2.1.2 release.
|
||||
|
||||
-- Electric Coin Company <team@electriccoin.co> Wed, 22 Apr 2020 10:46:06 -0600
|
||||
|
||||
zcash (2.1.2~rc1) stable; urgency=medium
|
||||
|
||||
* 2.1.2-rc1 release.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: "zcash-2.1.2-rc1"
|
||||
name: "zcash-2.1.2"
|
||||
enable_cache: true
|
||||
distro: "debian"
|
||||
suites:
|
||||
|
|
|
@ -1,63 +1,70 @@
|
|||
Zcash Contributors
|
||||
==================
|
||||
|
||||
Jack Grigg (925)
|
||||
Jack Grigg (1020)
|
||||
Simon Liu (460)
|
||||
Sean Bowe (291)
|
||||
Eirik Ogilvie-Wigley (212)
|
||||
Daira Hopwood (155)
|
||||
Wladimir J. van der Laan (89)
|
||||
Sean Bowe (306)
|
||||
Eirik Ogilvie-Wigley (214)
|
||||
Daira Hopwood (180)
|
||||
Taylor Hornby (99)
|
||||
Marshall Gaucher (99)
|
||||
Wladimir J. van der Laan (96)
|
||||
Jay Graber (89)
|
||||
Taylor Hornby (84)
|
||||
Jonas Schnelli (71)
|
||||
Pieter Wuille (63)
|
||||
Pieter Wuille (66)
|
||||
Alfredo Garcia (59)
|
||||
Nathan Wilcox (56)
|
||||
Larry Ruane (41)
|
||||
Larry Ruane (43)
|
||||
Cory Fields (41)
|
||||
Kevin Gallagher (38)
|
||||
Cory Fields (38)
|
||||
Marco Falke (31)
|
||||
Marshall Gaucher (25)
|
||||
Matt Corallo (23)
|
||||
Alfredo Garcia (19)
|
||||
Matt Corallo (25)
|
||||
Dimitris Apostolou (21)
|
||||
Jonathan "Duke" Leto (17)
|
||||
Luke Dashjr (16)
|
||||
syd (15)
|
||||
avnish (14)
|
||||
Jorge Timón (14)
|
||||
Dimitris Apostolou (13)
|
||||
Gregory Maxwell (12)
|
||||
Paige Peterson (11)
|
||||
Ariel Gabizon (11)
|
||||
practicalswift (9)
|
||||
nomnombtc (9)
|
||||
Benjamin Winston (9)
|
||||
kozyilmaz (8)
|
||||
fanquake (8)
|
||||
Peter Todd (8)
|
||||
Gregory Maxwell (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)
|
||||
ca333 (5)
|
||||
Suhas Daftuar (5)
|
||||
Karl-Johan Alm (5)
|
||||
Philip Kaufmann (5)
|
||||
Patrick Strateman (5)
|
||||
Johnathan Corgan (5)
|
||||
Gavin Andresen (5)
|
||||
Gareth Davies (5)
|
||||
Alex Morcos (5)
|
||||
sandakersmann (4)
|
||||
gladcow (4)
|
||||
WO (4)
|
||||
Philip Kaufmann (4)
|
||||
Pavel Janík (4)
|
||||
Patrick Strateman (4)
|
||||
João Barbosa (4)
|
||||
Jeremy Rubin (4)
|
||||
James O'Beirne (4)
|
||||
George Tankersley (4)
|
||||
Daniel Kraft (4)
|
||||
zancas (3)
|
||||
lpescher (3)
|
||||
ca333 (3)
|
||||
Per Grön (3)
|
||||
Patick Strateman (3)
|
||||
NikVolf (3)
|
||||
MeshCollider (3)
|
||||
Jim Posen (3)
|
||||
Jason Davies (3)
|
||||
James O'Beirne (3)
|
||||
Gavin Andresen (3)
|
||||
Alfie John (3)
|
||||
rofl0r (2)
|
||||
mruddy (2)
|
||||
|
@ -76,7 +83,10 @@ Kaz Wesley (2)
|
|||
Joe Turgeon (2)
|
||||
Jack Gavigan (2)
|
||||
ITH4Coinomia (2)
|
||||
Evan Klitzke (2)
|
||||
Dagur Valberg Johannsson (2)
|
||||
Casey Rodarmor (2)
|
||||
Carl Dong (2)
|
||||
Bryant Eisenbach (2)
|
||||
Brad Miller (2)
|
||||
Bjorn Hjortsberg (2)
|
||||
|
@ -85,7 +95,8 @@ Alex Tsankov (2)
|
|||
zathras-crypto (1)
|
||||
unsystemizer (1)
|
||||
tpantin (1)
|
||||
practicalswift (1)
|
||||
ptschip (1)
|
||||
murrayn (1)
|
||||
mrbandrews (1)
|
||||
kazcw (1)
|
||||
jeff-liang (1)
|
||||
|
@ -98,7 +109,9 @@ daniel (1)
|
|||
codetriage-readme-bot (1)
|
||||
calebogden (1)
|
||||
ayleph (1)
|
||||
avnish98 (1)
|
||||
Za Wilcox (1)
|
||||
Yuri Zhykin (1)
|
||||
William M Peaster (1)
|
||||
Ulrich Kempken (1)
|
||||
Tom Ritter (1)
|
||||
|
@ -114,6 +127,7 @@ Peter Pratscher (1)
|
|||
Pedro Branco (1)
|
||||
Paul Georgiou (1)
|
||||
Paragon Initiative Enterprises, LLC (1)
|
||||
NicolasDorier (1)
|
||||
Nicolas DORIER (1)
|
||||
Nathaniel Mahieu (1)
|
||||
Murilo Santana (1)
|
||||
|
@ -122,12 +136,12 @@ Maxwell Gubler (1)
|
|||
Matt Quinn (1)
|
||||
Mark Friedenbach (1)
|
||||
Louis Nyffenegger (1)
|
||||
LitecoinZ (1)
|
||||
Leo Arias (1)
|
||||
Lauda (1)
|
||||
Lars-Magnus Skog (1)
|
||||
Kevin Pan (1)
|
||||
Jonas Nick (1)
|
||||
Jeremy Rubin (1)
|
||||
Jeffrey Walton (1)
|
||||
Jainan-Tandel (1)
|
||||
Ian T (1)
|
||||
|
@ -141,10 +155,9 @@ Ethan Heilman (1)
|
|||
Eran Tromer (1)
|
||||
Denis Lukianov (1)
|
||||
David Llop (1)
|
||||
Dagur Valberg Johannsson (1)
|
||||
Chun Kuan Lee (1)
|
||||
Christian von Roques (1)
|
||||
Chirag Davé (1)
|
||||
Carl Dong (1)
|
||||
Cameron Boehmer (1)
|
||||
Bryan Stitt (1)
|
||||
Bruno Arueira (1)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
|
||||
.TH ZCASH-CLI "1" "April 2020" "zcash-cli v2.1.2-rc1" "User Commands"
|
||||
.TH ZCASH-CLI "1" "April 2020" "zcash-cli v2.1.2" "User Commands"
|
||||
.SH NAME
|
||||
zcash-cli \- manual page for zcash-cli v2.1.2-rc1
|
||||
zcash-cli \- manual page for zcash-cli v2.1.2
|
||||
.SH DESCRIPTION
|
||||
Zcash RPC client version v2.1.2\-rc1
|
||||
Zcash RPC client version v2.1.2
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
|
||||
.TH ZCASH-TX "1" "April 2020" "zcash-tx v2.1.2-rc1" "User Commands"
|
||||
.TH ZCASH-TX "1" "April 2020" "zcash-tx v2.1.2" "User Commands"
|
||||
.SH NAME
|
||||
zcash-tx \- manual page for zcash-tx v2.1.2-rc1
|
||||
zcash-tx \- manual page for zcash-tx v2.1.2
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v2.1.2\-rc1
|
||||
Zcash zcash\-tx utility version v2.1.2
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
|
||||
.TH ZCASHD "1" "April 2020" "zcashd v2.1.2-rc1" "User Commands"
|
||||
.TH ZCASHD "1" "April 2020" "zcashd v2.1.2" "User Commands"
|
||||
.SH NAME
|
||||
zcashd \- manual page for zcashd v2.1.2-rc1
|
||||
zcashd \- manual page for zcashd v2.1.2
|
||||
.SH DESCRIPTION
|
||||
Zcash Daemon version v2.1.2\-rc1
|
||||
Zcash Daemon version v2.1.2
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
|
|
@ -4,185 +4,3 @@ release-notes at release time)
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
Network Upgrade 3: Heartwood
|
||||
----------------------------
|
||||
|
||||
The code preparations for the Heartwood network upgrade are finished and
|
||||
included in this release. The following ZIPs are being deployed:
|
||||
|
||||
- [ZIP 213: Shielded Coinbase](https://zips.z.cash/zip-0213)
|
||||
- [ZIP 221: FlyClient - Consensus-Layer Changes](https://zips.z.cash/zip-0221)
|
||||
|
||||
Heartwood will activate on testnet at height 903800, and can also be activated
|
||||
at a specific height in regtest mode by setting the config option
|
||||
`-nuparams=f5b9230b:HEIGHT`.
|
||||
|
||||
As a reminder, because the Heartwood activation height is not yet specified for
|
||||
mainnet, version 2.1.2 will behave similarly as other pre-Heartwood releases
|
||||
even after a future activation of Heartwood on the network. Upgrading from 2.1.2
|
||||
will be required in order to follow the Heartwood network upgrade on mainnet.
|
||||
|
||||
See [ZIP 250](https://zips.z.cash/zip-0250) for additional information about the
|
||||
deployment process for Heartwood.
|
||||
|
||||
### Mining to Sapling addresses
|
||||
|
||||
Miners and mining pools that wish to test the new "shielded coinbase" support on
|
||||
the Heartwood testnet can generate a new Sapling address with `z_getnewaddress`,
|
||||
add the config option `mineraddress=SAPLING_ADDRESS` to their `zcash.conf` file,
|
||||
and then restart their `zcashd` node. `getblocktemplate` will then return
|
||||
coinbase transactions containing a shielded miner output.
|
||||
|
||||
Note that `mineraddress` should only be set to a Sapling address after the
|
||||
Heartwood network upgrade has activated; setting a Sapling address prior to
|
||||
Heartwood activation will cause `getblocktemplate` to return block templates
|
||||
that cannot be mined.
|
||||
|
||||
Sapling viewing keys support
|
||||
----------------------------
|
||||
|
||||
Support for Sapling viewing keys (specifically, Sapling extended full viewing
|
||||
keys, as described in [ZIP 32](https://zips.z.cash/zip-0032)), has been added to
|
||||
the wallet. Nodes will track both sent and received transactions for any Sapling
|
||||
addresses associated with the imported Sapling viewing keys.
|
||||
|
||||
- Use the `z_exportviewingkey` RPC method to obtain the viewing key for a
|
||||
shielded address in a node's wallet. For Sapling addresses, these always begin
|
||||
with "zxviews" (or "zxviewtestsapling" for testnet addresses).
|
||||
|
||||
- Use `z_importviewingkey` to import a viewing key into another node. Imported
|
||||
Sapling viewing keys will be stored in the wallet, and remembered across
|
||||
restarts.
|
||||
|
||||
- `z_getbalance` will show the balance of a Sapling address associated with an
|
||||
imported Sapling viewing key. Balances for Sapling viewing keys will be
|
||||
included in the output of `z_gettotalbalance` when the `includeWatchonly`
|
||||
parameter is set to `true`.
|
||||
|
||||
- RPC methods for viewing shielded transaction information (such as
|
||||
`z_listreceivedbyaddress`) will return information for Sapling addresses
|
||||
associated with imported Sapling viewing keys.
|
||||
|
||||
Details about what information can be viewed with these Sapling viewing keys,
|
||||
and what guarantees you have about that information, can be found in
|
||||
[ZIP 310](https://zips.z.cash/zip-0310).
|
||||
|
||||
Removal of time adjustment and the -maxtimeadjustment= option
|
||||
-------------------------------------------------------------
|
||||
|
||||
Prior to v2.1.1-1, `zcashd` would adjust the local time that it used by up
|
||||
to 70 minutes, according to a median of the times sent by the first 200 peers
|
||||
to connect to it. This mechanism was inherently insecure, since an adversary
|
||||
making multiple connections to the node could effectively control its time
|
||||
within that +/- 70 minute window (this is called a "timejacking attack").
|
||||
|
||||
In the v2.1.1-1 security release, in addition to other mitigations for
|
||||
timejacking attacks, the maximum time adjustment was set to zero by default.
|
||||
This effectively disabled time adjustment; however, a `-maxtimeadjustment=`
|
||||
option was provided to override this default.
|
||||
|
||||
As a simplification the time adjustment code has now been completely removed,
|
||||
together with `-maxtimeadjustment=`. Node operators should instead ensure that
|
||||
their local time is set reasonably accurately.
|
||||
|
||||
If it appears that the node has a significantly different time than its peers,
|
||||
a warning will still be logged and indicated on the metrics screen if enabled.
|
||||
|
||||
View shielded information in wallet transactions
|
||||
------------------------------------------------
|
||||
|
||||
In previous `zcashd` versions, to obtain information about shielded transactions
|
||||
you would use either the `z_listreceivedbyaddress` RPC method (which returns all
|
||||
notes received by an address) or `z_listunspent` (which returns unspent notes,
|
||||
optionally filtered by addresses). There were no RPC methods that directly
|
||||
returned details about spends, or anything equivalent to the `gettransaction`
|
||||
method (which returns transparent information about in-wallet transactions).
|
||||
|
||||
This release introduces a new RPC method `z_viewtransaction` to fill that gap.
|
||||
Given the ID of a transaction in the wallet, it decrypts the transaction and
|
||||
returns detailed shielded information for all decryptable new and spent notes,
|
||||
including:
|
||||
|
||||
- The address that each note belongs to.
|
||||
- Values in both decimal ZEC and zatoshis.
|
||||
- The ID of the transaction that each spent note was received in.
|
||||
- An `outgoing` flag on each new note, which will be `true` if the output is not
|
||||
for an address in the wallet.
|
||||
- A `memoStr` field for each new note, containing its text memo (if its memo
|
||||
field contains a valid UTF-8 string).
|
||||
|
||||
Information will be shown for any address that appears in `z_listaddresses`;
|
||||
this includes watch-only addresses linked to viewing keys imported with
|
||||
`z_importviewingkey`, as well as addresses with spending keys (both generated
|
||||
with `z_getnewaddress` and imported with `z_importkey`).
|
||||
|
||||
Better error messages for rejected transactions after network upgrades
|
||||
----------------------------------------------------------------------
|
||||
|
||||
The Zcash network upgrade process includes several features designed to protect
|
||||
users. One of these is the "consensus branch ID", which prevents transactions
|
||||
created after a network upgrade has activated from being replayed on another
|
||||
chain (that might have occurred due to, for example, a
|
||||
[friendly fork](https://electriccoin.co/blog/future-friendly-fork/)). This is
|
||||
known as "two-way replay protection", and is a core requirement by
|
||||
[various](https://blog.bitgo.com/bitgos-approach-to-handling-a-hard-fork-71e572506d7d?gi=3b80c02e027e)
|
||||
[members](https://trezor.io/support/general/hard-forks/) of the cryptocurrency
|
||||
ecosystem for supporting "hard fork"-style changes like our network upgrades.
|
||||
|
||||
One downside of the way replay protection is implemented in Zcash, is that there
|
||||
is no visible difference between a transaction being rejected by a `zcashd` node
|
||||
due to targeting a different branch, and being rejected due to an invalid
|
||||
signature. This has caused issues in the past when a user had not upgraded their
|
||||
wallet software, or when a wallet lacked support for the new network upgrade's
|
||||
consensus branch ID; the resulting error messages when users tried to create
|
||||
transactions were non-intuitive, and particularly cryptic for transparent
|
||||
transactions.
|
||||
|
||||
Starting from this release, `zcashd` nodes will re-verify invalid transparent
|
||||
and Sprout signatures against the consensus branch ID from before the most
|
||||
recent network upgrade. If the signature then becomes valid, the transaction
|
||||
will be rejected with the error message `old-consensus-branch-id`. This error
|
||||
can be handled specifically by wallet providers to inform the user that they
|
||||
need to upgrade their wallet software.
|
||||
|
||||
Wallet software can also automatically obtain the latest consensus branch ID
|
||||
from their (up-to-date) `zcashd` node, by calling `getblockchaininfo` and
|
||||
looking at `{'consensus': {'nextblock': BRANCH_ID, ...}, ...}` in the JSON
|
||||
output.
|
||||
|
||||
Expired transactions notifications
|
||||
----------------------------------
|
||||
|
||||
A new config option `-txexpirynotify` has been added that will cause `zcashd` to
|
||||
execute a command when a transaction in the mempool expires. This can be used to
|
||||
notify external systems about transaction expiry, similar to the existing
|
||||
`-blocknotify` config option that notifies when the chain tip changes.
|
||||
|
||||
RPC methods
|
||||
-----------
|
||||
|
||||
- The `z_importkey` and `z_importviewingkey` RPC methods now return the type of
|
||||
the imported spending or viewing key (`sprout` or `sapling`), and the
|
||||
corresponding payment address.
|
||||
|
||||
- Negative heights are now permitted in `getblock` and `getblockhash`, to select
|
||||
blocks backwards from the chain tip. A height of `-1` corresponds to the last
|
||||
known valid block on the main chain.
|
||||
|
||||
- A new RPC method `getexperimentalfeatures` returns the list of enabled
|
||||
experimental features.
|
||||
|
||||
Build system
|
||||
------------
|
||||
|
||||
- The `--enable-lcov`, `--disable-tests`, and `--disable-mining` flags for
|
||||
`zcutil/build.sh` have been removed. You can pass these flags instead by using
|
||||
the `CONFIGURE_FLAGS` environment variable. For example, to enable coverage
|
||||
instrumentation (thus enabling "make cov" to work), call:
|
||||
|
||||
```
|
||||
CONFIGURE_FLAGS="--enable-lcov --disable-hardening" ./zcutil/build.sh
|
||||
```
|
||||
|
||||
- The build system no longer defaults to verbose output. You can re-enable
|
||||
verbose output with `./zcutil/build.sh V=1`
|
||||
|
|
|
@ -0,0 +1,623 @@
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
Network Upgrade 3: Heartwood
|
||||
----------------------------
|
||||
|
||||
The code preparations for the Heartwood network upgrade are finished and
|
||||
included in this release. The following ZIPs are being deployed:
|
||||
|
||||
- [ZIP 213: Shielded Coinbase](https://zips.z.cash/zip-0213)
|
||||
- [ZIP 221: FlyClient - Consensus-Layer Changes](https://zips.z.cash/zip-0221)
|
||||
|
||||
Heartwood will activate on testnet at height 903800, and can also be activated
|
||||
at a specific height in regtest mode by setting the config option
|
||||
`-nuparams=f5b9230b:HEIGHT`.
|
||||
|
||||
As a reminder, because the Heartwood activation height is not yet specified for
|
||||
mainnet, version 2.1.2 will behave similarly as other pre-Heartwood releases
|
||||
even after a future activation of Heartwood on the network. Upgrading from 2.1.2
|
||||
will be required in order to follow the Heartwood network upgrade on mainnet.
|
||||
|
||||
See [ZIP 250](https://zips.z.cash/zip-0250) for additional information about the
|
||||
deployment process for Heartwood.
|
||||
|
||||
### Mining to Sapling addresses
|
||||
|
||||
Miners and mining pools that wish to test the new "shielded coinbase" support on
|
||||
the Heartwood testnet can generate a new Sapling address with `z_getnewaddress`,
|
||||
add the config option `mineraddress=SAPLING_ADDRESS` to their `zcash.conf` file,
|
||||
and then restart their `zcashd` node. `getblocktemplate` will then return
|
||||
coinbase transactions containing a shielded miner output.
|
||||
|
||||
Note that `mineraddress` should only be set to a Sapling address after the
|
||||
Heartwood network upgrade has activated; setting a Sapling address prior to
|
||||
Heartwood activation will cause `getblocktemplate` to return block templates
|
||||
that cannot be mined.
|
||||
|
||||
Sapling viewing keys support
|
||||
----------------------------
|
||||
|
||||
Support for Sapling viewing keys (specifically, Sapling extended full viewing
|
||||
keys, as described in [ZIP 32](https://zips.z.cash/zip-0032)), has been added to
|
||||
the wallet. Nodes will track both sent and received transactions for any Sapling
|
||||
addresses associated with the imported Sapling viewing keys.
|
||||
|
||||
- Use the `z_exportviewingkey` RPC method to obtain the viewing key for a
|
||||
shielded address in a node's wallet. For Sapling addresses, these always begin
|
||||
with "zxviews" (or "zxviewtestsapling" for testnet addresses).
|
||||
|
||||
- Use `z_importviewingkey` to import a viewing key into another node. Imported
|
||||
Sapling viewing keys will be stored in the wallet, and remembered across
|
||||
restarts.
|
||||
|
||||
- `z_getbalance` will show the balance of a Sapling address associated with an
|
||||
imported Sapling viewing key. Balances for Sapling viewing keys will be
|
||||
included in the output of `z_gettotalbalance` when the `includeWatchonly`
|
||||
parameter is set to `true`.
|
||||
|
||||
- RPC methods for viewing shielded transaction information (such as
|
||||
`z_listreceivedbyaddress`) will return information for Sapling addresses
|
||||
associated with imported Sapling viewing keys.
|
||||
|
||||
Details about what information can be viewed with these Sapling viewing keys,
|
||||
and what guarantees you have about that information, can be found in
|
||||
[ZIP 310](https://zips.z.cash/zip-0310).
|
||||
|
||||
Removal of time adjustment and the -maxtimeadjustment= option
|
||||
-------------------------------------------------------------
|
||||
|
||||
Prior to v2.1.1-1, `zcashd` would adjust the local time that it used by up
|
||||
to 70 minutes, according to a median of the times sent by the first 200 peers
|
||||
to connect to it. This mechanism was inherently insecure, since an adversary
|
||||
making multiple connections to the node could effectively control its time
|
||||
within that +/- 70 minute window (this is called a "timejacking attack").
|
||||
|
||||
In the v2.1.1-1 security release, in addition to other mitigations for
|
||||
timejacking attacks, the maximum time adjustment was set to zero by default.
|
||||
This effectively disabled time adjustment; however, a `-maxtimeadjustment=`
|
||||
option was provided to override this default.
|
||||
|
||||
As a simplification the time adjustment code has now been completely removed,
|
||||
together with `-maxtimeadjustment=`. Node operators should instead ensure that
|
||||
their local time is set reasonably accurately.
|
||||
|
||||
If it appears that the node has a significantly different time than its peers,
|
||||
a warning will still be logged and indicated on the metrics screen if enabled.
|
||||
|
||||
View shielded information in wallet transactions
|
||||
------------------------------------------------
|
||||
|
||||
In previous `zcashd` versions, to obtain information about shielded transactions
|
||||
you would use either the `z_listreceivedbyaddress` RPC method (which returns all
|
||||
notes received by an address) or `z_listunspent` (which returns unspent notes,
|
||||
optionally filtered by addresses). There were no RPC methods that directly
|
||||
returned details about spends, or anything equivalent to the `gettransaction`
|
||||
method (which returns transparent information about in-wallet transactions).
|
||||
|
||||
This release introduces a new RPC method `z_viewtransaction` to fill that gap.
|
||||
Given the ID of a transaction in the wallet, it decrypts the transaction and
|
||||
returns detailed shielded information for all decryptable new and spent notes,
|
||||
including:
|
||||
|
||||
- The address that each note belongs to.
|
||||
- Values in both decimal ZEC and zatoshis.
|
||||
- The ID of the transaction that each spent note was received in.
|
||||
- An `outgoing` flag on each new note, which will be `true` if the output is not
|
||||
for an address in the wallet.
|
||||
- A `memoStr` field for each new note, containing its text memo (if its memo
|
||||
field contains a valid UTF-8 string).
|
||||
|
||||
Information will be shown for any address that appears in `z_listaddresses`;
|
||||
this includes watch-only addresses linked to viewing keys imported with
|
||||
`z_importviewingkey`, as well as addresses with spending keys (both generated
|
||||
with `z_getnewaddress` and imported with `z_importkey`).
|
||||
|
||||
Better error messages for rejected transactions after network upgrades
|
||||
----------------------------------------------------------------------
|
||||
|
||||
The Zcash network upgrade process includes several features designed to protect
|
||||
users. One of these is the "consensus branch ID", which prevents transactions
|
||||
created after a network upgrade has activated from being replayed on another
|
||||
chain (that might have occurred due to, for example, a
|
||||
[friendly fork](https://electriccoin.co/blog/future-friendly-fork/)). This is
|
||||
known as "two-way replay protection", and is a core requirement by
|
||||
[various](https://blog.bitgo.com/bitgos-approach-to-handling-a-hard-fork-71e572506d7d?gi=3b80c02e027e)
|
||||
[members](https://trezor.io/support/general/hard-forks/) of the cryptocurrency
|
||||
ecosystem for supporting "hard fork"-style changes like our network upgrades.
|
||||
|
||||
One downside of the way replay protection is implemented in Zcash, is that there
|
||||
is no visible difference between a transaction being rejected by a `zcashd` node
|
||||
due to targeting a different branch, and being rejected due to an invalid
|
||||
signature. This has caused issues in the past when a user had not upgraded their
|
||||
wallet software, or when a wallet lacked support for the new network upgrade's
|
||||
consensus branch ID; the resulting error messages when users tried to create
|
||||
transactions were non-intuitive, and particularly cryptic for transparent
|
||||
transactions.
|
||||
|
||||
Starting from this release, `zcashd` nodes will re-verify invalid transparent
|
||||
and Sprout signatures against the consensus branch ID from before the most
|
||||
recent network upgrade. If the signature then becomes valid, the transaction
|
||||
will be rejected with the error message `old-consensus-branch-id`. This error
|
||||
can be handled specifically by wallet providers to inform the user that they
|
||||
need to upgrade their wallet software.
|
||||
|
||||
Wallet software can also automatically obtain the latest consensus branch ID
|
||||
from their (up-to-date) `zcashd` node, by calling `getblockchaininfo` and
|
||||
looking at `{'consensus': {'nextblock': BRANCH_ID, ...}, ...}` in the JSON
|
||||
output.
|
||||
|
||||
Expired transactions notifications
|
||||
----------------------------------
|
||||
|
||||
A new config option `-txexpirynotify` has been added that will cause `zcashd` to
|
||||
execute a command when a transaction in the mempool expires. This can be used to
|
||||
notify external systems about transaction expiry, similar to the existing
|
||||
`-blocknotify` config option that notifies when the chain tip changes.
|
||||
|
||||
RPC methods
|
||||
-----------
|
||||
|
||||
- The `z_importkey` and `z_importviewingkey` RPC methods now return the type of
|
||||
the imported spending or viewing key (`sprout` or `sapling`), and the
|
||||
corresponding payment address.
|
||||
|
||||
- Negative heights are now permitted in `getblock` and `getblockhash`, to select
|
||||
blocks backwards from the chain tip. A height of `-1` corresponds to the last
|
||||
known valid block on the main chain.
|
||||
|
||||
- A new RPC method `getexperimentalfeatures` returns the list of enabled
|
||||
experimental features.
|
||||
|
||||
Build system
|
||||
------------
|
||||
|
||||
- The `--enable-lcov`, `--disable-tests`, and `--disable-mining` flags for
|
||||
`zcutil/build.sh` have been removed. You can pass these flags instead by using
|
||||
the `CONFIGURE_FLAGS` environment variable. For example, to enable coverage
|
||||
instrumentation (thus enabling "make cov" to work), call:
|
||||
|
||||
```
|
||||
CONFIGURE_FLAGS="--enable-lcov --disable-hardening" ./zcutil/build.sh
|
||||
```
|
||||
|
||||
- The build system no longer defaults to verbose output. You can re-enable
|
||||
verbose output with `./zcutil/build.sh V=1`
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Alfredo Garcia (40):
|
||||
remove SignatureHash from python rpc tests
|
||||
add negative height to getblock
|
||||
allow negative index to getblockhash
|
||||
update docs
|
||||
add additional tests to rpc_wallet_z_getnewaddress
|
||||
change convention
|
||||
change regex
|
||||
Return address and type of imported key in z_importkey
|
||||
Delete travis file
|
||||
dedup decode keys and addresses
|
||||
remove unused imports
|
||||
add txexpirynotify
|
||||
fix rpx_wallet_tests
|
||||
remove debug noise from 2 gtests
|
||||
make type and size a pair in DecodeAny arguments
|
||||
add missing calls to DecodeAny
|
||||
add destination wrappers
|
||||
change tuples to classes
|
||||
change cm() to cmu() in SaplingNote class
|
||||
change the cm member of OutputDescription to cmu
|
||||
change maybe_cm to maybe_cmu
|
||||
add getexperimentalfeatures rpc call
|
||||
refactor experimental features
|
||||
make fInsightExplorer a local
|
||||
add check_node_log utility function
|
||||
remove space after new line
|
||||
move check_node_log framework test to a new file
|
||||
use check_node_log in turnstile.py
|
||||
add stop_node argument to check_node_log, use it in shieldingcoinbase
|
||||
change constructors
|
||||
minor comment fix
|
||||
preserve test semantics
|
||||
remove unused import
|
||||
multiple debug categories documentation
|
||||
return address info in z_importviewingkey
|
||||
add expected address check to tests
|
||||
change unclear wording in z_import calls address returned
|
||||
Lock with cs_main inside gtests that call chainActive.Height()
|
||||
add -lightwalletd experimental option
|
||||
compute more structures in mempool DynamicMemoryUsage
|
||||
|
||||
Carl Dong (1):
|
||||
autoconf: Sane --enable-debug defaults.
|
||||
|
||||
Chun Kuan Lee (1):
|
||||
Reset default -g -O2 flags when enable debug
|
||||
|
||||
Cory Fields (3):
|
||||
bench: switch to std::chrono for time measurements
|
||||
bench: prefer a steady clock if the resolution is no worse
|
||||
build: Split hardening/fPIE options out
|
||||
|
||||
Dagur Valberg Johannsson (1):
|
||||
Improve z_getnewaddress tests
|
||||
|
||||
Daira Hopwood (25):
|
||||
Add missing cases for Blossom in ContextualCheckBlock tests.
|
||||
Revert "Add -maxtimeadjustment with default of 0 instead of the 4200 seconds used in Bitcoin Core."
|
||||
Remove uses of GetTimeOffset().
|
||||
Replace time adjustment with warning only.
|
||||
Update GetAdjustedTime() to GetTime().
|
||||
Sort entries in zcash_gtest_SOURCES (other than test_tautology which is deliberately first).
|
||||
Add release notes for removal of -maxtimeadjustment.
|
||||
Resolve a race condition on `chainActive.Tip()` in initialization (introduced in #4379).
|
||||
Setting a std::atomic variable in a signal handler only has defined behaviour if it is lock-free.
|
||||
Add comment to `MilliSleep` documenting that it is an interruption point.
|
||||
Exit init early if we request shutdown before having loaded the genesis block.
|
||||
Fix typos/minor errors in comments, and wrap some lines.
|
||||
Avoid a theoretical possibility of division-by-zero introduced in #4368.
|
||||
Make the memo a mandatory argument for SendManyRecipient
|
||||
Add a `zcutil/clean.sh` script that works (unlike `make clean`).
|
||||
Split into clean.sh and distclean.sh.
|
||||
Minor refactoring.
|
||||
Executables end with .exe on Windows.
|
||||
Avoid spurious error messages when cleaning up directories.
|
||||
Address review comments.
|
||||
Use `SA_RESTART` in `sa_flags` when setting up signal handlers.
|
||||
Remove a redundant `rm -f` command.
|
||||
Refer to altitude instead of height for history tree peaks
|
||||
Address review comments: `target` and `depends/work` should be cleaned by clean.sh.
|
||||
Clarify definition of NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD.
|
||||
|
||||
Dimitris Apostolou (8):
|
||||
Fix Boost compilation on macOS
|
||||
Remove libsnark preprocessor flags
|
||||
Fix typo
|
||||
End diff with LF character
|
||||
Remove stale comment
|
||||
Point at support community on Discord
|
||||
Update documentation info
|
||||
Fix typos
|
||||
|
||||
Eirik Ogilvie-Wigley (2):
|
||||
Include shielded transaction data when calculating RecursiveDynamicUsage of transactions
|
||||
Account for malloc overhead
|
||||
|
||||
Evan Klitzke (2):
|
||||
Add --with-sanitizers option to configure
|
||||
Make --enable-debug to pick better options
|
||||
|
||||
Gavin Andresen (2):
|
||||
Simple benchmarking framework
|
||||
Support very-fast-running benchmarks
|
||||
|
||||
Gregory Maxwell (4):
|
||||
Avoid integer division in the benchmark inner-most loop.
|
||||
Move GetWarnings and related globals to util.
|
||||
Eliminate data races for strMiscWarning and fLargeWork*Found.
|
||||
Move GetWarnings() into its own file.
|
||||
|
||||
Jack Grigg (95):
|
||||
Revert "Add configure flags for enabling ASan/UBSan and TSan"
|
||||
configure: Re-introduce additional sanitizer flags
|
||||
RPC: z_viewtransaction
|
||||
depends: Add utfcpp to dependencies
|
||||
RPC: Display valid UTF-8 memos in z_viewtransaction
|
||||
RPC: Use OutgoingViewingKeys to recover non-wallet Sapling outputs
|
||||
test: Check z_viewtransaction output in wallet_listreceived RPC test
|
||||
Benchmark Zcash verification operations
|
||||
Simulate worst-case block verification
|
||||
zcutil/build.sh: Remove lcov and mining flags
|
||||
configure: Change default Proton to match build.sh
|
||||
zcutil/build.sh: Turn off verbosity by default
|
||||
Make -fwrapv conditional on --enable-debug=no
|
||||
Move default -g flag into configure.ac behind --enable-debug=no
|
||||
Add build system changes to release notes
|
||||
test: Hard-code hex memo in wallet_listreceived for Python3 compatibility
|
||||
test: Fix pyflakes warnings
|
||||
bench: "Use" result of crypto_sign_verify_detached
|
||||
Add test vectors for small-order Ed25519 pubkeys
|
||||
Patch libsodium 1.0.15 pubkey validation onto 1.0.18
|
||||
Patch libsodium 1.0.15 signature validation onto 1.0.18
|
||||
Add release notes for z_viewtransaction
|
||||
Deduplicate some wallet keystore logic
|
||||
Move Sprout and Sapling address logic into separate files
|
||||
Move ZIP 32 classes inside zcash/Address.hpp
|
||||
SaplingFullViewingKey -> SaplingExtendedFullViewingKey in keystore maps
|
||||
Remove default address parameter from Sapling keystore methods
|
||||
test: Add test for CBasicKeyStore::AddSaplingFullViewingKey
|
||||
Add encoding and decoding for Sapling extended full viewing keys
|
||||
Add Sapling ExtFVK support to z_exportviewingkey
|
||||
Add in-memory Sapling ExtFVK support to z_importviewingkey
|
||||
Store imported Sapling ExtFVKs in wallet database
|
||||
OutputDescriptionInfo::Build()
|
||||
ZIP 213 consensus rules
|
||||
Add support for Sapling addresses in -mineraddress
|
||||
wallet: Include coinbase txs in Sapling note selection
|
||||
Add regtest-only -nurejectoldversions option
|
||||
test: Minor tweaks to comments in LibsodiumPubkeyValidation
|
||||
test: RPC test for shielded coinbase
|
||||
Adjust comments on ZIP 213 logic
|
||||
Use DoS level constants and parameters for ZIP 213 rejections
|
||||
test: Check that shielded coinbase can be spent to a t-address
|
||||
init: Inform on error that -mineraddress must be Sapling or transparent
|
||||
test: Explicitly check Sapling consensus rules apply to shielded coinbase
|
||||
Migrate GitHub issue template to new format
|
||||
Add GitHub issue templates for feature requests and UX reports
|
||||
depends: Remove comments from libsodium signature validation patch
|
||||
Bring in librustzcash crate
|
||||
Bring in Cargo.lock from librustzcash repo
|
||||
rust: Pin toolchain to 1.36.0, matching depends system
|
||||
rust: Adjust Cargo.toml so that it compiles
|
||||
Update .gitignore for Rust code
|
||||
Replace librustzcash from depends system with src/rust
|
||||
Move root of Rust crate into repo root
|
||||
depends: Remove unused vendored crates
|
||||
Fix Rust static library linking for Windows builds
|
||||
test: Rename FakeCoinsViewDB -> ValidationFakeCoinsViewDB
|
||||
test: Modify ValidationFakeCoinsViewDB to optionally contain a coin
|
||||
test: Add missing parameter selection to Validation.ReceivedBlockTransactions
|
||||
mempool: Check transparent signatures against the previous network upgrade
|
||||
mempool: Remove duplicate consensusBranchId from AcceptToMemoryPool
|
||||
test: Add Overwinter and Sapling support to GetValidTransaction() helper
|
||||
consensus: Check JoinSplit signatures against the previous network upgrade
|
||||
depends: Use Rust 1.42.0 toolchain
|
||||
Bring in updates to librustzcash crate
|
||||
depends: Define Rust target in a single location
|
||||
depends: Hard-code Rust target for all Darwin hosts
|
||||
Add ZIP 221 logic to block index
|
||||
Add ZIP 221 support to miner and getblocktemplate
|
||||
Implement ZIP 221 consensus rules
|
||||
Return the correct root from librustzcash_mmr_{append, delete}
|
||||
Use a C array for HistoryEntry instead of std::array
|
||||
test: Verify ZIP 221 logic against reference implementation
|
||||
build: Move cargo arguments into RUST_BUILD_OPTS
|
||||
build: Correctly remove generated files from .cargo
|
||||
test: Build Rust tests as part of qa/zcash/full_test_suite.py
|
||||
build: Connect cargo verbosity to make verbosity
|
||||
test: Assert that GetValidTransaction supports the given branch ID
|
||||
Comment tweaks and cleanups
|
||||
test: Add an extra assertion to feature_zip221.py
|
||||
Remove unnecessary else case in CCoinsViewCache::PreloadHistoryTree
|
||||
Improve documentation of CCoinsViewCache::PreloadHistoryTree
|
||||
Truncate HistoryCache.appends correctly for zero-indexed entries
|
||||
Comment clarifications and fixes
|
||||
Make peak_pos zero-indexed in CCoinsViewCache::PreloadHistoryTree
|
||||
test: Ignore timestamps in addressindex checks
|
||||
test: Add a second Sapling note to WalletTests.ClearNoteWitnessCache
|
||||
test: Run Equihash test vectors on both C++ and Rust validators
|
||||
Pass the block height through to CheckEquihashSolution()
|
||||
consensus: From Heartwood activation, use Rust Equihash validator
|
||||
zcutil/make-release.py: Fix to run with Python 3
|
||||
zcutil/make-release.py: Check for release dependencies
|
||||
Update release notes for v2.1.2
|
||||
zcutil/release-notes.py: Add Python 3 execution header
|
||||
Set hashFinalSaplingRoot and hashChainHistoryRoot in AddToBlockIndex
|
||||
|
||||
James O'Beirne (1):
|
||||
Add basic coverage reporting for RPC tests
|
||||
|
||||
Jeremy Rubin (3):
|
||||
Add Basic CheckQueue Benchmark
|
||||
Address ryanofsky feedback on CCheckQueue benchmarks. Eliminated magic numbers, fixed scoping of vectors (and memory movement component of benchmark).
|
||||
Add prevector destructor benchmark
|
||||
|
||||
Karl-Johan Alm (1):
|
||||
Refactoring: Removed using namespace <xxx> from bench/ and test/ source files.
|
||||
|
||||
Larry Ruane (2):
|
||||
zcutil/fetch-params.sh unneeded --testnet arg should warn user
|
||||
util: CBufferedFile fixes
|
||||
|
||||
LitecoinZ (1):
|
||||
Fix issue #3772
|
||||
|
||||
Marshall Gaucher (1):
|
||||
Update qa/rpc-tests/addressindex.py
|
||||
|
||||
Matt Corallo (2):
|
||||
Remove countMaskInv caching in bench framework
|
||||
Require a steady clock for bench with at least micro precision
|
||||
|
||||
MeshCollider (3):
|
||||
Fix race for mapBlockIndex in AppInitMain
|
||||
Make fReindex atomic to avoid race
|
||||
Consistent parameter names in txdb.h
|
||||
|
||||
NicolasDorier (1):
|
||||
[qa] assert_start_raises_init_error
|
||||
|
||||
NikVolf (3):
|
||||
push/pop history with tests
|
||||
update chain history in ConnectBlock and DisconnectBlock
|
||||
use iterative platform-independent log2i
|
||||
|
||||
Patrick Strateman (1):
|
||||
Acquire lock to check for genesis block.
|
||||
|
||||
Pavel Janík (3):
|
||||
Rewrite help texts for features enabled by default.
|
||||
Ignore bench_bitcoin binary.
|
||||
Prevent warning: variable 'x' is uninitialized
|
||||
|
||||
Philip Kaufmann (1):
|
||||
[Trivial] ensure minimal header conventions
|
||||
|
||||
Pieter Wuille (3):
|
||||
Benchmark rolling bloom filter
|
||||
Introduce FastRandomContext::randbool()
|
||||
FastRandom benchmark
|
||||
|
||||
Sean Bowe (15):
|
||||
Initialize ThreadNotifyWallets before additional blocks are imported.
|
||||
Handle case of fresh wallets in ThreadNotifyWallets.
|
||||
Clarify comment
|
||||
Add librustzcash tests to the full test suite.
|
||||
Add release profile optimizations and turn off panic unwinding in librustzcash.
|
||||
Minor typo fixes.
|
||||
Simplification for MacOS in rust-test.
|
||||
make-release.py: Versioning changes for 2.1.2-rc1.
|
||||
make-release.py: Updated manpages for 2.1.2-rc1.
|
||||
make-release.py: Updated release notes and changelog for 2.1.2-rc1.
|
||||
Add Rust resources to distribution tarball.
|
||||
Add test_random.h to distribution tarball.
|
||||
Set Heartwood activation height for testnet to 903800.
|
||||
make-release.py: Versioning changes for 2.1.2.
|
||||
make-release.py: Updated manpages for 2.1.2.
|
||||
|
||||
Taylor Hornby (15):
|
||||
Make the equihash validator macro set its output to false when throwing an exception.
|
||||
Add test for unused bits in the Equihash solution encoding.
|
||||
Add Python script for checking if dependencies have updates.
|
||||
Add GitHub API credential
|
||||
Update list of dependencies to check
|
||||
Wrap long lines
|
||||
Cache releases to reduce network usage and improve performance
|
||||
Make updatecheck.py compatible with python2
|
||||
Have make clean delete temporary AFL build directory
|
||||
Add AFL build directory to .gitignore
|
||||
Have make clean delete AFL output directories.
|
||||
Fix bug in updatecheck.py and add utfcpp to its dependency list
|
||||
Fix typo in updatecheck.py
|
||||
Update updatecheck.py with the new Rust dependencies and improve the error message in case the untracked dependency list becomes out of date.
|
||||
Fix undefined behavior in CScriptNum
|
||||
|
||||
Wladimir J. van der Laan (7):
|
||||
bench: Add crypto hash benchmarks
|
||||
Kill insecure_random and associated global state
|
||||
bench: Fix subtle counting issue when rescaling iteration count
|
||||
bench: Add support for measuring CPU cycles
|
||||
bench: Fix initialization order in registration
|
||||
util: Don't set strMiscWarning on every exception
|
||||
test_framework: detect failure of bitcoind startup
|
||||
|
||||
Yuri Zhykin (1):
|
||||
bench: Added base58 encoding/decoding benchmarks
|
||||
|
||||
avnish (14):
|
||||
changed block_test to BlockTests
|
||||
changed test names from _ to CamelCase
|
||||
changed header_size_is_expected to HeaderSizeIsExpected
|
||||
changed "equihash_tests" to EquihashTests
|
||||
changed founders_reward_test to FoundersRewardTest
|
||||
changes tests to camelcase
|
||||
chnged keystore_tests to KeystoreTests
|
||||
changed libzcash_utils to LibzcashUtils
|
||||
changed test to CamelCase
|
||||
changed test to CamelCase
|
||||
changed test to CamelCase
|
||||
changed seven_eq_seven to SevenEqSeven
|
||||
changed txid_tests to TxidTests
|
||||
changed wallet_zkeys_test to WalletZkeysTest
|
||||
|
||||
avnish98 (1):
|
||||
requested changes are rectified
|
||||
|
||||
ca333 (2):
|
||||
update libsodium to v1.0.18
|
||||
fix dead openssl download path
|
||||
|
||||
gladcow (4):
|
||||
Show reindex state in metrics
|
||||
Use processed file size as progress in metrics during reindex
|
||||
Byte sizes format
|
||||
Move reindex progress globals to metrics.h/cpp
|
||||
|
||||
Marshall Gaucher (74):
|
||||
update /usr/bin/env; fix print conventions
|
||||
update test_framework modules
|
||||
Update rpc-test/test_framework to Py3 convention,modules,encoding
|
||||
Update ignored testScriptsExt to Python3
|
||||
Update python3 env path, remove python 2.7 assert
|
||||
Update hexlify for encoding, update to py3 io module
|
||||
Update py3 env path, remove py2 assert
|
||||
Update py2 conventions to py3, remove py2 env and assert
|
||||
Update py2 conventions to py3, update Decimal calls
|
||||
Update py2 env path, remove py2 assert
|
||||
Update py2 env path, remove py2 assert
|
||||
Update py2 env path, remove py2 assert, update filter to return list for py3
|
||||
Update py2 env path, remove py2 assert, update http module and assert encoding
|
||||
Update cmp to py3 functions, update map return to list for py3
|
||||
Standard py2 to py3 updates
|
||||
Update py2 modules to py3, update encoding to be py3 compatible
|
||||
Update to py3 conventions, update decimal calls to be consistent
|
||||
Update to py3 conventions, update filter to return list
|
||||
update to py3 conventions, update range to return list for py3
|
||||
update to py3 convention, update execfile to py3 call
|
||||
update to py3 conventions, update cmp to be py3 compatible, update map to return list for py3
|
||||
update to py3 conventions, preserve ipv6 patch
|
||||
update str cast to prevent address assert issues
|
||||
clean up binascii call
|
||||
Add keyerror execption
|
||||
update to py3 env path
|
||||
update to py3 conventions, update functions to be upstream consistent
|
||||
update to py3 conventions, clean up code to be upstream consistent
|
||||
update to py3 encodings
|
||||
update encoding, decoding, serialize funcs for py3
|
||||
Update type to be decimal
|
||||
update to py3 conventions, BUG with last assert_equal
|
||||
Update io modules for py3, ISSUE with create_transaction function
|
||||
Update to py3, ISSUE with encoding
|
||||
Update to py3, ISSUE with encoding
|
||||
Update to py3, ISSUE with encoding in create_block
|
||||
Update to py3, ISSUE with encoding in create_block
|
||||
Clean up code not needed from upstream
|
||||
update io module, fix py3 division, and string encoding
|
||||
update remaining encoding issues, add pyblake2
|
||||
Use more meaningful assert_equal from our original codebase
|
||||
Clean up code from upstream we dont use
|
||||
fix except bug for undefined url
|
||||
Remove semi colons
|
||||
make import urlparse module consistent,httplib update to py3
|
||||
correct update to python3
|
||||
clean-up imports, keep string notation consistent, remove spacing
|
||||
clean up
|
||||
Use upstream encoding for encodeDecimal
|
||||
fix type issue
|
||||
fix initialize statements for imports
|
||||
clean up initiliaze statements from imports
|
||||
update type for decimal 0
|
||||
remove debug lines from prior commits
|
||||
clean up to minimize diff
|
||||
remove u encoding
|
||||
Fix decimal 0 issues
|
||||
Clean up import calls
|
||||
clean up
|
||||
clean up
|
||||
clean up
|
||||
fix url and port issue
|
||||
cleanups and fixing odd casting
|
||||
Update json to simplejson to remove unicode and str issue from py2 to py3
|
||||
Update py3 division
|
||||
fix pyflakes errors
|
||||
clean up conventions and whitespace
|
||||
fix string pattern issue on byte object
|
||||
update comment regarding prior py2 exception
|
||||
Fix remaining python3 conventions
|
||||
Update remaining Python3 conventions
|
||||
Updating remaining python3 conventions
|
||||
Update #! env for python3
|
||||
Update RPCs to support cross platform paths and libs
|
||||
|
||||
murrayn (1):
|
||||
Add build support for 'gprof' profiling.
|
||||
|
||||
practicalswift (8):
|
||||
build: Show enabled sanitizers in configure output
|
||||
Add -ftrapv to DEBUG_CXXFLAGS when --enable-debug is used
|
||||
Assert that what might look like a possible division by zero is actually unreachable
|
||||
Replace boost::function with std::function (C++11)
|
||||
Avoid static analyzer warnings regarding uninitialized arguments
|
||||
Restore default format state of cout after printing with std::fixed/setprecision
|
||||
Initialize recently introduced non-static class member lastCycles to zero in constructor
|
||||
Replace boost::function with std::function (C++11)
|
||||
|
||||
ptschip (1):
|
||||
Enable python tests for Native Windows
|
||||
|
||||
zancas (3):
|
||||
update comment, to correctly specify number of methods injected
|
||||
replace "virtual" with "override" in subclasses
|
||||
Remove remaining instances of boost::function
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
#define CLIENT_VERSION_MAJOR 2
|
||||
#define CLIENT_VERSION_MINOR 1
|
||||
#define CLIENT_VERSION_REVISION 2
|
||||
#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
|
||||
|
|
|
@ -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 = 798142;
|
||||
static const int APPROX_RELEASE_HEIGHT = 805837;
|
||||
static const int WEEKS_UNTIL_DEPRECATION = 16;
|
||||
static const int DEPRECATION_HEIGHT = APPROX_RELEASE_HEIGHT + (WEEKS_UNTIL_DEPRECATION * 7 * 24 * 48);
|
||||
|
||||
|
|
Loading…
Reference in New Issue