Major updates integration from all upstreams

This commit is contained in:
miketout
2018-09-18 14:33:53 -07:00
396 changed files with 25517 additions and 6854 deletions

View File

@@ -870,7 +870,7 @@ HTML_FILE_EXTENSION = .html
# standard header. Note that when using a custom header you are responsible
# for the proper inclusion of any scripts and style sheets that doxygen
# needs, which is dependent on the configuration options used.
# It is adviced to generate a default header using "doxygen -w html
# It is advised to generate a default header using "doxygen -w html
# header.html footer.html stylesheet.css YourConfigFile" and then modify
# that header. Note that the header is subject to change so you typically
# have to redo this when upgrading to a newer version of doxygen or when

View File

@@ -1,64 +1,80 @@
Zcash Contributors
==================
Jack Grigg (601)
Simon Liu (297)
Sean Bowe (193)
Daira Hopwood (102)
Wladimir J. van der Laan (71)
Jack Grigg (760)
Simon Liu (352)
Sean Bowe (263)
Daira Hopwood (110)
Jay Graber (84)
Wladimir J. van der Laan (81)
Taylor Hornby (65)
Jay Graber (61)
Nathan Wilcox (56)
Jonas Schnelli (49)
Jonas Schnelli (55)
Pieter Wuille (50)
Kevin Gallagher (38)
Cory Fields (30)
Pieter Wuille (24)
Eirik Ogilvie-Wigley (36)
Cory Fields (35)
syd (15)
Matt Corallo (13)
Paige Peterson (10)
MarcoFalke (10)
nomnombtc (9)
Paige Peterson (9)
Matt Corallo (9)
Jonathan "Duke" Leto (9)
kozyilmaz (8)
fanquake (8)
MarcoFalke (7)
Jeff Garzik (7)
Gregory Maxwell (7)
Ariel Gabizon (7)
Luke Dashjr (6)
Larry Ruane (6)
Daniel Cousens (6)
Pavel Janík (5)
Karl-Johan Alm (5)
Johnathan Corgan (5)
Gregory Maxwell (5)
Ariel Gabizon (5)
kozyilmaz (4)
Philip Kaufmann (4)
Peter Todd (4)
Patrick Strateman (4)
Karl-Johan Alm (4)
João Barbosa (4)
Jorge Timón (4)
Jeff Garzik (4)
Duke Leto (4)
David Mercer (4)
Daniel Cousens (4)
lpescher (3)
Suhas Daftuar (3)
Pavel Janík (3)
João Barbosa (3)
Per Grön (3)
Patick Strateman (3)
Jason Davies (3)
James O'Beirne (3)
Daniel Kraft (3)
Ariel (3)
Alfie John (3)
str4d (2)
rofl0r (2)
paveljanik (2)
mruddy (2)
kpcyrd (2)
ca333 (2)
aniemerg (2)
UdjinM6 (2)
Scott (2)
Robert C. Seacord (2)
Per Grön (2)
Pejvan (2)
Pavol Rusnak (2)
Pavel Vasin (2)
Matthew King (2)
Kaz Wesley (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)
Alex Morcos (2)
zathras-crypto (1)
unsystemizer (1)
practicalswift (1)
mruddy (1)
mrbandrews (1)
mdr0id (1)
kazcw (1)
jc (1)
isle2983 (1)
@@ -69,10 +85,16 @@ daniel (1)
calebogden (1)
ayleph (1)
Tom Ritter (1)
Tom Harding (1)
Stephen (1)
S. Matthew English (1)
Ross Nicoll (1)
Richard Littauer (1)
René Nyffenegger (1)
R E Broadley (1)
Puru (1)
Peter Pratscher (1)
Pedro Branco (1)
Paul Georgiou (1)
Paragon Initiative Enterprises, LLC (1)
Nicolas DORIER (1)
@@ -84,10 +106,11 @@ 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)
Jeremy Rubin (1)
Jeffrey Walton (1)
Ian Kelling (1)
Gaurav Rana (1)
@@ -95,9 +118,12 @@ Forrest Voight (1)
Florian Schmaus (1)
Ethan Heilman (1)
Eran Tromer (1)
Duke Leto (1)
Dimitris Apostolou (1)
David Llop (1)
Christian von Roques (1)
Chirag Davé (1)
Charlie OKeefe (1)
Charlie O'Keefe (1)
Casey Rodarmor (1)
Cameron Boehmer (1)
Bryan Stitt (1)
@@ -109,7 +135,6 @@ Ashley Holman (1)
Anthony Towns (1)
Allan Niemerg (1)
Alex van der Peet (1)
Alex Morcos (1)
Alex (1)
Adam Weiss (1)
Adam Brown (1)

4
doc/bips.md Normal file
View File

@@ -0,0 +1,4 @@
BIPs that are implemented by Zcash (up-to-date up to **v1.1.0**):
* Numerous historic BIPs were present in **v1.0.0** at launch; see [the protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf) for details.
* [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, but only enforced for peer versions `>=170004` as of **v1.1.0** ([PR #2814](https://github.com/zcash/zcash/pull/2814)).

BIN
doc/imgs/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
doc/imgs/zcashd_screen.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH ZCASH-CLI "1" "February 2018" "zcash-cli v1.0.15" "User Commands"
.TH ZCASH-CLI "1" "August 2018" "zcash-cli v2.0.0" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v1.0.15
zcash-cli \- manual page for zcash-cli v2.0.0
.SH DESCRIPTION
Zcash RPC client version v1.0.15
Zcash RPC client version v2.0.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@@ -65,6 +65,11 @@ Password for JSON\-RPC connections
.IP
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
900)
.HP
\fB\-stdin\fR
.IP
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases)
.SH COPYRIGHT
In order to ensure you are adequately protecting your privacy when using Zcash,

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH ZCASH-TX "1" "February 2018" "zcash-tx v1.0.15" "User Commands"
.TH ZCASH-TX "1" "August 2018" "zcash-tx v2.0.0" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v1.0.15
zcash-tx \- manual page for zcash-tx v2.0.0
.SH DESCRIPTION
Zcash zcash\-tx utility version v1.0.15
Zcash zcash\-tx utility version v2.0.0
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]
@@ -48,7 +48,7 @@ delout=N
.IP
Delete output N from TX
.IP
in=TXID:VOUT
in=TXID:VOUT(:SEQUENCE_NUMBER)
.IP
Add input to TX
.IP

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH ZCASHD "1" "February 2018" "zcashd v1.0.15" "User Commands"
.TH ZCASHD "1" "August 2018" "zcashd v2.0.0" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v1.0.15
zcashd \- manual page for zcashd v2.0.0
.SH DESCRIPTION
Zcash Daemon version v1.0.15
Zcash Daemon version v2.0.0
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@@ -51,11 +51,6 @@ Run in the background as a daemon and accept commands
.IP
Specify data directory
.HP
\fB\-disabledeprecation=\fR<version>
.IP
Disable block\-height node deprecation and automatic shutdown (example:
\fB\-disabledeprecation\fR=\fI\,1\/\fR.0.15)
.HP
\fB\-exportdir=\fR<dir>
.IP
Specify directory to be used when exporting data
@@ -74,12 +69,13 @@ Keep at most <n> unconnectable transactions in memory (default: 100)
.HP
\fB\-mempooltxinputlimit=\fR<n>
.IP
Set the maximum number of transparent inputs in a transaction that the
mempool will accept (default: 0 = no limit applied)
[DEPRECATED FROM OVERWINTER] Set the maximum number of transparent
inputs in a transaction that the mempool will accept (default: 0 = no
limit applied)
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
@@ -187,6 +183,11 @@ Only connect to nodes in network <net> (ipv4, ipv6 or onion)
.IP
Relay non\-P2SH multisig (default: 1)
.HP
\fB\-peerbloomfilters\fR
.IP
Support filtering of blocks and transaction with Bloom filters (default:
1)
.HP
\fB\-port=\fR<port>
.IP
Listen for connections on <port> (default: 8233 or testnet: 18233)

View File

@@ -29,10 +29,10 @@ Optional parameters are denoted in [square brackets].
RPC calls by category:
* Accounting: z_getbalance, z_gettotalbalance
* Addresses : z_getnewaddress, z_listaddresses, z_validateaddress
* Addresses : z_getnewaddress, z_listaddresses, z_validateaddress, z_exportviewingkey, z_importviewingkey
* Keys : z_exportkey, z_importkey, z_exportwallet, z_importwallet
* Operation: z_getoperationresult, z_getoperationstatus, z_listoperationids
* Payment : z_listreceivedbyaddress, z_sendmany, z_shieldcoinbase
* Payment : z_listreceivedbyaddress, z_listunspent, z_sendmany, z_shieldcoinbase
RPC parameter conventions:
@@ -55,7 +55,7 @@ Command | Parameters | Description
--- | --- | ---
z_getnewaddress | | Return a new zaddr for sending and receiving payments. The spending key for this zaddr will be added to the nodes wallet.<br><br>Output:<br>zN68D8hSs3...
z_listaddresses | | Returns a list of all the zaddrs in this nodes wallet for which you have a spending key.<br><br>Output:<br>{ [“z123…”, “z456...”, “z789...”] }
z_validateaddress | zaddr | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
z_validateaddress | zaddr | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"type" : "sprout",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
### Key Management
@@ -64,13 +64,17 @@ Command | Parameters | Description
z_exportkey | zaddr | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Return a zkey for a given zaddr belonging to the nodes wallet.<br><br>The key will be returned as a string formatted using Base58Check as described in the Zcash protocol spec.<br><br>Output:AKWUAkypwQjhZ6LLNaMuuuLcmZ6gt5UFyo8m3jGutvALmwZKLdR5
z_importkey | zkey [rescan=true] | _Wallet must be unlocked._<br><br>Add a zkey as returned by z_exportkey to a node's wallet.<br><br>The key should be formatted using Base58Check as described in the Zcash protocol spec.<br><br>Set rescan to true (the default) to rescan the entire local block database for transactions affecting any address or pubkey script in the wallet (including transactions affecting the newly-added address for this spending key).
z_exportwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Creates or overwrites a file with taddr private keys and zaddr private keys in a human-readable format.<br><br>Filename is the file in which the wallet dump will be placed. May be prefaced by an absolute file path. An existing file with that name will be overwritten.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to komodods working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to verusds working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
z_exportviewingkey | zaddr | Reveals the viewing key corresponding to 'zaddr'. Then the z_importviewingkey can be used with this output.
z_importviewingkey | vkey [rescan=whenkeyisnew] [startHeight=0] | Adds a viewing key (as returned by z_exportviewingkey) to your wallet.
### Payment
Command | Parameters | Description
--- | --- | ---
z_listreceivedbyaddress<br> | zaddr [minconf=1] | Return a list of amounts received by a zaddr belonging to the nodes wallet.<br><br>Optionally set the minimum number of confirmations which a received amount must have in order to be included in the result. Use 0 to count unconfirmed transactions.<br><br>Output:<br>[{<br>“txid”: “4a0f…”,<br>“amount”: 0.54,<br>“memo”:”F0FF…”,}, {...}, {...}<br>]
z_listunspent | [minconf=1] [maxconf=9999999] [includeWatchonly=false] [zaddrs] | Returns array of unspent shielded notes with between minconf and maxconf (inclusive) confirmations.<br><br>Optionally filter to only include notes sent to specified addresses.<br><br>When minconf is 0, unspent notes with zero confirmations are returned, even though they are not immediately spendable.<br><br>Results are an array of Objects, each of which has: {txid, jsindex, jsoutindex, confirmations, address, amount, memo}
z_sendmany<br> | fromaddress amounts [minconf=1] [fee=0.0001] | _This is an Asynchronous RPC call_<br><br>Send funds from an address to multiple outputs. The address can be either a taddr or a zaddr.<br><br>Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format.<br><br>When sending to a zaddr, you also have the option of attaching a memo in hexadecimal format.<br><br>**NOTE:**When sending coinbase funds to a zaddr, the node's wallet does not allow any change. Put another way, spending a partial amount of a coinbase utxo is not allowed. This is not a consensus rule but a local wallet rule due to the current implementation of z_sendmany. In future, this rule may be removed.<br><br>Example of Outputs parameter:<br>[{“address”:”t123…”, “amount”:0.005},<br>,{“address”:”z010…”,”amount”:0.03, “memo”:”f508af…”}]<br><br>Optionally set the minimum number of confirmations which a private or transparent transaction must have in order to be used as an input. When sending from a zaddr, minconf must be greater than zero.<br><br>Optionally set a transaction fee, which by default is 0.0001 ZEC.<br><br>Any transparent change will be sent to a new transparent address. Any private change will be sent back to the zaddr being used as the source of funds.<br><br>Returns an operationid. You use the operationid value with z_getoperationstatus and z_getoperationresult to obtain the result of sending funds, which if successful, will be a txid.
z_shieldcoinbase<br> | fromaddress toaddress [fee=0.0001] [limit=50] | _This is an Asynchronous RPC call_<br><br>Shield transparent coinbase funds by sending to a shielded z address. Utxos selected for shielding will be locked. If there is an error, they are unlocked. The RPC call `listlockunspent` can be used to return a list of locked utxos.<br><br>The number of coinbase utxos selected for shielding can be set with the limit parameter, which has a default value of 50. If the parameter is set to 0, the number of utxos selected is limited by the `-mempooltxinputlimit` option. Any limit is constrained by a consensus rule defining a maximum transaction size of 100000 bytes. <br><br>The from address is a taddr or "*" for all taddrs belonging to the wallet. The to address is a zaddr. The default fee is 0.0001.<br><br>Returns an object containing an operationid which can be used with z_getoperationstatus and z_getoperationresult, along with key-value pairs regarding how many utxos are being shielded in this transaction and what remains to be shielded.

View File

@@ -4,3 +4,16 @@ release-notes at release time)
Notable changes
===============
Hierarchical Deterministic Key Generation for Sapling
-----------------------------------------------------
All Sapling addresses will use hierarchical deterministic key generation
according to ZIP 32 (keypath m/32'/133'/k' on mainnet). Transparent and
Sprout addresses will still use traditional key generation.
Backups of HD wallets, regardless of when they have been created, can
therefore be used to re-generate all possible Sapling private keys, even the
ones which haven't already been generated during the time of the backup.
Regular backups are still necessary, however, in order to ensure that
transparent and Sprout addresses are not lost.
[Pull request](https://github.com/zcash/zcash/pull/3492), [ZIP 32](https://github.com/zcash/zips/blob/master/zip-0032.mediawiki)

View File

@@ -0,0 +1,180 @@
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 (43):
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<bool>
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.
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 (13):
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.
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

View File

@@ -0,0 +1,193 @@
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
----------------------------------
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<bool>
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

View File

@@ -0,0 +1,286 @@
Notable changes
===============
zcash-cli: arguments privacy
----------------------------
The RPC command line client gained a new argument, `-stdin`
to read extra arguments from standard input, one per line until EOF/Ctrl-D.
For example:
$ src/zcash-cli -stdin walletpassphrase
mysecretcode
120
^D (Ctrl-D)
It is recommended to use this for sensitive information such as private keys, as
command-line arguments can usually be read from the process table by any user on
the system.
Asm representations of scriptSig signatures now contain SIGHASH type decodes
----------------------------------------------------------------------------
The `asm` property of each scriptSig now contains the decoded signature hash
type for each signature that provides a valid defined hash type.
The following items contain assembly representations of scriptSig signatures
and are affected by this change:
- RPC `getrawtransaction`
- RPC `decoderawtransaction`
- REST `/rest/tx/` (JSON format)
- REST `/rest/block/` (JSON format when including extended tx details)
- `zcash-tx -json`
For example, the `scriptSig.asm` property of a transaction input that
previously showed an assembly representation of:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001
now shows as:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL]
Note that the output of the RPC `decodescript` did not change because it is
configured specifically to process scriptPubKey and not scriptSig scripts.
Changelog
=========
Cory Fields (4):
serialization: teach serializers variadics
build: univalue subdir build fixups
don't throw std::bad_alloc when out of memory. Instead, terminate immediately
prevector: assert successful allocation
Daira Hopwood (1):
Use https: for BDB backup download URL.
David Llop (1):
Update Payment API
Eirik Ogilvie-Wigley (7):
Clarify help text of dumpprivkey
Add sapling nullifier set
Add enum for nullifier type
Add sapling nullifiers to db and mempool
Rename nullifier caches and maps to indicate sprout nullifiers
Make sure transactions have non-empty outputs
Coinbase transactions can not have shielded spend or output
Jack Grigg (50):
Disable building libzcashconsensus by default
depends: Upgrade Rust to 1.26.0-beta.3
depends: Add support for unpackaged Rust crates
depends: Update to latest librustzcash with sapling-crypto dependencies
Add Sapling to upgrade list
Add static asserts to ensure CONTINUE_EXECUTION doesn't collide
[Bitcoin-Tx] Adjust util-test test cases for Zcash
Handle usage of prevector for CScript in Zcash-specific code
GetSerializeSize changes in Zcash-specific code
Remove nType and nVersion from Zcash-specific code
Adjust consensus rules to require v4 transactions from Sapling activation
Implement basic Sapling v4 transaction parser
Add Sapling v4 transactions to IsStandard
Pass transaction header into correct SignatureHash serialization level
Remove now-unshadowed serialization lines that do nothing
Implement SpendDescription and OutputDescription datastructures
Add a constant for Overwinter's transaction version
Return result of boost::apply_visitor
Improve best-effort logging before termination on OOM
Attempt to log before terminating if prevector allocation fails
Fix -Wstring-plus-int warning on clang
Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling
Use CBitcoinAddress wrappers in Zcash-specific code
Change JSOutPoint constructor to have js argument be uint64_t
Update CreateNewContextualCMutableTransaction to create Sapling transactions
Expire Overwinter transactions before the Sapling activation height
Remove obsolete CreateJoinSplit and GenerateParams binaries
Add missing include guard
Raise 100kB transaction size limit from Sapling activation
Benchmark the largest valid Sapling transaction in validatelargetx
Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING
Rework z_sendmany z-address recipient limit
Add test of Sapling transaction size boundary
Update tests for CreateNewContextualCMutableTransaction changes
wallet: Change IsLockedNote to take a JSOutPoint
wallet: Make some arguments const that can be
Implement Sapling signature hash (ZIP 243)
Update sighash tests
Introduce wrappers around CZCPaymentAddress
Introduce wrappers around CZCSpendingKey
Introduce wrappers around CZCViewingKey
Implement {Encode,Decode}PaymentAddress etc. without CZCEncoding
Add key_io includes to Zcash-specific code
Add valueBalance to value balances, and enforce its consensus rules
Track net value entering and exiting the Sapling circuit
Add contextual comment for GetValueOut() and GetShieldedValueIn()
Use boost::variant to represent shielded addresses and keys
Correctly serialize Groth16 JSDescription for verifyjoinsplit benchmark
make-release.py: Versioning changes for 1.1.1-rc1.
make-release.py: Updated manpages for 1.1.1-rc1.
Jay Graber (1):
Add test for dependent txs to mempool_tx_expiry.py
Jeremy Rubin (1):
Fix subscript[0] in base58.cpp
Jonas Schnelli (4):
[RPC] createrawtransaction: add option to set the sequence number per input
[bitcoin-tx] allow to set nSequence number over the in= command
[Bitcoin-Tx] Add tests for sequence number support
add bip32 pubkey serialization
João Barbosa (1):
Remove unused GetKeyID and IsScript methods from CBitcoinAddress
Karl-Johan Alm (1):
Removed using namespace std from bitcoin-cli/-tx and added std:: in appropriate places.
Kaz Wesley (1):
CBase58Data::SetString: cleanse the full vector
Larry Ruane (1):
fix qa/zcash/full_test_suite.py pathname
MarcoFalke (3):
[uacomment] Sanitize per BIP-0014
[rpcwallet] Don't use floating point
[test] Remove unused code
Matt Corallo (1):
Add COMPACTSIZE wrapper similar to VARINT for serialization
Pavel Janík (1):
[WIP] Remove unused statement in serialization
Pavol Rusnak (2):
implement uacomment config parameter which can add comments to user agent as per BIP-0014
limit total length of user agent comments
Pedro Branco (1):
Prevent multiple calls to ExtractDestination
Per Grön (1):
Make some globals static that can be
Peter Pratscher (1):
Backported Bitcoin PR #8704 to optionally return full tx details in the getblock rpc call
Pieter Wuille (22):
Prevector type
Remove unused ReadVersion and WriteVersion
Make streams' read and write return void
Make nType and nVersion private and sometimes const
Make GetSerializeSize a wrapper on top of CSizeComputer
Get rid of nType and nVersion
Avoid -Wshadow errors
Make CSerAction's ForRead() constexpr
Add optimized CSizeComputer serializers
Use fixed preallocation instead of costly GetSerializeSize
Add serialization for unique_ptr and shared_ptr
Add deserializing constructors to CTransaction and CMutableTransaction
Avoid unaligned access in crypto i/o
Fix some empty vector references
Introduce wrappers around CBitcoinAddress
Move CBitcoinAddress to base58.cpp
Implement {Encode,Decode}Destination without CBitcoinAddress
Import Bech32 C++ reference code & tests
Convert base58_tests from type/payload to scriptPubKey comparison
Replace CBitcoinSecret with {Encode,Decode}Secret
Stop using CBase58Data for ext keys
Split key_io (address/key encodings) off from base58
Puru (1):
bitcoin-cli.cpp: Use symbolic constant for exit code
Sean Bowe (49):
Switch to latest librustzcash
Invoke the merkle_hash API in librustzcash via test suite.
Link with -ldl
Update librustzcash hash
Load Sapling testnet parameters into memory.
Update librustzcash hash
Check that duplicate Sapling nullifiers don't exist within a transaction.
Abstract `uncommitted` and depth personalization for IncrementalMerkleTree.
Add implementation of Sapling merkle tree
Add regression tests and test vectors for Sapling merkle tree
Rename NullifierType to ShieldedType.
Specifically describe anchors as Sprout anchors.
Rename hashAnchor to hashSproutAnchor.
Rename hashReserved to hashSaplingAnchorEnd.
Add primitive implementation of GetSaplingAnchorEnd.
Rename DB_ANCHOR to DB_SPROUT_ANCHOR.
Rename GetAnchorAt to GetSproutAnchorAt.
Rename PushAnchor to PushSproutAnchor.
Introduce support for GetBestAnchor(SAPLING).
Generalize the PopAnchor implementation behavior.
Generalize the PushAnchor implementation behavior.
Remove underscores from gtest test names.
Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec.
Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent.
Add support for Sapling anchors in coins/txdb.
Add support for PopAnchor(.., SPROUT/SAPLING)
Add `PushSaplingAnchor`
Add consensus support for Sapling merkle trees.
Add support for Sapling anchor checks in mempool consistency checks.
Calculate the correct hashFinalSaplingRoot in the miner.
Adjust tests to handle Sapling anchor cache
Evict transactions with obsolete anchors from the mempool
Fix outdated comment
Fix broken error messages.
Fix miner tests
Update sapling-crypto and librustzcash
Swap bit endianness of test vectors
Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit.
Refactor so that dataToBeSigned can be used later in the function for other purposes.
Update to latest librustzcash
Check Sapling Spend/Output proofs and signatures.
Integrate Groth16 verification and proving.
Update librustzcash again
Adjust tests and benchmarks
Switch Rust to 1.26 Stable.
Update librustzcash
Update Sapling testnet parameters
Update merkle tree and pedersen hash tests to account for new encoding
Change txdb prefixes for sapling and avoid writing unnecessary information.
Simon Liu (14):
Part of #2966, extending Sprout tests to other epochs.
Closes #3134 - Least Authority Issue E
Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote.
Refactoring: Rename class libzcash::Note to libzcash::SproutNote.
Refactoring: SproutNote member variable value moved to BaseNote.
Add virtual destructor to SproutNote and BaseNote
Remove unused SproutNote variables.
Refactoring: rename NotePlaintext --> SproutNotePlaintext
Create class hierarchy for SproutNotePlaintext.
Move memo member varible from SproutNotePlaintext to BaseNotePlaintext.
Tweaks to d0a1d83 to complete backport of Bitcoin PR #8704
Closes #3178 by adding verbosity level improvements to getblock RPC.
Fix undefined behaviour, calling memcpy with NULL pointer.
Closes #3250. Memo getter should return by reference, not by value.
Tom Harding (1):
Add optional locktime to createrawtransaction
UdjinM6 (2):
Fix exit codes:
Every main()/exit() should return/use one of EXIT_ codes instead of magic numbers
Wladimir J. van der Laan (2):
rpc: Input-from-stdin mode for bitcoin-cli
doc: mention bitcoin-cli -stdin in release notes
ca333 (2):
[fix] proton download path
update proton.mk
kozyilmaz (2):
[macOS] added curl method for param download
[macOS] use shlock instead of flock in fetch-params
mruddy (1):
Resolve issue bitcoin/bitcoin#3166.

View File

@@ -0,0 +1,290 @@
Notable changes
===============
zcash-cli: arguments privacy
----------------------------
The RPC command line client gained a new argument, `-stdin`
to read extra arguments from standard input, one per line until EOF/Ctrl-D.
For example:
$ src/zcash-cli -stdin walletpassphrase
mysecretcode
120
^D (Ctrl-D)
It is recommended to use this for sensitive information such as private keys, as
command-line arguments can usually be read from the process table by any user on
the system.
Asm representations of scriptSig signatures now contain SIGHASH type decodes
----------------------------------------------------------------------------
The `asm` property of each scriptSig now contains the decoded signature hash
type for each signature that provides a valid defined hash type.
The following items contain assembly representations of scriptSig signatures
and are affected by this change:
- RPC `getrawtransaction`
- RPC `decoderawtransaction`
- REST `/rest/tx/` (JSON format)
- REST `/rest/block/` (JSON format when including extended tx details)
- `zcash-tx -json`
For example, the `scriptSig.asm` property of a transaction input that
previously showed an assembly representation of:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001
now shows as:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL]
Note that the output of the RPC `decodescript` did not change because it is
configured specifically to process scriptPubKey and not scriptSig scripts.
Changelog
=========
Cory Fields (4):
serialization: teach serializers variadics
build: univalue subdir build fixups
don't throw std::bad_alloc when out of memory. Instead, terminate immediately
prevector: assert successful allocation
Daira Hopwood (1):
Use https: for BDB backup download URL.
David Llop (1):
Update Payment API
Eirik Ogilvie-Wigley (7):
Clarify help text of dumpprivkey
Add sapling nullifier set
Add enum for nullifier type
Add sapling nullifiers to db and mempool
Rename nullifier caches and maps to indicate sprout nullifiers
Make sure transactions have non-empty outputs
Coinbase transactions can not have shielded spend or output
Jack Grigg (52):
Disable building libzcashconsensus by default
depends: Upgrade Rust to 1.26.0-beta.3
depends: Add support for unpackaged Rust crates
depends: Update to latest librustzcash with sapling-crypto dependencies
Add Sapling to upgrade list
Add static asserts to ensure CONTINUE_EXECUTION doesn't collide
[Bitcoin-Tx] Adjust util-test test cases for Zcash
Handle usage of prevector for CScript in Zcash-specific code
GetSerializeSize changes in Zcash-specific code
Remove nType and nVersion from Zcash-specific code
Adjust consensus rules to require v4 transactions from Sapling activation
Implement basic Sapling v4 transaction parser
Add Sapling v4 transactions to IsStandard
Pass transaction header into correct SignatureHash serialization level
Remove now-unshadowed serialization lines that do nothing
Implement SpendDescription and OutputDescription datastructures
Add a constant for Overwinter's transaction version
Return result of boost::apply_visitor
Improve best-effort logging before termination on OOM
Attempt to log before terminating if prevector allocation fails
Fix -Wstring-plus-int warning on clang
Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling
Use CBitcoinAddress wrappers in Zcash-specific code
Change JSOutPoint constructor to have js argument be uint64_t
Update CreateNewContextualCMutableTransaction to create Sapling transactions
Expire Overwinter transactions before the Sapling activation height
Remove obsolete CreateJoinSplit and GenerateParams binaries
Add missing include guard
Raise 100kB transaction size limit from Sapling activation
Benchmark the largest valid Sapling transaction in validatelargetx
Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING
Rework z_sendmany z-address recipient limit
Add test of Sapling transaction size boundary
Update tests for CreateNewContextualCMutableTransaction changes
wallet: Change IsLockedNote to take a JSOutPoint
wallet: Make some arguments const that can be
Implement Sapling signature hash (ZIP 243)
Update sighash tests
Introduce wrappers around CZCPaymentAddress
Introduce wrappers around CZCSpendingKey
Introduce wrappers around CZCViewingKey
Implement {Encode,Decode}PaymentAddress etc. without CZCEncoding
Add key_io includes to Zcash-specific code
Add valueBalance to value balances, and enforce its consensus rules
Track net value entering and exiting the Sapling circuit
Add contextual comment for GetValueOut() and GetShieldedValueIn()
Use boost::variant to represent shielded addresses and keys
Correctly serialize Groth16 JSDescription for verifyjoinsplit benchmark
make-release.py: Versioning changes for 1.1.1-rc1.
make-release.py: Updated manpages for 1.1.1-rc1.
make-release.py: Updated release notes and changelog for 1.1.1-rc1.
Comment out Gitian library handling while we don't build any libraries
Jay Graber (1):
Add test for dependent txs to mempool_tx_expiry.py
Jeremy Rubin (1):
Fix subscript[0] in base58.cpp
Jonas Schnelli (4):
[RPC] createrawtransaction: add option to set the sequence number per input
[bitcoin-tx] allow to set nSequence number over the in= command
[Bitcoin-Tx] Add tests for sequence number support
add bip32 pubkey serialization
João Barbosa (1):
Remove unused GetKeyID and IsScript methods from CBitcoinAddress
Karl-Johan Alm (1):
Removed using namespace std from bitcoin-cli/-tx and added std:: in appropriate places.
Kaz Wesley (1):
CBase58Data::SetString: cleanse the full vector
Larry Ruane (1):
fix qa/zcash/full_test_suite.py pathname
MarcoFalke (3):
[uacomment] Sanitize per BIP-0014
[rpcwallet] Don't use floating point
[test] Remove unused code
Matt Corallo (1):
Add COMPACTSIZE wrapper similar to VARINT for serialization
Pavel Janík (1):
[WIP] Remove unused statement in serialization
Pavol Rusnak (2):
implement uacomment config parameter which can add comments to user agent as per BIP-0014
limit total length of user agent comments
Pedro Branco (1):
Prevent multiple calls to ExtractDestination
Per Grön (1):
Make some globals static that can be
Peter Pratscher (1):
Backported Bitcoin PR #8704 to optionally return full tx details in the getblock rpc call
Pieter Wuille (22):
Prevector type
Remove unused ReadVersion and WriteVersion
Make streams' read and write return void
Make nType and nVersion private and sometimes const
Make GetSerializeSize a wrapper on top of CSizeComputer
Get rid of nType and nVersion
Avoid -Wshadow errors
Make CSerAction's ForRead() constexpr
Add optimized CSizeComputer serializers
Use fixed preallocation instead of costly GetSerializeSize
Add serialization for unique_ptr and shared_ptr
Add deserializing constructors to CTransaction and CMutableTransaction
Avoid unaligned access in crypto i/o
Fix some empty vector references
Introduce wrappers around CBitcoinAddress
Move CBitcoinAddress to base58.cpp
Implement {Encode,Decode}Destination without CBitcoinAddress
Import Bech32 C++ reference code & tests
Convert base58_tests from type/payload to scriptPubKey comparison
Replace CBitcoinSecret with {Encode,Decode}Secret
Stop using CBase58Data for ext keys
Split key_io (address/key encodings) off from base58
Puru (1):
bitcoin-cli.cpp: Use symbolic constant for exit code
Sean Bowe (49):
Switch to latest librustzcash
Invoke the merkle_hash API in librustzcash via test suite.
Link with -ldl
Update librustzcash hash
Load Sapling testnet parameters into memory.
Update librustzcash hash
Check that duplicate Sapling nullifiers don't exist within a transaction.
Abstract `uncommitted` and depth personalization for IncrementalMerkleTree.
Add implementation of Sapling merkle tree
Add regression tests and test vectors for Sapling merkle tree
Rename NullifierType to ShieldedType.
Specifically describe anchors as Sprout anchors.
Rename hashAnchor to hashSproutAnchor.
Rename hashReserved to hashSaplingAnchorEnd.
Add primitive implementation of GetSaplingAnchorEnd.
Rename DB_ANCHOR to DB_SPROUT_ANCHOR.
Rename GetAnchorAt to GetSproutAnchorAt.
Rename PushAnchor to PushSproutAnchor.
Introduce support for GetBestAnchor(SAPLING).
Generalize the PopAnchor implementation behavior.
Generalize the PushAnchor implementation behavior.
Remove underscores from gtest test names.
Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec.
Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent.
Add support for Sapling anchors in coins/txdb.
Add support for PopAnchor(.., SPROUT/SAPLING)
Add `PushSaplingAnchor`
Add consensus support for Sapling merkle trees.
Add support for Sapling anchor checks in mempool consistency checks.
Calculate the correct hashFinalSaplingRoot in the miner.
Adjust tests to handle Sapling anchor cache
Evict transactions with obsolete anchors from the mempool
Fix outdated comment
Fix broken error messages.
Fix miner tests
Update sapling-crypto and librustzcash
Swap bit endianness of test vectors
Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit.
Refactor so that dataToBeSigned can be used later in the function for other purposes.
Update to latest librustzcash
Check Sapling Spend/Output proofs and signatures.
Integrate Groth16 verification and proving.
Update librustzcash again
Adjust tests and benchmarks
Switch Rust to 1.26 Stable.
Update librustzcash
Update Sapling testnet parameters
Update merkle tree and pedersen hash tests to account for new encoding
Change txdb prefixes for sapling and avoid writing unnecessary information.
Simon Liu (16):
Part of #2966, extending Sprout tests to other epochs.
Closes #3134 - Least Authority Issue E
Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote.
Refactoring: Rename class libzcash::Note to libzcash::SproutNote.
Refactoring: SproutNote member variable value moved to BaseNote.
Add virtual destructor to SproutNote and BaseNote
Remove unused SproutNote variables.
Refactoring: rename NotePlaintext --> SproutNotePlaintext
Create class hierarchy for SproutNotePlaintext.
Move memo member varible from SproutNotePlaintext to BaseNotePlaintext.
Tweaks to d0a1d83 to complete backport of Bitcoin PR #8704
Closes #3178 by adding verbosity level improvements to getblock RPC.
Fix undefined behaviour, calling memcpy with NULL pointer.
Closes #3250. Memo getter should return by reference, not by value.
make-release.py: Versioning changes for 1.1.1-rc2.
make-release.py: Updated manpages for 1.1.1-rc2.
Tom Harding (1):
Add optional locktime to createrawtransaction
UdjinM6 (2):
Fix exit codes:
Every main()/exit() should return/use one of EXIT_ codes instead of magic numbers
Wladimir J. van der Laan (2):
rpc: Input-from-stdin mode for bitcoin-cli
doc: mention bitcoin-cli -stdin in release notes
ca333 (2):
[fix] proton download path
update proton.mk
kozyilmaz (2):
[macOS] added curl method for param download
[macOS] use shlock instead of flock in fetch-params
mruddy (1):
Resolve issue bitcoin/bitcoin#3166.

View File

@@ -0,0 +1,336 @@
Notable changes
===============
Sapling network upgrade
-----------------------
The consensus code preparations for the Sapling network upgrade, as described
in [ZIP 243](https://github.com/zcash/zips/blob/master/zip-0243.rst) and the
[Sapling spec](https://github.com/zcash/zips/blob/master/protocol/sapling.pdf)
are finished and included in this release. Sapling support in the wallet and
RPC is ongoing, and is expected to land in master over the next few weeks.
The [Sapling MPC](https://blog.z.cash/announcing-the-sapling-mpc/) is currently
working on producing the final Sapling parameters. In the meantime, Sapling will
activate on testnet with dummy Sapling parameters at height 252500. This
activation will be temporary, and the testnet will be rolled back by version
2.0.0 so that both mainnet and testnet will be using the same parameters.
Users who want to continue testing Overwinter should continue to run version
1.1.0 on testnet, and then upgrade to 2.0.0 (which will be released after
Overwinter activates).
Sapling can also be activated at a specific height in regtest mode by
setting the config options `-nuparams=5ba81b19:HEIGHT -nuparams=76b809bb:HEIGHT`.
These config options will change when the testnet is rolled back for 2.0.0
(because the branch ID for Sapling will change, due to us following the safe
upgrade conventions we introduced in Overwinter).
Users running testnet or regtest nodes will need to run
`./zcutil/fetch-params.sh --testnet` (for users building from source) or
`zcash-fetch-params --testnet` (for binary / Debian users).
As a reminder, because the Sapling activation height is not yet specified for
mainnet, version 1.1.1 will behave similarly as other pre-Sapling releases even
after a future activation of Sapling on the network. Upgrading from 1.1.1 will
be required in order to follow the Sapling network upgrade on mainnet.
Sapling transaction format
--------------------------
Once Sapling has activated, transactions must use the new v4 format (including
coinbase transactions). All RPC methods that create new transactions (such as
`createrawtransaction` and `getblocktemplate`) will create v4 transactions once
the Sapling activation height has been reached.
zcash-cli: arguments privacy
----------------------------
The RPC command line client gained a new argument, `-stdin`
to read extra arguments from standard input, one per line until EOF/Ctrl-D.
For example:
$ src/zcash-cli -stdin walletpassphrase
mysecretcode
120
^D (Ctrl-D)
It is recommended to use this for sensitive information such as private keys, as
command-line arguments can usually be read from the process table by any user on
the system.
Asm representations of scriptSig signatures now contain SIGHASH type decodes
----------------------------------------------------------------------------
The `asm` property of each scriptSig now contains the decoded signature hash
type for each signature that provides a valid defined hash type.
The following items contain assembly representations of scriptSig signatures
and are affected by this change:
- RPC `getrawtransaction`
- RPC `decoderawtransaction`
- REST `/rest/tx/` (JSON format)
- REST `/rest/block/` (JSON format when including extended tx details)
- `zcash-tx -json`
For example, the `scriptSig.asm` property of a transaction input that
previously showed an assembly representation of:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001
now shows as:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL]
Note that the output of the RPC `decodescript` did not change because it is
configured specifically to process scriptPubKey and not scriptSig scripts.
Changelog
=========
Cory Fields (4):
serialization: teach serializers variadics
build: univalue subdir build fixups
don't throw std::bad_alloc when out of memory. Instead, terminate immediately
prevector: assert successful allocation
Daira Hopwood (1):
Use https: for BDB backup download URL.
David Llop (1):
Update Payment API
Eirik Ogilvie-Wigley (7):
Clarify help text of dumpprivkey
Add sapling nullifier set
Add enum for nullifier type
Add sapling nullifiers to db and mempool
Rename nullifier caches and maps to indicate sprout nullifiers
Make sure transactions have non-empty outputs
Coinbase transactions can not have shielded spend or output
Jack Grigg (55):
Disable building libzcashconsensus by default
depends: Upgrade Rust to 1.26.0-beta.3
depends: Add support for unpackaged Rust crates
depends: Update to latest librustzcash with sapling-crypto dependencies
Add Sapling to upgrade list
Add static asserts to ensure CONTINUE_EXECUTION doesn't collide
[Bitcoin-Tx] Adjust util-test test cases for Zcash
Handle usage of prevector for CScript in Zcash-specific code
GetSerializeSize changes in Zcash-specific code
Remove nType and nVersion from Zcash-specific code
Adjust consensus rules to require v4 transactions from Sapling activation
Implement basic Sapling v4 transaction parser
Add Sapling v4 transactions to IsStandard
Pass transaction header into correct SignatureHash serialization level
Remove now-unshadowed serialization lines that do nothing
Implement SpendDescription and OutputDescription datastructures
Add a constant for Overwinter's transaction version
Return result of boost::apply_visitor
Improve best-effort logging before termination on OOM
Attempt to log before terminating if prevector allocation fails
Fix -Wstring-plus-int warning on clang
Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling
Use CBitcoinAddress wrappers in Zcash-specific code
Change JSOutPoint constructor to have js argument be uint64_t
Update CreateNewContextualCMutableTransaction to create Sapling transactions
Expire Overwinter transactions before the Sapling activation height
Remove obsolete CreateJoinSplit and GenerateParams binaries
Add missing include guard
Raise 100kB transaction size limit from Sapling activation
Benchmark the largest valid Sapling transaction in validatelargetx
Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING
Rework z_sendmany z-address recipient limit
Add test of Sapling transaction size boundary
Update tests for CreateNewContextualCMutableTransaction changes
wallet: Change IsLockedNote to take a JSOutPoint
wallet: Make some arguments const that can be
Implement Sapling signature hash (ZIP 243)
Update sighash tests
Introduce wrappers around CZCPaymentAddress
Introduce wrappers around CZCSpendingKey
Introduce wrappers around CZCViewingKey
Implement {Encode,Decode}PaymentAddress etc. without CZCEncoding
Add key_io includes to Zcash-specific code
Add valueBalance to value balances, and enforce its consensus rules
Track net value entering and exiting the Sapling circuit
Add contextual comment for GetValueOut() and GetShieldedValueIn()
Use boost::variant to represent shielded addresses and keys
Correctly serialize Groth16 JSDescription for verifyjoinsplit benchmark
make-release.py: Versioning changes for 1.1.1-rc1.
make-release.py: Updated manpages for 1.1.1-rc1.
make-release.py: Updated release notes and changelog for 1.1.1-rc1.
Comment out Gitian library handling while we don't build any libraries
Add Sapling details to release notes
make-release.py: Versioning changes for 1.1.1.
make-release.py: Updated manpages for 1.1.1.
Jay Graber (1):
Add test for dependent txs to mempool_tx_expiry.py
Jeremy Rubin (1):
Fix subscript[0] in base58.cpp
Jonas Schnelli (4):
[RPC] createrawtransaction: add option to set the sequence number per input
[bitcoin-tx] allow to set nSequence number over the in= command
[Bitcoin-Tx] Add tests for sequence number support
add bip32 pubkey serialization
João Barbosa (1):
Remove unused GetKeyID and IsScript methods from CBitcoinAddress
Karl-Johan Alm (1):
Removed using namespace std from bitcoin-cli/-tx and added std:: in appropriate places.
Kaz Wesley (1):
CBase58Data::SetString: cleanse the full vector
Larry Ruane (1):
fix qa/zcash/full_test_suite.py pathname
MarcoFalke (3):
[uacomment] Sanitize per BIP-0014
[rpcwallet] Don't use floating point
[test] Remove unused code
Matt Corallo (1):
Add COMPACTSIZE wrapper similar to VARINT for serialization
Pavel Janík (1):
[WIP] Remove unused statement in serialization
Pavol Rusnak (2):
implement uacomment config parameter which can add comments to user agent as per BIP-0014
limit total length of user agent comments
Pedro Branco (1):
Prevent multiple calls to ExtractDestination
Per Grön (1):
Make some globals static that can be
Peter Pratscher (1):
Backported Bitcoin PR #8704 to optionally return full tx details in the getblock rpc call
Pieter Wuille (22):
Prevector type
Remove unused ReadVersion and WriteVersion
Make streams' read and write return void
Make nType and nVersion private and sometimes const
Make GetSerializeSize a wrapper on top of CSizeComputer
Get rid of nType and nVersion
Avoid -Wshadow errors
Make CSerAction's ForRead() constexpr
Add optimized CSizeComputer serializers
Use fixed preallocation instead of costly GetSerializeSize
Add serialization for unique_ptr and shared_ptr
Add deserializing constructors to CTransaction and CMutableTransaction
Avoid unaligned access in crypto i/o
Fix some empty vector references
Introduce wrappers around CBitcoinAddress
Move CBitcoinAddress to base58.cpp
Implement {Encode,Decode}Destination without CBitcoinAddress
Import Bech32 C++ reference code & tests
Convert base58_tests from type/payload to scriptPubKey comparison
Replace CBitcoinSecret with {Encode,Decode}Secret
Stop using CBase58Data for ext keys
Split key_io (address/key encodings) off from base58
Puru (1):
bitcoin-cli.cpp: Use symbolic constant for exit code
Sean Bowe (49):
Switch to latest librustzcash
Invoke the merkle_hash API in librustzcash via test suite.
Link with -ldl
Update librustzcash hash
Load Sapling testnet parameters into memory.
Update librustzcash hash
Check that duplicate Sapling nullifiers don't exist within a transaction.
Abstract `uncommitted` and depth personalization for IncrementalMerkleTree.
Add implementation of Sapling merkle tree
Add regression tests and test vectors for Sapling merkle tree
Rename NullifierType to ShieldedType.
Specifically describe anchors as Sprout anchors.
Rename hashAnchor to hashSproutAnchor.
Rename hashReserved to hashSaplingAnchorEnd.
Add primitive implementation of GetSaplingAnchorEnd.
Rename DB_ANCHOR to DB_SPROUT_ANCHOR.
Rename GetAnchorAt to GetSproutAnchorAt.
Rename PushAnchor to PushSproutAnchor.
Introduce support for GetBestAnchor(SAPLING).
Generalize the PopAnchor implementation behavior.
Generalize the PushAnchor implementation behavior.
Remove underscores from gtest test names.
Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec.
Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent.
Add support for Sapling anchors in coins/txdb.
Add support for PopAnchor(.., SPROUT/SAPLING)
Add `PushSaplingAnchor`
Add consensus support for Sapling merkle trees.
Add support for Sapling anchor checks in mempool consistency checks.
Calculate the correct hashFinalSaplingRoot in the miner.
Adjust tests to handle Sapling anchor cache
Evict transactions with obsolete anchors from the mempool
Fix outdated comment
Fix broken error messages.
Fix miner tests
Update sapling-crypto and librustzcash
Swap bit endianness of test vectors
Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit.
Refactor so that dataToBeSigned can be used later in the function for other purposes.
Update to latest librustzcash
Check Sapling Spend/Output proofs and signatures.
Integrate Groth16 verification and proving.
Update librustzcash again
Adjust tests and benchmarks
Switch Rust to 1.26 Stable.
Update librustzcash
Update Sapling testnet parameters
Update merkle tree and pedersen hash tests to account for new encoding
Change txdb prefixes for sapling and avoid writing unnecessary information.
Simon Liu (18):
Part of #2966, extending Sprout tests to other epochs.
Closes #3134 - Least Authority Issue E
Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote.
Refactoring: Rename class libzcash::Note to libzcash::SproutNote.
Refactoring: SproutNote member variable value moved to BaseNote.
Add virtual destructor to SproutNote and BaseNote
Remove unused SproutNote variables.
Refactoring: rename NotePlaintext --> SproutNotePlaintext
Create class hierarchy for SproutNotePlaintext.
Move memo member varible from SproutNotePlaintext to BaseNotePlaintext.
Tweaks to d0a1d83 to complete backport of Bitcoin PR #8704
Closes #3178 by adding verbosity level improvements to getblock RPC.
Fix undefined behaviour, calling memcpy with NULL pointer.
Closes #3250. Memo getter should return by reference, not by value.
make-release.py: Versioning changes for 1.1.1-rc2.
make-release.py: Updated manpages for 1.1.1-rc2.
make-release.py: Updated release notes and changelog for 1.1.1-rc2.
Closes #3301. Non-void function should not have empty definition.
Tom Harding (1):
Add optional locktime to createrawtransaction
UdjinM6 (2):
Fix exit codes:
Every main()/exit() should return/use one of EXIT_ codes instead of magic numbers
Wladimir J. van der Laan (2):
rpc: Input-from-stdin mode for bitcoin-cli
doc: mention bitcoin-cli -stdin in release notes
ca333 (2):
[fix] proton download path
update proton.mk
kozyilmaz (2):
[macOS] added curl method for param download
[macOS] use shlock instead of flock in fetch-params
mruddy (1):
Resolve issue bitcoin/bitcoin#3166.

View File

@@ -0,0 +1,96 @@
Notable changes
===============
`-disabledeprecation` removal
-----------------------------
In release 1.0.9 we implemented automatic deprecation of `zcashd` software
versions made by the Zcash Company. The configuration option
`-disabledeprecation` was added as a way for users to specifically choose to
stay on a particular software version. However, it incorrectly implied that
deprecated releases would still be supported.
This release removes the `-disabledeprecation` option, so that `zcashd` software
versions made by the Zcash Company will always shut down in accordance with the
defined deprecation policy (currently 16 weeks after release). Users who wish to
use a different policy must now specifically choose to either:
- edit and compile the source code themselves, or
- obtain a software version from someone else who has done so (and obtain
support from them).
Either way, it is much clearer that the software they are running is not
supported by the Zcash Company.
Changelog
=========
Ariel Gabizon (1):
Improve/Fix variable names
Daira Hopwood (1):
Update code_of_conduct.md
Eirik Ogilvie-Wigley (5):
Add tests for sapling anchors
Add hashFinalSaplingRoot to getblocktemplate
Fix parsing parameters in getnetworksolps
Add BOOST_TEST_CONTEXT to distinguish sprout v. sapling
Rename typename
Jack Grigg (16):
Replace boost::array with std::array
Add MacOS support to no-dot-so test
Whitespace cleanup
chainparams: Add Sapling Bech32 HRPs
ConvertBits() - convert from one power-of-2 number base to another.
Fix bech32::Encode() error handling
Implement encoding and decoding of Sapling keys and addresses
Add Mach-O 64-bit detection to security-check.py
Fix cached_witnesses_empty_chain test failure on MacOS
Skip ELF-only sec-hard checks on non-ELF binaries
Remove config option -disabledeprecation
Add release notes for -disabledeprecation removal
Add comment about size calculations for converted serialized keys
Add examples of ConvertBits transformation
Use CChainParams::Bech32HRP() in zs_address_test
Add hashFinalSaplingRoot to getblockheader and getblock output
Jay Graber (8):
Add Sapling key classes to wallet, with new librustzcash APIs
Change librustzcash dependency hash to work for new Sapling classes
Update librustzcash dependency, address comments
Minimal sapling key test
Fix default_address()
s/SaplingInViewingKey/SaplingIncomingViewingKey
Make diversifier functions return option
Add json test vectors for Sapling key components.
Jonathan "Duke" Leto (1):
Clarify help that signmessage only works on taddrs
Larry Ruane (1):
(rpc-test) accurately account for fee without rounding error
Matthew King (2):
Use portable #! in python scripts (/usr/bin/env)
Favour python over python2 as per PR #7723
Paige Peterson (1):
include note about volunteers in CoC
Pieter Wuille (2):
Generalize ConvertBits
Simplify Base32 and Base64 conversions
Simon Liu (9):
Part of #3277. Add comment about deprecated txdb prefixes.
Remove now redundant Rust call to librustzcash_xor.
Add SaplingNote class and test_sapling_note unit test.
Refactor and replace factory method random() with constructor.
Return optional for Sapling commitments and nullifiers.
Closes #3328. Send alert to put non-Overwinter nodes into safe mode.
Fix pyflakes error in test zkey_import_export.
make-release.py: Versioning changes for 1.1.2-rc1.
make-release.py: Updated manpages for 1.1.2-rc1.

View File

@@ -0,0 +1,99 @@
Notable changes
===============
`-disabledeprecation` removal
-----------------------------
In release 1.0.9 we implemented automatic deprecation of `zcashd` software
versions made by the Zcash Company. The configuration option
`-disabledeprecation` was added as a way for users to specifically choose to
stay on a particular software version. However, it incorrectly implied that
deprecated releases would still be supported.
This release removes the `-disabledeprecation` option, so that `zcashd` software
versions made by the Zcash Company will always shut down in accordance with the
defined deprecation policy (currently 16 weeks after release). Users who wish to
use a different policy must now specifically choose to either:
- edit and compile the source code themselves, or
- obtain a software version from someone else who has done so (and obtain
support from them).
Either way, it is much clearer that the software they are running is not
supported by the Zcash Company.
Changelog
=========
Ariel Gabizon (1):
Improve/Fix variable names
Daira Hopwood (1):
Update code_of_conduct.md
Eirik Ogilvie-Wigley (5):
Add tests for sapling anchors
Add hashFinalSaplingRoot to getblocktemplate
Fix parsing parameters in getnetworksolps
Add BOOST_TEST_CONTEXT to distinguish sprout v. sapling
Rename typename
Jack Grigg (16):
Replace boost::array with std::array
Add MacOS support to no-dot-so test
Whitespace cleanup
chainparams: Add Sapling Bech32 HRPs
ConvertBits() - convert from one power-of-2 number base to another.
Fix bech32::Encode() error handling
Implement encoding and decoding of Sapling keys and addresses
Add Mach-O 64-bit detection to security-check.py
Fix cached_witnesses_empty_chain test failure on MacOS
Skip ELF-only sec-hard checks on non-ELF binaries
Remove config option -disabledeprecation
Add release notes for -disabledeprecation removal
Add comment about size calculations for converted serialized keys
Add examples of ConvertBits transformation
Use CChainParams::Bech32HRP() in zs_address_test
Add hashFinalSaplingRoot to getblockheader and getblock output
Jay Graber (8):
Add Sapling key classes to wallet, with new librustzcash APIs
Change librustzcash dependency hash to work for new Sapling classes
Update librustzcash dependency, address comments
Minimal sapling key test
Fix default_address()
s/SaplingInViewingKey/SaplingIncomingViewingKey
Make diversifier functions return option
Add json test vectors for Sapling key components.
Jonathan "Duke" Leto (1):
Clarify help that signmessage only works on taddrs
Larry Ruane (1):
(rpc-test) accurately account for fee without rounding error
Matthew King (2):
Use portable #! in python scripts (/usr/bin/env)
Favour python over python2 as per PR #7723
Paige Peterson (1):
include note about volunteers in CoC
Pieter Wuille (2):
Generalize ConvertBits
Simplify Base32 and Base64 conversions
Simon Liu (12):
Part of #3277. Add comment about deprecated txdb prefixes.
Remove now redundant Rust call to librustzcash_xor.
Add SaplingNote class and test_sapling_note unit test.
Refactor and replace factory method random() with constructor.
Return optional for Sapling commitments and nullifiers.
Closes #3328. Send alert to put non-Overwinter nodes into safe mode.
Fix pyflakes error in test zkey_import_export.
make-release.py: Versioning changes for 1.1.2-rc1.
make-release.py: Updated manpages for 1.1.2-rc1.
make-release.py: Updated release notes and changelog for 1.1.2-rc1.
make-release.py: Versioning changes for 1.1.2.
make-release.py: Updated manpages for 1.1.2.

View File

@@ -0,0 +1,176 @@
Changelog
=========
Alex Morcos (1):
Output line to debug.log when IsInitialBlockDownload latches to false
Ariel Gabizon (1):
Extend Joinsplit tests to Groth
Charlie OKeefe (1):
Remove extra slash from lockfile path
Cory Fields (1):
crypter: shuffle Makefile so that crypto can be used by the wallet
Daira Hopwood (1):
Support testnet rollback.
Daniel Cousens (2):
move rpc* to rpc/
rpc: update inline comments to refer to new file paths
Dimitris Apostolou (1):
Fix typos
Duke Leto (3):
Fix absurd fee bug reported in #3281, with tests
Update comment as per @arielgabizon
Improve error message
Eirik Ogilvie-Wigley (24):
Add more options when asserting in RPC tests
Add change indicator for notes
Fix test broken by change indicator
Rename note data to include sprout
Remove redundant curly braces
Consolidate for loops
Add out point for sapling note data
Add sapling note data and map
Decrement sapling note witnesses
Clear sapling witness cache
Extract method for copying previous witnesses
Extract methods for incrementing witnesses
Extract method for incrementing witness heights
Pass sapling merkle tree when incrementing witnesses
Increment sapling note witnesses
Rename sprout specific methods
Remove extra indentation
Add getter and setter for sapling note data and update tests
Add parameter for version in GetValidReceive
Rename Merkle Trees to include sprout or sapling
Rename Witnesses to include sprout or sapling
Rename test objects to include sprout or sapling
Only include the change field if we have a spending key
Fix assertion and comment
Gregory Maxwell (2):
IBD check uses minimumchain work instead of checkpoints.
IsInitialBlockDownload no longer uses header-only timestamps.
Jack Grigg (38):
Add some more checkpoints, up to the 1.1.0 release
Add Sapling support to z_validateaddress
Update payment-api.md with type field of z_validateaddress
Alter SaplingNote::nullifier() to take a SaplingFullViewingKey
Expose note position in IncrementalMerkleWitness
TransactionBuilder with support for creating Sapling-only transactions
TransactionBuilder: Check that all anchors in a transaction are identical
Formatting
test: Move ECC_Start() call into src/gtest/main.cpp
TransactionBuilder: Add support for transparent inputs and outputs
TransactionBuilder: Add change output to transaction
TransactionBuilder: Make fee configurable
Rename xsk to expsk
Implement CKeyStore::GetSaplingPaymentAddresses()
Raise the 90-character limit on Bech32 encodings
Add Sapling support to z_getnewaddress and z_listaddresses
Fix block hash for checkpoint at height 270000
Formatting
test: Deduplicate logic in wallet_addresses RPC test
test: Another assert in wallet_zkeys_tests.store_and_load_sapling_zkeys
test: Fix permissions of wallet_addresses
test: Update rpc_wallet_z_importexport to account for Sapling changes
Rename DecryptSpendingKey -> DecryptSproutSpendingKey
Rename CryptedSpendingKeyMap -> CryptedSproutSpendingKeyMap
Add Sapling decryption check to CCryptoKeyStore::Unlock()
Check for unencrypted Sapling keys in CCryptoKeyStore::SetCrypted()
Remove outdated comment
Add CWallet::AddCryptedSaplingSpendingKey() hook
Pass SaplingPaymentAddress to store through the CKeyStore
Rename SpendingKeyMap -> SproutSpendingKeyMap
Rename Serialized*Size -> SerializedSprout*Size
Rename *ViewingKey* -> *SproutViewingKey*
Formatting nits
Rename *SpendingKey -> *SproutSpendingKey
chainparams: Add BIP 44 coin type (as registered in SLIP 44)
Upgrade Rust to 1.28.0 stable
Adjust Makefile so that common can be used by the wallet
Move RewindBlockIndex log message inside rewindLength check
Jay Graber (13):
Add Sapling Add/Have/Get to keystore
Add SaplingIncomingViewingKeys map, SaplingFullViewingKey methods
Add StoreAndRetrieveSaplingSpendingKey test
Change default_address to return SaplingPaymentAddr and not boost::optional
Add crypted keystore sapling add key
Discard sk if ivk == 0
Add Sapling support to z_exportkey
Add Sapling support to z_importkey
Add Sapling to rpc_wallet_z_importexport test
Refactor into visitors and throw errors for invalid key or address.
Take expiryheight as param to createrawtransaction
Add Sapling have/get sk crypter overrides
Add Sapling keys to CCryptoKeyStore::EncryptKeys
Jonas Schnelli (2):
[RPC, Wallet] Move RPC dispatch table registration to wallet/ code
Fix test_bitcoin circular dependency issue
Kaz Wesley (1):
IsInitialBlockDownload: usually avoid locking
Larry Ruane (4):
Disable libsnark debug logging in Boost tests
add extra help how to enable experimental features
Add call to sync_all() after (z_sendmany, wait)
don't ban peers when loading pre-overwinter blocks
Pejvan (2):
Update README.md
Update README.md
Richard Littauer (1):
docs(LICENSE): update license year to 2018
Sean Bowe (18):
Update librustzcash
Implementation of Sapling in-band secret distribution.
Swap types in OutputDescription to use new NoteEncryption interfaces.
Prevent nonce reuse in Sapling note encryption API.
Add get_esk() function to Sapling note encryption.
Minor edits
Decryption and tests of note/outgoing encryption.
Update librustzcash and sapling-crypto.
Fix bug in return value.
Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY inside of CheckTransactionWithoutProofVerification.
Move `extern params` to beginning of `test_checktransaction`.
Relocate ECC_Start() to avoid test failures.
Don't call ECC_Start/ECC_Stop outside the test harness.
Make changes to gtest ECC behavior suggested by @str4d.
Check the hash of the (Sapling+) zk-SNARK parameters during initialization.
Switch to use the official Sapling parameters.
make-release.py: Versioning changes for 2.0.0-rc1.
make-release.py: Updated manpages for 2.0.0-rc1.
Simon Liu (9):
Add encryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
Update and fix per review comments, the test for absurd fee.
Minor update to address nits in review.
Implement Sapling note decryption using full viewing key.
Rename AttemptSaplingEncDecryptionUsingFullViewingKey and use function overloading.
Only check for a valid Sapling anchor after Sapling activation.
Clean up for rebase: rename mapNoteData to mapSproutNoteData.
Clean up help messages for RPC createrawtransaction.
Add tests for expiryheight parameter of RPC createrawtransaction.
Wladimir J. van der Laan (2):
Make max tip age an option instead of chainparam
rpc: Register calls where they are defined
kozyilmaz (1):
Add -Wl,-pie linker option for macOS and use it instead of -pie
mdr0id (1):
Fix minor references to auto-senescence in code

View File

@@ -0,0 +1,199 @@
Notable changes
===============
Sapling network upgrade
-----------------------
The activation height for the Sapling network upgrade on mainnet is included
in this release. Sapling will activate on mainnet at height 419200, which is
expected to be mined on the 28th of October 2018. Please upgrade to this release,
or any subsequent release, in order to follow the Sapling network upgrade.
The testnet is being rolled back in this release to Overwinter. Sapling will
activate on testnet at height 280000. Please update your testnet nodes before
then.
Changelog
=========
Alex Morcos (1):
Output line to debug.log when IsInitialBlockDownload latches to false
Ariel Gabizon (1):
Extend Joinsplit tests to Groth
Charlie OKeefe (1):
Remove extra slash from lockfile path
Cory Fields (1):
crypter: shuffle Makefile so that crypto can be used by the wallet
Daira Hopwood (1):
Support testnet rollback.
Daniel Cousens (2):
move rpc* to rpc/
rpc: update inline comments to refer to new file paths
Dimitris Apostolou (1):
Fix typos
Duke Leto (3):
Fix absurd fee bug reported in #3281, with tests
Update comment as per @arielgabizon
Improve error message
Eirik Ogilvie-Wigley (24):
Add more options when asserting in RPC tests
Add change indicator for notes
Fix test broken by change indicator
Rename note data to include sprout
Remove redundant curly braces
Consolidate for loops
Add out point for sapling note data
Add sapling note data and map
Decrement sapling note witnesses
Clear sapling witness cache
Extract method for copying previous witnesses
Extract methods for incrementing witnesses
Extract method for incrementing witness heights
Pass sapling merkle tree when incrementing witnesses
Increment sapling note witnesses
Rename sprout specific methods
Remove extra indentation
Add getter and setter for sapling note data and update tests
Add parameter for version in GetValidReceive
Rename Merkle Trees to include sprout or sapling
Rename Witnesses to include sprout or sapling
Rename test objects to include sprout or sapling
Only include the change field if we have a spending key
Fix assertion and comment
Gregory Maxwell (2):
IBD check uses minimumchain work instead of checkpoints.
IsInitialBlockDownload no longer uses header-only timestamps.
Jack Grigg (41):
Add some more checkpoints, up to the 1.1.0 release
Add Sapling support to z_validateaddress
Update payment-api.md with type field of z_validateaddress
Alter SaplingNote::nullifier() to take a SaplingFullViewingKey
Expose note position in IncrementalMerkleWitness
TransactionBuilder with support for creating Sapling-only transactions
TransactionBuilder: Check that all anchors in a transaction are identical
Formatting
test: Move ECC_Start() call into src/gtest/main.cpp
TransactionBuilder: Add support for transparent inputs and outputs
TransactionBuilder: Add change output to transaction
TransactionBuilder: Make fee configurable
Rename xsk to expsk
Implement CKeyStore::GetSaplingPaymentAddresses()
Raise the 90-character limit on Bech32 encodings
Add Sapling support to z_getnewaddress and z_listaddresses
Fix block hash for checkpoint at height 270000
Formatting
test: Deduplicate logic in wallet_addresses RPC test
test: Another assert in wallet_zkeys_tests.store_and_load_sapling_zkeys
test: Fix permissions of wallet_addresses
test: Update rpc_wallet_z_importexport to account for Sapling changes
Rename DecryptSpendingKey -> DecryptSproutSpendingKey
Rename CryptedSpendingKeyMap -> CryptedSproutSpendingKeyMap
Add Sapling decryption check to CCryptoKeyStore::Unlock()
Check for unencrypted Sapling keys in CCryptoKeyStore::SetCrypted()
Remove outdated comment
Add CWallet::AddCryptedSaplingSpendingKey() hook
Pass SaplingPaymentAddress to store through the CKeyStore
Rename SpendingKeyMap -> SproutSpendingKeyMap
Rename Serialized*Size -> SerializedSprout*Size
Rename *ViewingKey* -> *SproutViewingKey*
Formatting nits
Rename *SpendingKey -> *SproutSpendingKey
chainparams: Add BIP 44 coin type (as registered in SLIP 44)
Upgrade Rust to 1.28.0 stable
Adjust Makefile so that common can be used by the wallet
Move RewindBlockIndex log message inside rewindLength check
test: gtest for Sapling encoding and decoding
test: Use regtest in key_tests/zs_address_test
Disable Sapling features on mainnet
Jay Graber (13):
Add Sapling Add/Have/Get to keystore
Add SaplingIncomingViewingKeys map, SaplingFullViewingKey methods
Add StoreAndRetrieveSaplingSpendingKey test
Change default_address to return SaplingPaymentAddr and not boost::optional
Add crypted keystore sapling add key
Discard sk if ivk == 0
Add Sapling support to z_exportkey
Add Sapling support to z_importkey
Add Sapling to rpc_wallet_z_importexport test
Refactor into visitors and throw errors for invalid key or address.
Take expiryheight as param to createrawtransaction
Add Sapling have/get sk crypter overrides
Add Sapling keys to CCryptoKeyStore::EncryptKeys
Jonas Schnelli (2):
[RPC, Wallet] Move RPC dispatch table registration to wallet/ code
Fix test_bitcoin circular dependency issue
Kaz Wesley (1):
IsInitialBlockDownload: usually avoid locking
Larry Ruane (4):
Disable libsnark debug logging in Boost tests
add extra help how to enable experimental features
Add call to sync_all() after (z_sendmany, wait)
don't ban peers when loading pre-overwinter blocks
Pejvan (2):
Update README.md
Update README.md
Richard Littauer (1):
docs(LICENSE): update license year to 2018
Sean Bowe (21):
Update librustzcash
Implementation of Sapling in-band secret distribution.
Swap types in OutputDescription to use new NoteEncryption interfaces.
Prevent nonce reuse in Sapling note encryption API.
Add get_esk() function to Sapling note encryption.
Minor edits
Decryption and tests of note/outgoing encryption.
Update librustzcash and sapling-crypto.
Fix bug in return value.
Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY inside of CheckTransactionWithoutProofVerification.
Move `extern params` to beginning of `test_checktransaction`.
Relocate ECC_Start() to avoid test failures.
Don't call ECC_Start/ECC_Stop outside the test harness.
Make changes to gtest ECC behavior suggested by @str4d.
Check the hash of the (Sapling+) zk-SNARK parameters during initialization.
Switch to use the official Sapling parameters.
make-release.py: Versioning changes for 2.0.0-rc1.
make-release.py: Updated manpages for 2.0.0-rc1.
make-release.py: Updated release notes and changelog for 2.0.0-rc1.
Always write the empty root down as the best root, since we may roll back.
Sapling mainnet activation height
Simon Liu (11):
Add encryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
Update and fix per review comments, the test for absurd fee.
Minor update to address nits in review.
Implement Sapling note decryption using full viewing key.
Rename AttemptSaplingEncDecryptionUsingFullViewingKey and use function overloading.
Only check for a valid Sapling anchor after Sapling activation.
Clean up for rebase: rename mapNoteData to mapSproutNoteData.
Clean up help messages for RPC createrawtransaction.
Add tests for expiryheight parameter of RPC createrawtransaction.
make-release.py: Versioning changes for 2.0.0.
make-release.py: Updated manpages for 2.0.0.
Wladimir J. van der Laan (2):
Make max tip age an option instead of chainparam
rpc: Register calls where they are defined
kozyilmaz (1):
Add -Wl,-pie linker option for macOS and use it instead of -pie
mdr0id (1):
Fix minor references to auto-senescence in code

View File

@@ -24,6 +24,8 @@ Check that there are no surprising performance regressions:
Ensure that new performance metrics appear on that site.
Update `src/chainparams.cpp` nMinimumChainWork with information from the getblockchaininfo rpc.
### Protocol Safety Checks:
If this release changes the behavior of the protocol or fixes a serious

View File

@@ -6,7 +6,7 @@ and tests weren't explicitly disabled.
There are two scripts for running tests:
* ``qa/zcash/full-test-suite.sh``, to run the main test suite
* ``qa/zcash/full_test_suite.py``, to run the main test suite
* ``qa/pull-tester/rpc-tests.sh``, to run the RPC tests.
The main test suite uses two different testing frameworks. Tests using the Boost