Browse Source

Remove old release notes for other projects

pull/53/head
Duke Leto 4 years ago
parent
commit
20fd7f0ce0
  1. 762
      doc/bitcoin-release-notes/release-notes-0.10.0.md
  2. 143
      doc/bitcoin-release-notes/release-notes-0.10.1.md
  3. 86
      doc/bitcoin-release-notes/release-notes-0.10.2.md
  4. 165
      doc/bitcoin-release-notes/release-notes-0.10.3.md
  5. 172
      doc/bitcoin-release-notes/release-notes-0.11.1.md
  6. 217
      doc/bitcoin-release-notes/release-notes-0.11.2.md
  7. 13
      doc/bitcoin-release-notes/release-notes-0.3.12.md
  8. 26
      doc/bitcoin-release-notes/release-notes-0.3.13.md
  9. 11
      doc/bitcoin-release-notes/release-notes-0.3.14.md
  10. 6
      doc/bitcoin-release-notes/release-notes-0.3.15.md
  11. 1
      doc/bitcoin-release-notes/release-notes-0.3.16.md
  12. 12
      doc/bitcoin-release-notes/release-notes-0.3.17.md
  13. 11
      doc/bitcoin-release-notes/release-notes-0.3.18.md
  14. 9
      doc/bitcoin-release-notes/release-notes-0.3.19.md
  15. 1
      doc/bitcoin-release-notes/release-notes-0.3.20.1.md
  16. 17
      doc/bitcoin-release-notes/release-notes-0.3.20.2.md
  17. 22
      doc/bitcoin-release-notes/release-notes-0.3.20.md
  18. 20
      doc/bitcoin-release-notes/release-notes-0.3.21.md
  19. 16
      doc/bitcoin-release-notes/release-notes-0.3.22.md
  20. 10
      doc/bitcoin-release-notes/release-notes-0.3.23.md
  21. 20
      doc/bitcoin-release-notes/release-notes-0.3.24.md
  22. 70
      doc/bitcoin-release-notes/release-notes-0.4.0.md
  23. 38
      doc/bitcoin-release-notes/release-notes-0.4.1.md
  24. 1
      doc/bitcoin-release-notes/release-notes-0.4.2.md
  25. 21
      doc/bitcoin-release-notes/release-notes-0.4.3.md
  26. 30
      doc/bitcoin-release-notes/release-notes-0.4.4.md
  27. 1
      doc/bitcoin-release-notes/release-notes-0.4.5.md
  28. 37
      doc/bitcoin-release-notes/release-notes-0.4.6.md
  29. 70
      doc/bitcoin-release-notes/release-notes-0.5.0.md
  30. 43
      doc/bitcoin-release-notes/release-notes-0.5.1.md
  31. 22
      doc/bitcoin-release-notes/release-notes-0.5.2.md
  32. 42
      doc/bitcoin-release-notes/release-notes-0.5.3.md
  33. 39
      doc/bitcoin-release-notes/release-notes-0.5.4.md
  34. 37
      doc/bitcoin-release-notes/release-notes-0.5.5.md
  35. 138
      doc/bitcoin-release-notes/release-notes-0.6.0.md
  36. 2
      doc/bitcoin-release-notes/release-notes-0.6.1.md
  37. 50
      doc/bitcoin-release-notes/release-notes-0.6.2.md
  38. 29
      doc/bitcoin-release-notes/release-notes-0.6.3.md
  39. 169
      doc/bitcoin-release-notes/release-notes-0.7.0.md
  40. 110
      doc/bitcoin-release-notes/release-notes-0.7.1.md
  41. 68
      doc/bitcoin-release-notes/release-notes-0.7.2.md
  42. 139
      doc/bitcoin-release-notes/release-notes-0.8.0.md
  43. 22
      doc/bitcoin-release-notes/release-notes-0.8.1.md
  44. 137
      doc/bitcoin-release-notes/release-notes-0.8.2.md
  45. 18
      doc/bitcoin-release-notes/release-notes-0.8.3.md
  46. 83
      doc/bitcoin-release-notes/release-notes-0.8.4.md
  47. 44
      doc/bitcoin-release-notes/release-notes-0.8.5.md
  48. 66
      doc/bitcoin-release-notes/release-notes-0.8.6.md
  49. 411
      doc/bitcoin-release-notes/release-notes-0.9.0.md
  50. 53
      doc/bitcoin-release-notes/release-notes-0.9.1.md
  51. 207
      doc/bitcoin-release-notes/release-notes-0.9.2.1.md
  52. 207
      doc/bitcoin-release-notes/release-notes-0.9.2.md
  53. 101
      doc/bitcoin-release-notes/release-notes-0.9.3.md
  54. 95
      doc/bitcoin-release-notes/release-notes-0.9.4.md
  55. 60
      doc/bitcoin-release-notes/release-notes-0.9.5.md
  56. 4
      doc/release-notes.md
  57. 35
      doc/release-notes/release-notes-0.11.2.z2.md
  58. 69
      doc/release-notes/release-notes-0.11.2.z3.md
  59. 70
      doc/release-notes/release-notes-0.11.2.z4.md
  60. 78
      doc/release-notes/release-notes-0.11.2.z5.md
  61. 18
      doc/release-notes/release-notes-0.11.2.z6.md
  62. 90
      doc/release-notes/release-notes-0.11.2.z7.md
  63. 61
      doc/release-notes/release-notes-0.11.2.z8.md
  64. 55
      doc/release-notes/release-notes-0.11.2.z9.md
  65. 58
      doc/release-notes/release-notes-0.3.0.md
  66. 159
      doc/release-notes/release-notes-1.0.0-beta1.md
  67. 119
      doc/release-notes/release-notes-1.0.0-beta2.md
  68. 121
      doc/release-notes/release-notes-1.0.0-rc1.md
  69. 106
      doc/release-notes/release-notes-1.0.0-rc2.md
  70. 51
      doc/release-notes/release-notes-1.0.0-rc3.md
  71. 14
      doc/release-notes/release-notes-1.0.0-rc4.md
  72. 18
      doc/release-notes/release-notes-1.0.0.md
  73. 34
      doc/release-notes/release-notes-1.0.1.md
  74. 11
      doc/release-notes/release-notes-1.0.10-1.md
  75. 79
      doc/release-notes/release-notes-1.0.10.md
  76. 44
      doc/release-notes/release-notes-1.0.11-rc1.md
  77. 47
      doc/release-notes/release-notes-1.0.11.md
  78. 57
      doc/release-notes/release-notes-1.0.12-rc1.md
  79. 65
      doc/release-notes/release-notes-1.0.12.md
  80. 88
      doc/release-notes/release-notes-1.0.13-rc1.md
  81. 95
      doc/release-notes/release-notes-1.0.13-rc2.md
  82. 98
      doc/release-notes/release-notes-1.0.13.md
  83. 156
      doc/release-notes/release-notes-1.0.14-rc1.md
  84. 160
      doc/release-notes/release-notes-1.0.14.md
  85. 165
      doc/release-notes/release-notes-1.0.15-rc1.md
  86. 209
      doc/release-notes/release-notes-1.0.15.md
  87. 16
      doc/release-notes/release-notes-1.0.2.md
  88. 35
      doc/release-notes/release-notes-1.0.3.md
  89. 75
      doc/release-notes/release-notes-1.0.4.md
  90. 58
      doc/release-notes/release-notes-1.0.5.md
  91. 148
      doc/release-notes/release-notes-1.0.6.md
  92. 4
      doc/release-notes/release-notes-1.0.7-1.md
  93. 165
      doc/release-notes/release-notes-1.0.7.md
  94. 16
      doc/release-notes/release-notes-1.0.8-1.md
  95. 170
      doc/release-notes/release-notes-1.0.8.md
  96. 90
      doc/release-notes/release-notes-1.0.9.md
  97. 180
      doc/release-notes/release-notes-1.1.0-rc1.md
  98. 193
      doc/release-notes/release-notes-1.1.0.md
  99. 286
      doc/release-notes/release-notes-1.1.1-rc1.md
  100. 290
      doc/release-notes/release-notes-1.1.1-rc2.md
  101. 336
      doc/release-notes/release-notes-1.1.1.md
  102. 96
      doc/release-notes/release-notes-1.1.2-rc1.md
  103. 99
      doc/release-notes/release-notes-1.1.2.md
  104. 176
      doc/release-notes/release-notes-2.0.0-rc1.md
  105. 199
      doc/release-notes/release-notes-2.0.0.md
  106. 244
      doc/release-notes/release-notes-2.0.1-rc1.md
  107. 276
      doc/release-notes/release-notes-2.0.1.md

762
doc/bitcoin-release-notes/release-notes-0.10.0.md

@ -1,762 +0,0 @@
Bitcoin Core version 0.10.0 is now available from:
https://bitcoin.org/bin/0.10.0/
This is a new major version release, bringing both new features and
bug fixes.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Upgrading and downgrading
=========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrading warning
---------------------
Because release 0.10.0 makes use of headers-first synchronization and parallel
block download (see further), the block files and databases are not
backwards-compatible with older versions of Bitcoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
* The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Notable changes
===============
Faster synchronization
----------------------
Bitcoin Core now uses 'headers-first synchronization'. This means that we first
ask peers for block headers (a total of 27 megabytes, as of December 2014) and
validate those. In a second stage, when the headers have been discovered, we
download the blocks. However, as we already know about the whole chain in
advance, the blocks can be downloaded in parallel from all available peers.
In practice, this means a much faster and more robust synchronization. On
recent hardware with a decent network link, it can be as little as 3 hours
for an initial full synchronization. You may notice a slower progress in the
very first few minutes, when headers are still being fetched and verified, but
it should gain speed afterwards.
A few RPCs were added/updated as a result of this:
- `getblockchaininfo` now returns the number of validated headers in addition to
the number of validated blocks.
- `getpeerinfo` lists both the number of blocks and headers we know we have in
common with each peer. While synchronizing, the heights of the blocks that we
have requested from peers (but haven't received yet) are also listed as
'inflight'.
- A new RPC `getchaintips` lists all known branches of the block chain,
including those we only have headers for.
Transaction fee changes
-----------------------
This release automatically estimates how high a transaction fee (or how
high a priority) transactions require to be confirmed quickly. The default
settings will create transactions that confirm quickly; see the new
'txconfirmtarget' setting to control the tradeoff between fees and
confirmation times. Fees are added by default unless the 'sendfreetransactions'
setting is enabled.
Prior releases used hard-coded fees (and priorities), and would
sometimes create transactions that took a very long time to confirm.
Statistics used to estimate fees and priorities are saved in the
data directory in the `fee_estimates.dat` file just before
program shutdown, and are read in at startup.
New command line options for transaction fee changes:
- `-txconfirmtarget=n` : create transactions that have enough fees (or priority)
so they are likely to begin confirmation within n blocks (default: 1). This setting
is over-ridden by the -paytxfee option.
- `-sendfreetransactions` : Send transactions as zero-fee transactions if possible
(default: 0)
New RPC commands for fee estimation:
- `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for
a transaction to begin confirmation within nblocks. Returns -1 if not enough
transactions have been observed to compute a good estimate.
- `estimatepriority nblocks` : Returns approximate priority needed for
a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not
enough free transactions have been observed to compute a good
estimate.
RPC access control changes
--------------------------
Subnet matching for the purpose of access control is now done
by matching the binary network address, instead of with string wildcard matching.
For the user this means that `-rpcallowip` takes a subnet specification, which can be
- a single IP address (e.g. `1.2.3.4` or `fe80::0012:3456:789a:bcde`)
- a network/CIDR (e.g. `1.2.3.0/24` or `fe80::0000/64`)
- a network/netmask (e.g. `1.2.3.4/255.255.255.0` or `fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff`)
An arbitrary number of `-rpcallow` arguments can be given. An incoming connection will be accepted if its origin address
matches one of them.
For example:
| 0.9.x and before | 0.10.x |
|--------------------------------------------|---------------------------------------|
| `-rpcallowip=192.168.1.1` | `-rpcallowip=192.168.1.1` (unchanged) |
| `-rpcallowip=192.168.1.*` | `-rpcallowip=192.168.1.0/24` |
| `-rpcallowip=192.168.*` | `-rpcallowip=192.168.0.0/16` |
| `-rpcallowip=*` (dangerous!) | `-rpcallowip=::/0` (still dangerous!) |
Using wildcards will result in the rule being rejected with the following error in debug.log:
Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).
REST interface
--------------
A new HTTP API is exposed when running with the `-rest` flag, which allows
unauthenticated access to public node data.
It is served on the same port as RPC, but does not need a password, and uses
plain HTTP instead of JSON-RPC.
Assuming a local RPC server running on port 8332, it is possible to request:
- Blocks: http://localhost:8332/rest/block/*HASH*.*EXT*
- Blocks without transactions: http://localhost:8332/rest/block/notxdetails/*HASH*.*EXT*
- Transactions (requires `-txindex`): http://localhost:8332/rest/tx/*HASH*.*EXT*
In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded
binary) or `json`.
For more details, see the `doc/REST-interface.md` document in the repository.
RPC Server "Warm-Up" Mode
-------------------------
The RPC server is started earlier now, before most of the expensive
intialisations like loading the block index. It is available now almost
immediately after starting the process. However, until all initialisations
are done, it always returns an immediate error with code -28 to all calls.
This new behaviour can be useful for clients to know that a server is already
started and will be available soon (for instance, so that they do not
have to start it themselves).
Improved signing security
-------------------------
For 0.10 the security of signing against unusual attacks has been
improved by making the signatures constant time and deterministic.
This change is a result of switching signing to use libsecp256k1
instead of OpenSSL. Libsecp256k1 is a cryptographic library
optimized for the curve Bitcoin uses which was created by Bitcoin
Core developer Pieter Wuille.
There exist attacks[1] against most ECC implementations where an
attacker on shared virtual machine hardware could extract a private
key if they could cause a target to sign using the same key hundreds
of times. While using shared hosts and reusing keys are inadvisable
for other reasons, it's a better practice to avoid the exposure.
OpenSSL has code in their source repository for derandomization
and reduction in timing leaks that we've eagerly wanted to use for a
long time, but this functionality has still not made its
way into a released version of OpenSSL. Libsecp256k1 achieves
significantly stronger protection: As far as we're aware this is
the only deployed implementation of constant time signing for
the curve Bitcoin uses and we have reason to believe that
libsecp256k1 is better tested and more thoroughly reviewed
than the implementation in OpenSSL.
[1] https://eprint.iacr.org/2014/161.pdf
Watch-only wallet support
-------------------------
The wallet can now track transactions to and from wallets for which you know
all addresses (or scripts), even without the private keys.
This can be used to track payments without needing the private keys online on a
possibly vulnerable system. In addition, it can help for (manual) construction
of multisig transactions where you are only one of the signers.
One new RPC, `importaddress`, is added which functions similarly to
`importprivkey`, but instead takes an address or script (in hexadecimal) as
argument. After using it, outputs credited to this address or script are
considered to be received, and transactions consuming these outputs will be
considered to be sent.
The following RPCs have optional support for watch-only:
`getbalance`, `listreceivedbyaddress`, `listreceivedbyaccount`,
`listtransactions`, `listaccounts`, `listsinceblock`, `gettransaction`. See the
RPC documentation for those methods for more information.
Compared to using `getrawtransaction`, this mechanism does not require
`-txindex`, scales better, integrates better with the wallet, and is compatible
with future block chain pruning functionality. It does mean that all relevant
addresses need to added to the wallet before the payment, though.
Consensus library
-----------------
Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library.
The purpose of this library is to make the verification functionality that is
critical to Bitcoin's consensus available to other applications, e.g. to language
bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or
alternative node implementations.
This library is called `libbitcoinconsensus.so` (or, `.dll` for Windows).
Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h).
In its initial version the API includes two functions:
- `bitcoinconsensus_verify_script` verifies a script. It returns whether the indicated input of the provided serialized transaction
correctly spends the passed scriptPubKey under additional constraints indicated by flags
- `bitcoinconsensus_version` returns the API version, currently at an experimental `0`
The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface
for existing methods should remain stable.
Standard script rules relaxed for P2SH addresses
------------------------------------------------
The IsStandard() rules have been almost completely removed for P2SH
redemption scripts, allowing applications to make use of any valid
script type, such as "n-of-m OR y", hash-locked oracle addresses, etc.
While the Bitcoin protocol has always supported these types of script,
actually using them on mainnet has been previously inconvenient as
standard Bitcoin Core nodes wouldn't relay them to miners, nor would
most miners include them in blocks they mined.
bitcoin-tx
----------
It has been observed that many of the RPC functions offered by bitcoind are
"pure functions", and operate independently of the bitcoind wallet. This
included many of the RPC "raw transaction" API functions, such as
createrawtransaction.
bitcoin-tx is a newly introduced command line utility designed to enable easy
manipulation of bitcoin transactions. A summary of its operation may be
obtained via "bitcoin-tx --help" Transactions may be created or signed in a
manner similar to the RPC raw tx API. Transactions may be updated, deleting
inputs or outputs, or appending new inputs and outputs. Custom scripts may be
easily composed using a simple text notation, borrowed from the bitcoin test
suite.
This tool may be used for experimenting with new transaction types, signing
multi-party transactions, and many other uses. Long term, the goal is to
deprecate and remove "pure function" RPC API calls, as those do not require a
server round-trip to execute.
Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making
key and script operations easily accessible via command line.
Mining and relay policy enhancements
------------------------------------
Bitcoin Core's block templates are now for version 3 blocks only, and any mining
software relying on its `getblocktemplate` must be updated in parallel to use
libblkmaker either version 0.4.2 or any version from 0.5.1 onward.
If you are solo mining, this will affect you the moment you upgrade Bitcoin
Core, which must be done prior to BIP66 achieving its 951/1001 status.
If you are mining with the stratum mining protocol: this does not affect you.
If you are mining with the getblocktemplate protocol to a pool: this will affect
you at the pool operator's discretion, which must be no later than BIP66
achieving its 951/1001 status.
The `prioritisetransaction` RPC method has been added to enable miners to
manipulate the priority of transactions on an individual basis.
Bitcoin Core now supports BIP 22 long polling, so mining software can be
notified immediately of new templates rather than having to poll periodically.
Support for BIP 23 block proposals is now available in Bitcoin Core's
`getblocktemplate` method. This enables miners to check the basic validity of
their next block before expending work on it, reducing risks of accidental
hardforks or mining invalid blocks.
Two new options to control mining policy:
- `-datacarrier=0/1` : Relay and mine "data carrier" (OP_RETURN) transactions
if this is 1.
- `-datacarriersize=n` : Maximum size, in bytes, we consider acceptable for
"data carrier" outputs.
The relay policy has changed to more properly implement the desired behavior of not
relaying free (or very low fee) transactions unless they have a priority above the
AllowFreeThreshold(), in which case they are relayed subject to the rate limiter.
BIP 66: strict DER encoding for signatures
------------------------------------------
Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new
consensus rule, which prohibits non-DER signatures. Such transactions have been
non-standard since Bitcoin v0.8.0 (released in February 2013), but were
technically still permitted inside blocks.
This change breaks the dependency on OpenSSL's signature parsing, and is
required if implementations would want to remove all of OpenSSL from the
consensus code.
The same miner-voting mechanism as in BIP 34 is used: when 751 out of a
sequence of 1001 blocks have version number 3 or higher, the new consensus
rule becomes active for those blocks. When 951 out of a sequence of 1001
blocks have version number 3 or higher, it becomes mandatory for all blocks.
Backward compatibility with current mining software is NOT provided, thus miners
should read the first paragraph of "Mining and relay policy enhancements" above.
0.10.0 Change log
=================
Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
RPC:
- `f923c07` Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost
- `b641c9c` Fix addnode "onetry": Connect with OpenNetworkConnection
- `171ca77` estimatefee / estimatepriority RPC methods
- `b750cf1` Remove cli functionality from bitcoind
- `f6984e8` Add "chain" to getmininginfo, improve help in getblockchaininfo
- `99ddc6c` Add nLocalServices info to RPC getinfo
- `cf0c47b` Remove getwork() RPC call
- `2a72d45` prioritisetransaction <txid> <priority delta> <priority tx fee>
- `e44fea5` Add an option `-datacarrier` to allow users to disable relaying/mining data carrier transactions
- `2ec5a3d` Prevent easy RPC memory exhaustion attack
- `d4640d7` Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation
- `83f3543` Added argument to listaccounts to include watchonly addresses
- `952877e` Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address
- `d7d5d23` Added argument to listtransactions and listsinceblock to include watchonly addresses
- `f87ba3d` added includeWatchonly argument to 'gettransaction' because it affects balance calculation
- `0fa2f88` added includedWatchonly argument to listreceivedbyaddress/...account
- `6c37f7f` `getrawchangeaddress`: fail when keypool exhausted and wallet locked
- `ff6a7af` getblocktemplate: longpolling support
- `c4a321f` Add peerid to getpeerinfo to allow correlation with the logs
- `1b4568c` Add vout to ListTransactions output
- `b33bd7a` Implement "getchaintips" RPC command to monitor blockchain forks
- `733177e` Remove size limit in RPC client, keep it in server
- `6b5b7cb` Categorize rpc help overview
- `6f2c26a` Closely track mempool byte total. Add "getmempoolinfo" RPC
- `aa82795` Add detailed network info to getnetworkinfo RPC
- `01094bd` Don't reveal whether password is <20 or >20 characters in RPC
- `57153d4` rpc: Compute number of confirmations of a block from block height
- `ff36cbe` getnetworkinfo: export local node's client sub-version string
- `d14d7de` SanitizeString: allow '(' and ')'
- `31d6390` Fixed setaccount accepting foreign address
- `b5ec5fe` update getnetworkinfo help with subversion
- `ad6e601` RPC additions after headers-first
- `33dfbf5` rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo`
- `2aa6329` Enable customising node policy for datacarrier data size with a -datacarriersize option
- `f877aaa` submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock
- `e69a587` submitblock: Support for returning specific rejection reasons
- `af82884` Add "warmup mode" for RPC server
- `e2655e0` Add unauthenticated HTTP REST interface to public blockchain data
- `683dc40` Disable SSLv3 (in favor of TLS) for the RPC client and server
- `44b4c0d` signrawtransaction: validate private key
- `9765a50` Implement BIP 23 Block Proposal
- `f9de17e` Add warning comment to getinfo
Command-line options:
- `ee21912` Use netmasks instead of wildcards for IP address matching
- `deb3572` Add `-rpcbind` option to allow binding RPC port on a specific interface
- `96b733e` Add `-version` option to get just the version
- `1569353` Add `-stopafterblockimport` option
- `77cbd46` Let -zapwallettxes recover transaction meta data
- `1c750db` remove -tor compatibility code (only allow -onion)
- `4aaa017` rework help messages for fee-related options
- `4278b1d` Clarify error message when invalid -rpcallowip
- `6b407e4` -datadir is now allowed in config files
- `bdd5b58` Add option `-sysperms` to disable 077 umask (create new files with system default umask)
- `cbe39a3` Add "bitcoin-tx" command line utility and supporting modules
- `dbca89b` Trigger -alertnotify if network is upgrading without you
- `ad96e7c` Make -reindex cope with out-of-order blocks
- `16d5194` Skip reindexed blocks individually
- `ec01243` --tracerpc option for regression tests
- `f654f00` Change -genproclimit default to 1
- `3c77714` Make -proxy set all network types, avoiding a connect leak
- `57be955` Remove -printblock, -printblocktree, and -printblockindex
- `ad3d208` remove -maxorphanblocks config parameter since it is no longer functional
Block and transaction handling:
- `7a0e84d` ProcessGetData(): abort if a block file is missing from disk
- `8c93bf4` LoadBlockIndexDB(): Require block db reindex if any `blk*.dat` files are missing
- `77339e5` Get rid of the static chainMostWork (optimization)
- `4e0eed8` Allow ActivateBestChain to release its lock on cs_main
- `18e7216` Push cs_mains down in ProcessBlock
- `fa126ef` Avoid undefined behavior using CFlatData in CScript serialization
- `7f3b4e9` Relax IsStandard rules for pay-to-script-hash transactions
- `c9a0918` Add a skiplist to the CBlockIndex structure
- `bc42503` Use unordered_map for CCoinsViewCache with salted hash (optimization)
- `d4d3fbd` Do not flush the cache after every block outside of IBD (optimization)
- `ad08d0b` Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache
- `5734d4d` Only remove actualy failed blocks from setBlockIndexValid
- `d70bc52` Rework block processing benchmark code
- `714a3e6` Only keep setBlockIndexValid entries that are possible improvements
- `ea100c7` Reduce maximum coinscache size during verification (reduce memory usage)
- `4fad8e6` Reject transactions with excessive numbers of sigops
- `b0875eb` Allow BatchWrite to destroy its input, reducing copying (optimization)
- `92bb6f2` Bypass reloading blocks from disk (optimization)
- `2e28031` Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage)
- `ab15b2e` Avoid copying undo data (optimization)
- `341735e` Headers-first synchronization
- `afc32c5` Fix rebuild-chainstate feature and improve its performance
- `e11b2ce` Fix large reorgs
- `ed6d1a2` Keep information about all block files in memory
- `a48f2d6` Abstract context-dependent block checking from acceptance
- `7e615f5` Fixed mempool sync after sending a transaction
- `51ce901` Improve chainstate/blockindex disk writing policy
- `a206950` Introduce separate flushing modes
- `9ec75c5` Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true
- `868d041` Remove coinbase-dependant transactions during reorg
- `723d12c` Remove txn which are invalidated by coinbase maturity during reorg
- `0cb8763` Check against MANDATORY flags prior to accepting to mempool
- `8446262` Reject headers that build on an invalid parent
- `008138c` Bugfix: only track UTXO modification after lookup
P2P protocol and network code:
- `f80cffa` Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails
- `c30329a` Add testnet DNS seed of Alex Kotenko
- `45a4baf` Add testnet DNS seed of Andreas Schildbach
- `f1920e8` Ping automatically every 2 minutes (unconditionally)
- `806fd19` Allocate receive buffers in on the fly
- `6ecf3ed` Display unknown commands received
- `aa81564` Track peers' available blocks
- `caf6150` Use async name resolving to improve net thread responsiveness
- `9f4da19` Use pong receive time rather than processing time
- `0127a9b` remove SOCKS4 support from core and GUI, use SOCKS5
- `40f5cb8` Send rejects and apply DoS scoring for errors in direct block validation
- `dc942e6` Introduce whitelisted peers
- `c994d2e` prevent SOCKET leak in BindListenPort()
- `a60120e` Add built-in seeds for .onion
- `60dc8e4` Allow -onlynet=onion to be used
- `3a56de7` addrman: Do not propagate obviously poor addresses onto the network
- `6050ab6` netbase: Make SOCKS5 negotiation interruptible
- `604ee2a` Remove tx from AlreadyAskedFor list once we receive it, not when we process it
- `efad808` Avoid reject message feedback loops
- `71697f9` Separate protocol versioning from clientversion
- `20a5f61` Don't relay alerts to peers before version negotiation
- `b4ee0bd` Introduce preferred download peers
- `845c86d` Do not use third party services for IP detection
- `12a49ca` Limit the number of new addressses to accumulate
- `35e408f` Regard connection failures as attempt for addrman
- `a3a7317` Introduce 10 minute block download timeout
- `3022e7d` Require sufficent priority for relay of free transactions
- `58fda4d` Update seed IPs, based on bitcoin.sipa.be crawler data
- `18021d0` Remove bitnodes.io from dnsseeds.
Validation:
- `6fd7ef2` Also switch the (unused) verification code to low-s instead of even-s
- `584a358` Do merkle root and txid duplicates check simultaneously
- `217a5c9` When transaction outputs exceed inputs, show the offending amounts so as to aid debugging
- `f74fc9b` Print input index when signature validation fails, to aid debugging
- `6fd59ee` script.h: set_vch() should shift a >32 bit value
- `d752ba8` Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only)
- `698c6ab` Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only)
- `ab9edbd` script: create sane error return codes for script validation and remove logging
- `219a147` script: check ScriptError values in script tests
- `0391423` Discourage NOPs reserved for soft-fork upgrades
- `98b135f` Make STRICTENC invalid pubkeys fail the script rather than the opcode
- `307f7d4` Report script evaluation failures in log and reject messages
- `ace39db` consensus: guard against openssl's new strict DER checks
- `12b7c44` Improve robustness of DER recoding code
- `76ce5c8` fail immediately on an empty signature
Build system:
- `f25e3ad` Fix build in OS X 10.9
- `65e8ba4` build: Switch to non-recursive make
- `460b32d` build: fix broken boost chrono check on some platforms
- `9ce0774` build: Fix windows configure when using --with-qt-libdir
- `ea96475` build: Add mention of --disable-wallet to bdb48 error messages
- `1dec09b` depends: add shared dependency builder
- `c101c76` build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix
- `e432a5f` build: add option for reducing exports (v2)
- `6134b43` Fixing condition 'sabotaging' MSVC build
- `af0bd5e` osx: fix signing to make Gatekeeper happy (again)
- `a7d1f03` build: fix dynamic boost check when --with-boost= is used
- `d5fd094` build: fix qt test build when libprotobuf is in a non-standard path
- `2cf5f16` Add libbitcoinconsensus library
- `914868a` build: add a deterministic dmg signer
- `2d375fe` depends: bump openssl to 1.0.1k
- `b7a4ecc` Build: Only check for boost when building code that requires it
Wallet:
- `b33d1f5` Use fee/priority estimates in wallet CreateTransaction
- `4b7b1bb` Sanity checks for estimates
- `c898846` Add support for watch-only addresses
- `d5087d1` Use script matching rather than destination matching for watch-only
- `d88af56` Fee fixes
- `a35b55b` Dont run full check every time we decrypt wallet
- `3a7c348` Fix make_change to not create half-satoshis
- `f606bb9` fix a possible memory leak in CWalletDB::Recover
- `870da77` fix possible memory leaks in CWallet::EncryptWallet
- `ccca27a` Watch-only fixes
- `9b1627d` [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis
- `a53fd41` Deterministic signing
- `15ad0b5` Apply AreSane() checks to the fees from the network
- `11855c1` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
GUI:
- `c21c74b` osx: Fix missing dock menu with qt5
- `b90711c` Fix Transaction details shows wrong To:
- `516053c` Make links in 'About Bitcoin Core' clickable
- `bdc83e8` Ensure payment request network matches client network
- `65f78a1` Add GUI view of peer information
- `06a91d9` VerifyDB progress reporting
- `fe6bff2` Add BerkeleyDB version info to RPCConsole
- `b917555` PeerTableModel: Fix potential deadlock. #4296
- `dff0e3b` Improve rpc console history behavior
- `95a9383` Remove CENT-fee-rule from coin control completely
- `56b07d2` Allow setting listen via GUI
- `d95ba75` Log messages with type>QtDebugMsg as non-debug
- `8969828` New status bar Unit Display Control and related changes
- `674c070` seed OpenSSL PNRG with Windows event data
- `509f926` Payment request parsing on startup now only changes network if a valid network name is specified
- `acd432b` Prevent balloon-spam after rescan
- `7007402` Implement SI-style (thin space) thoudands separator
- `91cce17` Use fixed-point arithmetic in amount spinbox
- `bdba2dd` Remove an obscure option no-one cares about
- `bd0aa10` Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution
- `94e1b9e` Re-work overviewpage UI
- `8bfdc9a` Better looking trayicon
- `b197bf3` disable tray interactions when client model set to 0
- `1c5f0af` Add column Watch-only to transactions list
- `21f139b` Fix tablet crash. closes #4854
- `e84843c` Broken addresses on command line no longer trigger testnet
- `a49f11d` Change splash screen to normal window
- `1f9be98` Disable App Nap on OSX 10.9+
- `27c3e91` Add proxy to options overridden if necessary
- `4bd1185` Allow "emergency" shutdown during startup
- `d52f072` Don't show wallet options in the preferences menu when running with -disablewallet
- `6093aa1` Qt: QProgressBar CPU-Issue workaround
- `0ed9675` [Wallet] Add global boolean whether to send free transactions (default=true)
- `ed3e5e4` [Wallet] Add global boolean whether to pay at least the custom fee (default=true)
- `e7876b2` [Wallet] Prevent user from paying a non-sense fee
- `c1c9d5b` Add Smartfee to GUI
- `e0a25c5` Make askpassphrase dialog behave more sanely
- `94b362d` On close of splashscreen interrupt verifyDB
- `b790d13` English translation update
- `8543b0d` Correct tooltip on address book page
Tests:
- `b41e594` Fix script test handling of empty scripts
- `d3a33fc` Test CHECKMULTISIG with m == 0 and n == 0
- `29c1749` Let tx (in)valid tests use any SCRIPT_VERIFY flag
- `6380180` Add rejection of non-null CHECKMULTISIG dummy values
- `21bf3d2` Add tests for BoostAsioToCNetAddr
- `b5ad5e7` Add Python test for -rpcbind and -rpcallowip
- `9ec0306` Add CODESEPARATOR/FindAndDelete() tests
- `75ebced` Added many rpc wallet tests
- `0193fb8` Allow multiple regression tests to run at once
- `92a6220` Hook up sanity checks
- `3820e01` Extend and move all crypto tests to crypto_tests.cpp
- `3f9a019` added list/get received by address/ account tests
- `a90689f` Remove timing-based signature cache unit test
- `236982c` Add skiplist unit tests
- `f4b00be` Add CChain::GetLocator() unit test
- `b45a6e8` Add test for getblocktemplate longpolling
- `cdf305e` Set -discover=0 in regtest framework
- `ed02282` additional test for OP_SIZE in script_valid.json
- `0072d98` script tests: BOOLAND, BOOLOR decode to integer
- `833ff16` script tests: values that overflow to 0 are true
- `4cac5db` script tests: value with trailing 0x00 is true
- `89101c6` script test: test case for 5-byte bools
- `d2d9dc0` script tests: add tests for CHECKMULTISIG limits
- `d789386` Add "it works" test for bitcoin-tx
- `df4d61e` Add bitcoin-tx tests
- `aa41ac2` Test IsPushOnly() with invalid push
- `6022b5d` Make `script_{valid,invalid}.json` validation flags configurable
- `8138cbe` Add automatic script test generation, and actual checksig tests
- `ed27e53` Add coins_tests with a large randomized CCoinViewCache test
- `9df9cf5` Make SCRIPT_VERIFY_STRICTENC compatible with BIP62
- `dcb9846` Extend getchaintips RPC test
- `554147a` Ensure MINIMALDATA invalid tests can only fail one way
- `dfeec18` Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule
- `2b62e17` Clearly separate PUSHDATA and numeric argument MINIMALDATA tests
- `16d78bd` Add valid invert of invalid every numeric opcode tests
- `f635269` tests: enable alertnotify test for Windows
- `7a41614` tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment
- `5122ea7` tests: fix forknotify.py on windows
- `fa7f8cd` tests: remove old pull-tester scripts
- `7667850` tests: replace the old (unused since Travis) tests with new rpc test scripts
- `f4e0aef` Do signature-s negation inside the tests
- `1837987` Optimize -regtest setgenerate block generation
- `2db4c8a` Fix node ranges in the test framework
- `a8b2ce5` regression test only setmocktime RPC call
- `daf03e7` RPC tests: create initial chain with specific timestamps
- `8656dbb` Port/fix txnmall.sh regression test
- `ca81587` Test the exact order of CHECKMULTISIG sig/pubkey evaluation
- `7357893` Prioritize and display -testsafemode status in UI
- `f321d6b` Add key generation/verification to ECC sanity check
- `132ea9b` miner_tests: Disable checkpoints so they don't fail the subsidy-change test
- `bc6cb41` QA RPC tests: Add tests block block proposals
- `f67a9ce` Use deterministically generated script tests
- `11d7a7d` [RPC] add rpc-test for http keep-alive (persistent connections)
- `34318d7` RPC-test based on invalidateblock for mempool coinbase spends
- `76ec867` Use actually valid transactions for script tests
- `c8589bf` Add actual signature tests
- `e2677d7` Fix smartfees test for change to relay policy
- `263b65e` tests: run sanity checks in tests too
Miscellaneous:
- `122549f` Fix incorrect checkpoint data for testnet3
- `5bd02cf` Log used config file to debug.log on startup
- `68ba85f` Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments
- `e5ee8f0` Remove -beta suffix
- `38405ac` Add comment regarding experimental-use service bits
- `be873f6` Issue warning if collecting RandSeed data failed
- `8ae973c` Allocate more space if necessary in RandSeedAddPerfMon
- `675bcd5` Correct comment for 15-of-15 p2sh script size
- `fda3fed` libsecp256k1 integration
- `2e36866` Show nodeid instead of addresses in log (for anonymity) unless otherwise requested
- `cd01a5e` Enable paranoid corruption checks in LevelDB >= 1.16
- `9365937` Add comment about never updating nTimeOffset past 199 samples
- `403c1bf` contrib: remove getwork-based pyminer (as getwork API call has been removed)
- `0c3e101` contrib: Added systemd .service file in order to help distributions integrate bitcoind
- `0a0878d` doc: Add new DNSseed policy
- `2887bff` Update coding style and add .clang-format
- `5cbda4f` Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope
- `b4a72a7` contrib/linearize: split output files based on new-timestamp-year or max-file-size
- `e982b57` Use explicit fflush() instead of setvbuf()
- `234bfbf` contrib: Add init scripts and docs for Upstart and OpenRC
- `01c2807` Add warning about the merkle-tree algorithm duplicate txid flaw
- `d6712db` Also create pid file in non-daemon mode
- `772ab0e` contrib: use batched JSON-RPC in linarize-hashes (optimization)
- `7ab4358` Update bash-completion for v0.10
- `6e6a36c` contrib: show pull # in prompt for github-merge script
- `5b9f842` Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293)
- `4e7c219` Catch UTXO set read errors and shutdown
- `867c600` Catch LevelDB errors during flush
- `06ca065` Fix CScriptID(const CScript& in) in empty script case
Credits
=======
Thanks to everyone who contributed to this release:
- 21E14
- Adam Weiss
- Aitor Pazos
- Alexander Jeng
- Alex Morcos
- Alon Muroch
- Andreas Schildbach
- Andrew Poelstra
- Andy Alness
- Ashley Holman
- Benedict Chan
- Ben Holden-Crowther
- Bryan Bishop
- BtcDrak
- Christian von Roques
- Clinton Christian
- Cory Fields
- Cozz Lovan
- daniel
- Daniel Kraft
- David Hill
- Derek701
- dexX7
- dllud
- Dominyk Tiller
- Doug
- elichai
- elkingtowa
- ENikS
- Eric Shaw
- Federico Bond
- Francis GASCHET
- Gavin Andresen
- Giuseppe Mazzotta
- Glenn Willen
- Gregory Maxwell
- gubatron
- HarryWu
- himynameismartin
- Huang Le
- Ian Carroll
- imharrywu
- Jameson Lopp
- Janusz Lenar
- JaSK
- Jeff Garzik
- JL2035
- Johnathan Corgan
- Jonas Schnelli
- jtimon
- Julian Haight
- Kamil Domanski
- kazcw
- kevin
- kiwigb
- Kosta Zertsekel
- LongShao007
- Luke Dashjr
- Mark Friedenbach
- Mathy Vanvoorden
- Matt Corallo
- Matthew Bogosian
- Micha
- Michael Ford
- Mike Hearn
- mrbandrews
- mruddy
- ntrgn
- Otto Allmendinger
- paveljanik
- Pavel Vasin
- Peter Todd
- phantomcircuit
- Philip Kaufmann
- Pieter Wuille
- pryds
- randy-waterhouse
- R E Broadley
- Rose Toomey
- Ross Nicoll
- Roy Badami
- Ruben Dario Ponticelli
- Rune K. Svendsen
- Ryan X. Charles
- Saivann
- sandakersmann
- SergioDemianLerner
- shshshsh
- sinetek
- Stuart Cardall
- Suhas Daftuar
- Tawanda Kembo
- Teran McKinney
- tm314159
- Tom Harding
- Trevin Hofmann
- Whit J
- Wladimir J. van der Laan
- Yoichi Hirai
- Zak Wilcox
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

143
doc/bitcoin-release-notes/release-notes-0.10.1.md

@ -1,143 +0,0 @@
Bitcoin Core version 0.10.1 is now available from:
<https://bitcoin.org/bin/bitcoin-core-0.10.1/>
This is a new minor version release, bringing bug fixes and translation
updates. It is recommended to upgrade to this version.
Please report bugs using the issue tracker at github:
<https://github.com/bitcoin/bitcoin/issues>
Upgrading and downgrading
=========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10.0 and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
* The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Notable changes
===============
This is a minor release and hence there are no notable changes.
For the notable changes in 0.10, refer to the release notes for the
0.10.0 release at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md
0.10.1 Change log
=================
Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
RPC:
- `7f502be` fix crash: createmultisig and addmultisigaddress
- `eae305f` Fix missing lock in submitblock
Block (database) and transaction handling:
- `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates
- `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates
- `002c8a2` fix possible block db breakage during re-index
- `a1f425b` Add (optional) consistency check for the block chain data structures
- `1c62e84` Keep mempool consistent during block-reorgs
- `57d1f46` Fix CheckBlockIndex for reindex
- `bac6fca` Set nSequenceId when a block is fully linked
P2P protocol and network code:
- `78f64ef` don't trickle for whitelisted nodes
- `ca301bf` Reduce fingerprinting through timestamps in 'addr' messages.
- `200f293` Ignore getaddr messages on Outbound connections.
- `d5d8998` Limit message sizes before transfer
- `aeb9279` Better fingerprinting protection for non-main-chain getdatas.
- `cf0218f` Make addrman's bucket placement deterministic (countermeasure 1 against eclipse attacks, see http://cs-people.bu.edu/heilman/eclipse/)
- `0c6f334` Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks)
- `214154e` Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks)
- `aa587d4` Scale up addrman (countermeasure 6 against eclipse attacks)
- `139cd81` Cap nAttempts penalty at 8 and switch to pow instead of a division loop
Validation:
- `d148f62` Acquire CCheckQueue's lock to avoid race condition
Build system:
- `8752b5c` 0.10 fix for crashes on OSX 10.6
Wallet:
- N/A
GUI:
- `2c08406` some mac specifiy cleanup (memory handling, unnecessary code)
- `81145a6` fix OSX dock icon window reopening
- `786cf72` fix a issue where "command line options"-action overwrite "Preference"-action (on OSX)
Tests:
- `1117378` add RPC test for InvalidateBlock
Miscellaneous:
- `c9e022b` Initialization: set Boost path locale in main thread
- `23126a0` Sanitize command strings before logging them.
- `323de27` Initialization: setup environment before starting Qt tests
- `7494e09` Initialization: setup environment before starting tests
- `df45564` Initialization: set fallback locale as environment variable
Credits
=======
Thanks to everyone who directly contributed to this release:
- Alex Morcos
- Cory Fields
- dexX7
- fsb4000
- Gavin Andresen
- Gregory Maxwell
- Ivan Pustogarov
- Jonas Schnelli
- Matt Corallo
- mrbandrews
- Pieter Wuille
- Ruben de Vries
- Suhas Daftuar
- Wladimir J. van der Laan
And all those who contributed additional code review and/or security research:
- 21E14
- Alison Kendler
- Aviv Zohar
- Ethan Heilman
- Evil-Knievel
- fanquake
- Jeff Garzik
- Jonas Nick
- Luke Dashjr
- Patrick Strateman
- Philip Kaufmann
- Sergio Demian Lerner
- Sharon Goldberg
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

86
doc/bitcoin-release-notes/release-notes-0.10.2.md

@ -1,86 +0,0 @@
Bitcoin Core version 0.10.2 is now available from:
<https://bitcoin.org/bin/bitcoin-core-0.10.2/>
This is a new minor version release, bringing minor bug fixes and translation
updates. It is recommended to upgrade to this version.
Please report bugs using the issue tracker at github:
<https://github.com/bitcoin/bitcoin/issues>
Upgrading and downgrading
=========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10.0 and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
* The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Notable changes
===============
This fixes a serious problem on Windows with data directories that have non-ASCII
characters (https://github.com/bitcoin/bitcoin/issues/6078).
For other platforms there are no notable changes.
For the notable changes in 0.10, refer to the release notes
at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md
0.10.2 Change log
=================
Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
Wallet:
- `824c011` fix boost::get usage with boost 1.58
Miscellaneous:
- `da65606` Avoid crash on start in TestBlockValidity with gen=1.
- `424ae66` don't imbue boost::filesystem::path with locale "C" on windows (fixes #6078)
Credits
=======
Thanks to everyone who directly contributed to this release:
- Cory Fields
- Gregory Maxwell
- Jonas Schnelli
- Wladimir J. van der Laan
And all those who contributed additional code review and/or security research:
- dexX7
- Pieter Wuille
- vayvanne
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

165
doc/bitcoin-release-notes/release-notes-0.10.3.md

@ -1,165 +0,0 @@
Bitcoin Core version 0.10.3 is now available from:
<https://bitcoin.org/bin/bitcoin-core-0.10.3/>
This is a new minor version release, bringing security fixes and translation
updates. It is recommended to upgrade to this version as soon as possible.
Please report bugs using the issue tracker at github:
<https://github.com/bitcoin/bitcoin/issues>
Upgrading and downgrading
=========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10.0 and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
* The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Notable changes
===============
Fix buffer overflow in bundled upnp
------------------------------------
Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in
the XML parser during initial network discovery.
Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/
This applies to the distributed executables only, not when building from source or
using distribution provided packages.
Additionally, upnp has been disabled by default. This may result in a lower
number of reachable nodes on IPv4, however this prevents future libupnpc
vulnerabilities from being a structural risk to the network
(see https://github.com/bitcoin/bitcoin/pull/6795).
Test for LowS signatures before relaying
-----------------------------------------
Make the node require the canonical 'low-s' encoding for ECDSA signatures when
relaying or mining. This removes a nuisance malleability vector.
Consensus behavior is unchanged.
If widely deployed this change would eliminate the last remaining known vector
for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side
it will block most transactions made by sufficiently out of date software.
Unlike the other avenues to change txids on transactions this
one was randomly violated by all deployed bitcoin software prior to
its discovery. So, while other malleability vectors where made
non-standard as soon as they were discovered, this one has remained
permitted. Even BIP62 did not propose applying this rule to
old version transactions, but conforming implementations have become
much more common since BIP62 was initially written.
Bitcoin Core has produced compatible signatures since a28fb70e in
September 2013, but this didn't make it into a release until 0.9
in March 2014; Bitcoinj has done so for a similar span of time.
Bitcoinjs and electrum have been more recently updated.
This does not replace the need for BIP62 or similar, as miners can
still cooperate to break transactions. Nor does it replace the
need for wallet software to handle malleability sanely[1]. This
only eliminates the cheap and irritating DOS attack.
[1] On the Malleability of Bitcoin Transactions
Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek
http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
Minimum relay fee default increase
-----------------------------------
The default for the `-minrelaytxfee` setting has been increased from `0.00001`
to `0.00005`.
This is necessitated by the current transaction flooding, causing
outrageous memory usage on nodes due to the mempool ballooning. This is a
temporary measure, bridging the time until a dynamic method for determining
this fee is merged (which will be in 0.12).
(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0
release notes, in which this value was suggested)
0.10.3 Change log
=================
Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
- #6186 `e4a7d51` Fix two problems in CSubnet parsing
- #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set
- #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting
- #6226 `181771b` json: fail read_string if string contains trailing garbage
- #6244 `09334e0` configure: Detect (and reject) LibreSSL
- #6276 `0fd8464` Fix getbalance * 0
- #6274 `be64204` Add option `-alerts` to opt out of alert system
- #6319 `3f55638` doc: update mailing list address
- #6438 `7e66e9c` openssl: avoid config file load/race
- #6439 `255eced` Updated URL location of netinstall for Debian
- #6412 `0739e6e` Test whether created sockets are select()able
- #6694 `f696ea1` [QT] fix thin space word wrap line brake issue
- #6704 `743cc9e` Backport bugfixes to 0.10
- #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector.
- #6789 `093d7b5` Update miniupnpc to 1.9.20151008
- #6795 `f2778e0` net: Disable upnp by default
- #6797 `91ef4d9` Do not store more than 200 timedata samples
- #6793 `842c48d` Bump minrelaytxfee default
Credits
=======
Thanks to everyone who directly contributed to this release:
- Adam Weiss
- Alex Morcos
- Casey Rodarmor
- Cory Fields
- fanquake
- Gregory Maxwell
- Jonas Schnelli
- J Ross Nicoll
- Luke Dashjr
- Pavel Vasin
- Pieter Wuille
- randy-waterhouse
- ฿tcDrak
- Tom Harding
- Veres Lajos
- Wladimir J. van der Laan
And all those who contributed additional code review and/or security research:
- timothy on IRC for reporting the issue
- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

172
doc/bitcoin-release-notes/release-notes-0.11.1.md

@ -1,172 +0,0 @@
Bitcoin Core version 0.11.1 is now available from:
<https://bitcoin.org/bin/bitcoin-core-0.11.1/>
This is a new minor version release, bringing security fixes. It is recommended
to upgrade to this version as soon as possible.
Please report bugs using the issue tracker at github:
<https://github.com/bitcoin/bitcoin/issues>
Upgrading and downgrading
=========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10.0 and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
* The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility. There are no
known problems when downgrading from 0.11.x to 0.10.x.
Notable changes
===============
Fix buffer overflow in bundled upnp
------------------------------------
Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in
the XML parser during initial network discovery.
Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/
This applies to the distributed executables only, not when building from source or
using distribution provided packages.
Additionally, upnp has been disabled by default. This may result in a lower
number of reachable nodes on IPv4, however this prevents future libupnpc
vulnerabilities from being a structural risk to the network
(see https://github.com/bitcoin/bitcoin/pull/6795).
Test for LowS signatures before relaying
-----------------------------------------
Make the node require the canonical 'low-s' encoding for ECDSA signatures when
relaying or mining. This removes a nuisance malleability vector.
Consensus behavior is unchanged.
If widely deployed this change would eliminate the last remaining known vector
for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side
it will block most transactions made by sufficiently out of date software.
Unlike the other avenues to change txids on transactions this
one was randomly violated by all deployed bitcoin software prior to
its discovery. So, while other malleability vectors where made
non-standard as soon as they were discovered, this one has remained
permitted. Even BIP62 did not propose applying this rule to
old version transactions, but conforming implementations have become
much more common since BIP62 was initially written.
Bitcoin Core has produced compatible signatures since a28fb70e in
September 2013, but this didn't make it into a release until 0.9
in March 2014; Bitcoinj has done so for a similar span of time.
Bitcoinjs and electrum have been more recently updated.
This does not replace the need for BIP62 or similar, as miners can
still cooperate to break transactions. Nor does it replace the
need for wallet software to handle malleability sanely[1]. This
only eliminates the cheap and irritating DOS attack.
[1] On the Malleability of Bitcoin Transactions
Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek
http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
Minimum relay fee default increase
-----------------------------------
The default for the `-minrelaytxfee` setting has been increased from `0.00001`
to `0.00005`.
This is necessitated by the current transaction flooding, causing
outrageous memory usage on nodes due to the mempool ballooning. This is a
temporary measure, bridging the time until a dynamic method for determining
this fee is merged (which will be in 0.12).
(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11
release notes, in which this value was suggested)
0.11.1 Change log
=================
Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.
- #6438 `2531438` openssl: avoid config file load/race
- #6439 `980f820` Updated URL location of netinstall for Debian
- #6384 `8e5a969` qt: Force TLS1.0+ for SSL connections
- #6471 `92401c2` Depends: bump to qt 5.5
- #6224 `93b606a` Be even stricter in processing unrequested blocks
- #6571 `100ac4e` libbitcoinconsensus: avoid a crash in multi-threaded environments
- #6545 `649f5d9` Do not store more than 200 timedata samples.
- #6694 `834e299` [QT] fix thin space word wrap line break issue
- #6703 `1cd7952` Backport bugfixes to 0.11
- #6750 `5ed8d0b` Recent rejects backport to v0.11
- #6769 `71cc9d9` Test LowS in standardness, removes nuisance malleability vector.
- #6789 `b4ad73f` Update miniupnpc to 1.9.20151008
- #6785 `b4dc33e` Backport to v0.11: In (strCommand == "tx"), return if AlreadyHave()
- #6412 `0095b9a` Test whether created sockets are select()able
- #6795 `4dbcec0` net: Disable upnp by default
- #6793 `e7bcc4a` Bump minrelaytxfee default
Credits
=======
Thanks to everyone who directly contributed to this release:
- Adam Weiss
- Alex Morcos
- Casey Rodarmor
- Cory Fields
- fanquake
- Gregory Maxwell
- Jonas Schnelli
- J Ross Nicoll
- Luke Dashjr
- Pavel Janík
- Pavel Vasin
- Peter Todd
- Pieter Wuille
- randy-waterhouse
- Ross Nicoll
- Suhas Daftuar
- tailsjoin
- ฿tcDrak
- Tom Harding
- Veres Lajos
- Wladimir J. van der Laan
And those who contributed additional code review and/or security research:
- timothy on IRC for reporting the issue
- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

217
doc/bitcoin-release-notes/release-notes-0.11.2.md

@ -1,217 +0,0 @@
Bitcoin Core version 0.11.2 is now available from:
<https://bitcoin.org/bin/bitcoin-core-0.11.2/>
This is a new minor version release, bringing bug fixes, the BIP65
(CLTV) consensus change, and relay policy preparation for BIP113. It is
recommended to upgrade to this version as soon as possible.
Please report bugs using the issue tracker at github:
<https://github.com/bitcoin/bitcoin/issues>
Upgrading and downgrading
=========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10.0 and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
* The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility. There are no
known problems when downgrading from 0.11.x to 0.10.x.
Notable changes since 0.11.1
============================
BIP65 soft fork to enforce OP_CHECKLOCKTIMEVERIFY opcode
--------------------------------------------------------
This release includes several changes related to the [BIP65][] soft fork
which redefines the existing OP_NOP2 opcode as OP_CHECKLOCKTIMEVERIFY
(CLTV) so that a transaction output can be made unspendable until a
specified point in the future.
1. This release will only relay and mine transactions spending a CLTV
output if they comply with the BIP65 rules as provided in code.
2. This release will produce version 4 blocks by default. Please see the
*notice to miners* below.
3. Once 951 out of a sequence of 1,001 blocks on the local node's best block
chain contain version 4 (or higher) blocks, this release will no
longer accept new version 3 blocks and it will only accept version 4
blocks if they comply with the BIP65 rules for CLTV.
For more information about the soft-forking change, please see
<https://github.com/bitcoin/bitcoin/pull/6351>
Graphs showing the progress towards block version 4 adoption may be
found at the URLs below:
- Block versions over the last 50,000 blocks as progress towards BIP65
consensus enforcement: <http://bitcoin.sipa.be/ver-50k.png>
- Block versions over the last 2,000 blocks showing the days to the
earliest possible BIP65 consensus-enforced block: <http://bitcoin.sipa.be/ver-2k.png>
**Notice to miners:** Bitcoin Core’s block templates are now for
version 4 blocks only, and any mining software relying on its
getblocktemplate must be updated in parallel to use libblkmaker either
version 0.4.3 or any version from 0.5.2 onward.
- If you are solo mining, this will affect you the moment you upgrade
Bitcoin Core, which must be done prior to BIP65 achieving its 951/1001
status.
- If you are mining with the stratum mining protocol: this does not
affect you.
- If you are mining with the getblocktemplate protocol to a pool: this
will affect you at the pool operator’s discretion, which must be no
later than BIP65 achieving its 951/1001 status.
[BIP65]: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
BIP113 mempool-only locktime enforcement using GetMedianTimePast()
----------------------------------------------------------------
Bitcoin transactions currently may specify a locktime indicating when
they may be added to a valid block. Current consensus rules require
that blocks have a block header time greater than the locktime specified
in any transaction in that block.
Miners get to choose what time they use for their header time, with the
consensus rule being that no node will accept a block whose time is more
than two hours in the future. This creates a incentive for miners to
set their header times to future values in order to include locktimed
transactions which weren't supposed to be included for up to two more
hours.
The consensus rules also specify that valid blocks may have a header
time greater than that of the median of the 11 previous blocks. This
GetMedianTimePast() time has a key feature we generally associate with
time: it can't go backwards.
[BIP113][] specifies a soft fork (**not enforced in this release**) that
weakens this perverse incentive for individual miners to use a future
time by requiring that valid blocks have a computed GetMedianTimePast()
greater than the locktime specified in any transaction in that block.
Mempool inclusion rules currently require transactions to be valid for
immediate inclusion in a block in order to be accepted into the mempool.
This release begins applying the BIP113 rule to received transactions,
so transaction whose time is greater than the GetMedianTimePast() will
no longer be accepted into the mempool.
**Implication for miners:** you will begin rejecting transactions that
would not be valid under BIP113, which will prevent you from producing
invalid blocks if/when BIP113 is enforced on the network. Any
transactions which are valid under the current rules but not yet valid
under the BIP113 rules will either be mined by other miners or delayed
until they are valid under BIP113. Note, however, that time-based
locktime transactions are more or less unseen on the network currently.
**Implication for users:** GetMedianTimePast() always trails behind the
current time, so a transaction locktime set to the present time will be
rejected by nodes running this release until the median time moves
forward. To compensate, subtract one hour (3,600 seconds) from your
locktimes to allow those transactions to be included in mempools at
approximately the expected time.
[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki
Windows bug fix for corrupted UTXO database on unclean shutdowns
----------------------------------------------------------------
Several Windows users reported that they often need to reindex the
entire blockchain after an unclean shutdown of Bitcoin Core on Windows
(or an unclean shutdown of Windows itself). Although unclean shutdowns
remain unsafe, this release no longer relies on memory-mapped files for
the UTXO database, which significantly reduced the frequency of unclean
shutdowns leading to required reindexes during testing.
For more information, see: <https://github.com/bitcoin/bitcoin/pull/6917>
Other fixes for database corruption on Windows are expected in the
next major release.
0.11.2 Change log
=================
Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.
- #6124 `684636b` Make CScriptNum() take nMaxNumSize as an argument
- #6124 `4fa7a04` Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65)
- #6124 `6ea5ca4` Enable CHECKLOCKTIMEVERIFY as a standard script verify flag
- #6351 `5e82e1c` Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic
- #6353 `ba1da90` Show softfork status in getblockchaininfo
- #6351 `6af25b0` Add BIP65 to getblockchaininfo softforks list
- #6688 `01878c9` Fix locking in GetTransaction
- #6653 `b3eaa30` [Qt] Raise debug window when requested
- #6600 `1e672ae` Debian/Ubuntu: Include bitcoin-tx binary
- #6600 `2394f4d` Debian/Ubuntu: Split bitcoin-tx into its own package
- #5987 `33d6825` Bugfix: Allow mining on top of old tip blocks for testnet
- #6852 `21e58b8` build: make sure OpenSSL heeds noexecstack
- #6846 `af6edac` alias `-h` for `--help`
- #6867 `95a5039` Set TCP_NODELAY on P2P sockets.
- #6856 `dfe55bd` Do not allow blockfile pruning during reindex.
- #6566 `a1d3c6f` Add rules--presently disabled--for using GetMedianTimePast as end point for lock-time calculations
- #6566 `f720c5f` Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints
- #6917 `0af5b8e` leveldb: Win32WritableFile without memory mapping
- #6948 `4e895b0` Always flush block and undo when switching to new file
Credits
=======
Thanks to everyone who directly contributed to this release:
- Alex Morcos
- ฿tcDrak
- Chris Kleeschulte
- Daniel Cousens
- Diego Viola
- Eric Lombrozo
- Esteban Ordano
- Gregory Maxwell
- Luke Dashjr
- Marco Falke
- Mark Friedenbach
- Matt Corallo
- Micha
- Mitchell Cash
- Peter Todd
- Pieter Wuille
- Wladimir J. van der Laan
- Zak Wilcox
And those who contributed additional code review and/or security research.
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

13
doc/bitcoin-release-notes/release-notes-0.3.12.md

@ -1,13 +0,0 @@
Version 0.3.12 is now available.
Features:
* json-rpc errors return a more standard error object. (thanks to Gavin Andresen)
* json-rpc command line returns exit codes.
* json-rpc "backupwallet" command.
* Recovers and continues if an exception is caused by a message you received. Other nodes shouldn't be able to cause an exception, and it hasn't happened before, but if a way is found to cause an exception, this would keep it from being used to stop network nodes.
If you have json-rpc code that checks the contents of the error string, you need to change it to expect error objects of the form {"code":<number>,"message":<string>}, which is the standard. See this thread:
http://www.bitcoin.org/smf/index.php?topic=969.0
Download:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.12/

26
doc/bitcoin-release-notes/release-notes-0.3.13.md

@ -1,26 +0,0 @@
Version 0.3.13 is now available. You should upgrade to prevent potential problems with 0/unconfirmed transactions. Note: 0.3.13 prevents problems if you haven't already spent a 0/unconfirmed transaction, but if that already happened, you need 0.3.13.2.
Changes:
* Don't count or spend payments until they have 1 confirmation.
* Internal version number from 312 to 31300.
* Only accept transactions sent by IP address if -allowreceivebyip is specified.
* Dropped DB_PRIVATE Berkeley DB flag.
* Fix problem sending the last cent with sub-cent fractional change.
* Auto-detect whether to use 128-bit 4-way SSE2 on Linux.
Gavin Andresen:
* Option -rpcallowip= to accept json-rpc connections from another machine.
* Clean shutdown on SIGTERM on Linux.
Download:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.13/
(Thanks Laszlo for the Mac OSX build!)
Note:
The SSE2 auto-detect in the Linux 64-bit version doesn't work with AMD in 64-bit mode. Please try this instead and let me know if it gets it right:
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz
You can still control the SSE2 use manually with -4way and -4way=0.
Version 0.3.13.2 (SVN rev 161) has improvements for the case where you already had 0/unconfirmed transactions that you might have already spent. Here's a Windows build of it:
http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe

11
doc/bitcoin-release-notes/release-notes-0.3.14.md

@ -1,11 +0,0 @@
Version 0.3.14 is now available
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.14/
Changes:
* Key pool feature for safer wallet backup
Gavin Andresen:
* TEST network mode with switch -testnet
* Option to use SSL for JSON-RPC connections on unix/osx
* validateaddress RPC command
eurekafag:
* Russian translation

6
doc/bitcoin-release-notes/release-notes-0.3.15.md

@ -1,6 +0,0 @@
* paytxfee switch is now per KB, so it adds the correct fee for large transactions
* sending avoids using coins with less than 6 confirmations if it can
* BitcoinMiner processes transactions in priority order based on age of dependencies
* make sure generation doesn't start before block 74000 downloaded
* bugfixes by Dean Gores
* testnet, keypoololdest and paytxfee added to getinfo

1
doc/bitcoin-release-notes/release-notes-0.3.16.md

@ -1 +0,0 @@
Never released.

12
doc/bitcoin-release-notes/release-notes-0.3.17.md

@ -1,12 +0,0 @@
Version 0.3.17 is now available.
Changes:
* new getwork, thanks m0mchil
* added transaction fee setting in UI options menu
* free transaction limits
* sendtoaddress returns transaction id instead of "sent"
* getaccountaddress <account>
The UI transaction fee setting was easy since it was still there from 0.1.5 and all I had to do was re-enable it.
The accounts-based commands: move, sendfrom and getbalance <account> will be in the next release. We still have some more changes to make first.

11
doc/bitcoin-release-notes/release-notes-0.3.18.md

@ -1,11 +0,0 @@
Changes:
* Fixed a wallet.dat compatibility problem if you downgraded from 0.3.17 and then upgraded again
* IsStandard() check to only include known transaction types in blocks
* Jgarzik's optimisation to speed up the initial block download a little
The main addition in this release is the Accounts-Based JSON-RPC commands that Gavin's been working on (more details at http://www.bitcoin.org/smf/index.php?topic=1886.0).
* getaccountaddress
* sendfrom
* move
* getbalance
* listtransactions

9
doc/bitcoin-release-notes/release-notes-0.3.19.md

@ -1,9 +0,0 @@
There's more work to do on DoS, but I'm doing a quick build of what I have so far in case it's needed, before venturing into more complex ideas. The build for this is version 0.3.19.
- Added some DoS controls
As Gavin and I have said clearly before, the software is not at all resistant to DoS attack. This is one improvement, but there are still more ways to attack than I can count.
I'm leaving the -limitfreerelay part as a switch for now and it's there if you need it.
- Removed "safe mode" alerts
"safe mode" alerts was a temporary measure after the 0.3.9 overflow bug. We can say all we want that users can just run with "-disablesafemode", but it's better just not to have it for the sake of appearances. It was never intended as a long term feature. Safe mode can still be triggered by seeing a longer (greater total PoW) invalid block chain.

1
doc/bitcoin-release-notes/release-notes-0.3.20.1.md

@ -1 +0,0 @@
Never released or release notes were lost.

17
doc/bitcoin-release-notes/release-notes-0.3.20.2.md

@ -1,17 +0,0 @@
The maxsendbuffer bug (0.3.20.1 clients not being able to download the block chain from other 0.3.20.1 clients) was only going to get
worse as people upgraded, so I cherry-picked the bug fix and created a minor release yesterday.
The Amazon Machine Images I used to do the builds are available:
ami-38a05251 Bitcoin-v0.3.20.2 Mingw (Windows; Administrator password 'bitcoin development')
ami-30a05259 Bitcoin_0.3.20.2 Linux32
ami-8abc4ee3 Bitcoin_0.3.20.2 Linux64
(mac build will be done soon)
If you have already downloaded version 0.3.20.1, please either add this to your bitcoin.conf file:
maxsendbuffer=10000
maxreceivebuffer=10000
... or download the new version.

22
doc/bitcoin-release-notes/release-notes-0.3.20.md

@ -1,22 +0,0 @@
Please checkout the git integration branch from:
https://github.com/bitcoin/bitcoin
... and help test. The new features that need testing are:
* -nolisten : https://github.com/bitcoin/bitcoin/pull/11
* -rescan : scan block chain for missing wallet transactions
* -printtoconsole : https://github.com/bitcoin/bitcoin/pull/37
* RPC gettransaction details : https://github.com/bitcoin/bitcoin/pull/24
* listtransactions new features : https://github.com/bitcoin/bitcoin/pull/10
Bug fixes that also need testing:
* -maxconnections= : https://github.com/bitcoin/bitcoin/pull/42
* RPC listaccounts minconf : https://github.com/bitcoin/bitcoin/pull/27
* RPC move, add time to output : https://github.com/bitcoin/bitcoin/pull/21
* ...and several improvements to --help output.
This needs more testing on Windows! Please drop me a quick private message, email, or IRC message if you are able to do some testing. If you find bugs, please open an issue at:
https://github.com/bitcoin/bitcoin/issues

20
doc/bitcoin-release-notes/release-notes-0.3.21.md

@ -1,20 +0,0 @@
Binaries for Bitcoin version 0.3.21 are available at:
https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.21/
Changes and new features from the 0.3.20 release include:
* Universal Plug and Play support. Enable automatic opening of a port for incoming connections by running bitcoin or bitcoind with the - -upnp=1 command line switch or using the Options dialog box.
* Support for full-precision bitcoin amounts. You can now send, and bitcoin will display, bitcoin amounts smaller than 0.01. However, sending fewer than 0.01 bitcoins still requires a 0.01 bitcoin fee (so you can send 1.0001 bitcoins without a fee, but you will be asked to pay a fee if you try to send 0.0001).
* A new method of finding bitcoin nodes to connect with, via DNS A records. Use the -dnsseed option to enable.
For developers, changes to bitcoin's remote-procedure-call API:
* New rpc command "sendmany" to send bitcoins to more than one address in a single transaction.
* Several bug fixes, including a serious intermittent bug that would sometimes cause bitcoind to stop accepting rpc requests.
* -logtimestamps option, to add a timestamp to each line in debug.log.
* Immature blocks (newly generated, under 120 confirmations) are now shown in listtransactions.

16
doc/bitcoin-release-notes/release-notes-0.3.22.md

@ -1,16 +0,0 @@
Download URL: https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.22/
This is largely a bugfix and TX fee schedule release. We also hope to make 0.3.23 a quick release, to fix problems that the network has seen due to explosive growth in the past week.
Notable changes:
* Client will accept and relay TX's with 0.0005 BTC fee schedule (users still pay 0.01 BTC per kb, until next version)
* Non-standard transactions accepted on testnet
* Source code tree reorganized (prep for autotools build)
* Remove "Generate Coins" option from GUI, and remove 4way SSE miner. Internal reference CPU miner remains available, but users are directed to external miners for best hash production.
* IRC is overflowing. Client now bootstraps to channels #bitcoin00 - #bitcoin99
* DNS names now may be used with -addnode, -connect (requires -dns to enable)
RPC changes:
* 'listtransactions' adds 'from' param, for range queries
* 'move' may take account balances negative
* 'settxfee' added, to manually set TX fee

10
doc/bitcoin-release-notes/release-notes-0.3.23.md

@ -1,10 +0,0 @@
Win32, Linux, MacOSX and source releases for bitcoin v0.3.23 have been uploaded to
https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/
This is another quick bugfix release, trying to deal with the influx of new bitcoin users.
Main items of note:
* P2P connect-to-node logic changed to reduce timeout a bit. The network saw a huge influx of new users, who do not permit incoming connections. This change is a short-term hack, to more quickly hunt for useful P2P connections. Better "leaf node" logic is in the works, but this should let us limp along until then. One may use -upnp to properly forward ports, and help the network.
* Transaction fee reduced to 0.0005 for new transactions
* Client will relay transactions with fees as low as 0.0001 BTC

20
doc/bitcoin-release-notes/release-notes-0.3.24.md

@ -1,20 +0,0 @@
Bitcoin v0.3.24 is now available for download at
https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.24/
This is another bug fix release. We had hoped to have wallet encryption ready for release, but more urgent fixes for existing clients were needed -- most notably block download problems were getting severe. Wallet encryption is ready for testing at https://github.com/bitcoin/bitcoin/pull/352 for the git-savvy, and hopefully will follow shortly in the next release, v0.4.
Notable fixes in v0.3.24, and the main reasons for this release:
F1) Block downloads were failing or taking unreasonable amounts of time to complete, because the increased size of the block chain was bumping up against some earlier buffer-size DoS limits.
F2) Fix crash caused by loss/lack of network connection.
Notable changes in v0.3.24:
C1) DNS seeding enabled by default.
C2) UPNP enabled by default in the GUI client. The percentage of bitcoin clients that accept incoming connections is quite small, and that is a problem. This should help. bitcoind, and unofficial builds, are unchanged (though we encourage use of "-upnp" to help the network!)
C3) Initial unit testing framework. Bitcoin sorely needs automated tests, and this is a beginning. Contributions welcome.
C4) Internal wallet code cleanup. While invisible to an end user, this change provides the basis for v0.4's wallet encryption.

70
doc/bitcoin-release-notes/release-notes-0.4.0.md

@ -1,70 +0,0 @@
Bitcoin version 0.4.0 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/
The main feature in this release is wallet private key encryption;
you can set a passphrase that must be entered before sending coins.
See below for more information; if you decide to encrypt your wallet,
WRITE DOWN YOUR PASSPHRASE AND PUT IT IN A SECURE LOCATION. If you
forget or lose your wallet passphrase, you lose your bitcoins.
Previous versions of bitcoin are unable to read encrypted wallets,
and will crash on startup if the wallet is encrypted.
Also note: bitcoin version 0.4 uses a newer version of Berkeley DB
(bdb version 4.8) than previous versions (bdb 4.7). If you upgrade
to version 0.4 and then revert back to an earlier version of bitcoin
the it may be unable to start because bdb 4.7 cannot read bdb 4.8
"log" files.
Notable bug fixes from version 0.3.24:
Fix several bitcoin-becomes-unresponsive bugs due to multithreading
deadlocks.
Optimize database writes for large (lots of inputs) transactions
(fixes a potential denial-of-service attack)
Wallet Encryption
Bitcoin supports native wallet encryption so that people who steal your
wallet file don't automatically get access to all of your Bitcoins.
In order to enable this feature, choose "Encrypt Wallet" from the
Options menu. You will be prompted to enter a passphrase, which
will be used as the key to encrypt your wallet and will be needed
every time you wish to send Bitcoins. If you lose this passphrase,
you will lose access to spend all of the bitcoins in your wallet,
no one, not even the Bitcoin developers can recover your Bitcoins.
This means you are responsible for your own security, store your
passphrase in a secure location and do not forget it.
Remember that the encryption built into bitcoin only encrypts the
actual keys which are required to send your bitcoins, not the full
wallet. This means that someone who steals your wallet file will
be able to see all the addresses which belong to you, as well as the
relevant transactions, you are only protected from someone spending
your coins.
It is recommended that you backup your wallet file before you
encrypt your wallet. To do this, close the Bitcoin client and
copy the wallet.dat file from ~/.bitcoin/ on Linux, /Users/(user
name)/Application Support/Bitcoin/ on Mac OSX, and %APPDATA%/Bitcoin/
on Windows (that is /Users/(user name)/AppData/Roaming/Bitcoin on
Windows Vista and 7 and /Documents and Settings/(user name)/Application
Data/Bitcoin on Windows XP). Once you have copied that file to a
safe location, reopen the Bitcoin client and Encrypt your wallet.
If everything goes fine, delete the backup and enjoy your encrypted
wallet. Note that once you encrypt your wallet, you will never be
able to go back to a version of the Bitcoin client older than 0.4.
Keep in mind that you are always responsible for your own security.
All it takes is a slightly more advanced wallet-stealing trojan which
installs a keylogger to steal your wallet passphrase as you enter it
in addition to your wallet file and you have lost all your Bitcoins.
Wallet encryption cannot keep you safe if you do not practice
good security, such as running up-to-date antivirus software, only
entering your wallet passphrase in the Bitcoin client and using the
same passphrase only as your wallet passphrase.
See the doc/README file in the bitcoin source for technical details
of wallet encryption.

38
doc/bitcoin-release-notes/release-notes-0.4.1.md

@ -1,38 +0,0 @@
Bitcoin version 0.4.1 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.1/
This is a bugfix only release based on 0.4.0.
Please report bugs by replying to this forum thread.
MAJOR BUG FIX (CVE-2011-4447)
The wallet encryption feature introduced in Bitcoin version 0.4.0 did not sufficiently secure the private keys. An attacker who
managed to get a copy of your encrypted wallet.dat file might be able to recover some or all of the unencrypted keys and steal the
associated coins.
If you have a previously encrypted wallet.dat, the first time you run wxbitcoin or bitcoind the wallet will be rewritten, Bitcoin will
shut down, and you will be prompted to restart it to run with the new, properly encrypted file.
If you had a previously encrypted wallet.dat that might have been copied or stolen (for example, you backed it up to a public
location) you should send all of your bitcoins to yourself using a new bitcoin address and stop using any previously generated addresses.
Wallets encrypted with this version of Bitcoin are written properly.
Technical note: the encrypted wallet's 'keypool' will be regenerated the first time you request a new bitcoin address; to be certain that the
new private keys are properly backed up you should:
1. Run Bitcoin and let it rewrite the wallet.dat file
2. Run it again, then ask it for a new bitcoin address.
wxBitcoin: new address visible on main window
bitcoind: run the 'walletpassphrase' RPC command to unlock the wallet, then run the 'getnewaddress' RPC command.
3. If your encrypted wallet.dat may have been copied or stolen, send all of your bitcoins to the new bitcoin address.
4. Shut down Bitcoin, then backup the wallet.dat file.
IMPORTANT: be sure to request a new bitcoin address before backing up, so that the 'keypool' is regenerated and backed up.
"Security in depth" is always a good idea, so choosing a secure location for the backup and/or encrypting the backup before uploading it is recommended. And as in previous releases, if your machine is infected by malware there are several ways an attacker might steal your bitcoins.
Thanks to Alan Reiner (etotheipi) for finding and reporting this bug.

1
doc/bitcoin-release-notes/release-notes-0.4.2.md

@ -1 +0,0 @@
Never released or release notes were lost.

21
doc/bitcoin-release-notes/release-notes-0.4.3.md

@ -1,21 +0,0 @@
bitcoind version 0.4.3 is now available for download at:
http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.3/ (until Gavin uploads to SourceForge)
This is a bugfix-only release based on 0.4.0.
Please note that the wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.
Please report bugs for the daemon only using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Stable source code is hosted at Gitorious:
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.4.3#.tar.gz
BUG FIXES
Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticable during initial blockchain download).
Fixed some address-handling deadlocks (client freezes).
No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak).
Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed).
Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr).

30
doc/bitcoin-release-notes/release-notes-0.4.4.md

@ -1,30 +0,0 @@
Bitcoin version 0.4.4 is now available for download at:
http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.4/
This is a bugfix-only release based on 0.4.0.
Please note that the wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.
Please report bugs for the daemon only using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Stable source code is hosted at Gitorious:
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.4.4#.tar.gz
BUG FIXES
Limit the number of orphan transactions stored in memory, to prevent a potential denial-of-service attack by flooding orphan transactions. Also never store invalid transactions at all.
Fix possible buffer overflow on systems with very long application data paths. This is not exploitable.
Resolved multiple bugs preventing long-term unlocking of encrypted wallets (issue #922).
Only send local IP in "version" messages if it is globally routable (ie, not private), and try to get such an IP from UPnP if applicable.
Reannounce UPnP port forwards every 20 minutes, to workaround routers expiring old entries, and allow the -upnp option to override any stored setting.
Various memory leaks and potential null pointer deferences have been
fixed.
Several shutdown issues have been fixed.
Check that keys stored in the wallet are valid at startup, and if not,
report corruption.
Various build fixes.
If no password is specified to bitcoind, recommend a secure password.
Update hard-coded fallback seed nodes, choosing recent ones with long uptime and versions at least 0.4.0.
Add checkpoint at block 168,000.

1
doc/bitcoin-release-notes/release-notes-0.4.5.md

@ -1 +0,0 @@
Never released or release notes were lost.

37
doc/bitcoin-release-notes/release-notes-0.4.6.md

@ -1,37 +0,0 @@
bitcoind version 0.4.6 is now available for download at:
Windows: installer | zip (sig)
Source: tar.gz
bitcoind and Bitcoin-Qt version 0.6.0.7 are also tagged in git, but it is recommended to upgrade to 0.6.1.
These are bugfix-only releases.
Please report bugs by replying to this forum thread. Note that the 0.4.x wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.
BUG FIXES
Version 0.6.0 allowed importing invalid "private keys", which would be unspendable; 0.6.0.7 will now verify the private key is valid, and refuse to import an invalid one
Verify status of encrypt/decrypt calls to detect failed padding
Check blocks for duplicate transactions earlier. Fixes #1167
Upgrade Windows builds to OpenSSL 1.0.1b
Set label when selecting an address that already has a label. Fixes #1080 (Bitcoin-Qt)
JSON-RPC listtransactions's from/count handling is now fixed
Optimize and fix multithreaded access, when checking whether we already know about transactions
Fix potential networking deadlock
Proper support for Growl 1.3 notifications
Display an error, rather than crashing, if encoding a QR Code failed (0.6.0.7)
Don't erroneously set "Display addresses" for users who haven't explicitly enabled it (Bitcoin-Qt)
Some non-ASCII input in JSON-RPC expecting hexadecimal may have been misinterpreted rather than rejected
Missing error condition checking added
Do not show green tick unless all known blocks are downloaded. Fixes #921 (Bitcoin-Qt)
Increase time ago of last block for "up to date" status from 30 to 90 minutes
Show a message box when runaway exception happens (Bitcoin-Qt)
Use a messagebox to display the error when -server is provided without providing a rpc password
Show error message instead of exception crash when unable to bind RPC port (Bitcoin-Qt)
Correct sign message bitcoin address tooltip. Fixes #1050 (Bitcoin-Qt)
Removed "(no label)" from QR Code dialog titlebar if we have no label (0.6.0.7)
Removed an ugly line break in tooltip for mature transactions (0.6.0.7)
Add missing tooltip and key shortcut in settings dialog (part of #1088) (Bitcoin-Qt)
Work around issue in boost::program_options that prevents from compiling in clang
Fixed bugs occurring only on platforms with unsigned characters (such as ARM).
Rename make_windows_icon.py to .sh as it is a shell script. Fixes #1099 (Bitcoin-Qt)
Various trivial internal corrections to types used for counting/size loops and warnings

70
doc/bitcoin-release-notes/release-notes-0.5.0.md

@ -1,70 +0,0 @@
Bitcoin version 0.5.0 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.0/
The major change for this release is a completely new graphical interface that uses the Qt user interface toolkit.
This release include German, Spanish, Spanish-Castilian, Norwegian and Dutch translations. More translations are welcome; join the project at Transifex if you can help:
https://www.transifex.net/projects/p/bitcoin/
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
For Ubuntu users, there is a new ppa maintained by Matt Corallo which you can add to your system so that it will automatically keep bitcoin up-to-date. Just type "sudo apt-add-repository ppa:bitcoin/bitcoin" in your terminal, then install the bitcoin-qt package.
MAJOR BUG FIX (CVE-2011-4447)
The wallet encryption feature introduced in Bitcoin version 0.4.0 did not sufficiently secure the private keys. An attacker who
managed to get a copy of your encrypted wallet.dat file might be able to recover some or all of the unencrypted keys and steal the
associated coins.
If you have a previously encrypted wallet.dat, the first time you run bitcoin-qt or bitcoind the wallet will be rewritten, Bitcoin will
shut down, and you will be prompted to restart it to run with the new, properly encrypted file.
If you had a previously encrypted wallet.dat that might have been copied or stolen (for example, you backed it up to a public
location) you should send all of your bitcoins to yourself using a new bitcoin address and stop using any previously generated addresses.
Wallets encrypted with this version of Bitcoin are written properly.
Technical note: the encrypted wallet's 'keypool' will be regenerated the first time you request a new bitcoin address; to be certain that the
new private keys are properly backed up you should:
1. Run Bitcoin and let it rewrite the wallet.dat file
2. Run it again, then ask it for a new bitcoin address.
Bitcoin-Qt: Address Book, then New Address...
bitcoind: run the 'walletpassphrase' RPC command to unlock the wallet, then run the 'getnewaddress' RPC command.
3. If your encrypted wallet.dat may have been copied or stolen, send all of your bitcoins to the new bitcoin address.
4. Shut down Bitcoin, then backup the wallet.dat file.
IMPORTANT: be sure to request a new bitcoin address before backing up, so that the 'keypool' is regenerated and backed up.
"Security in depth" is always a good idea, so choosing a secure location for the backup and/or encrypting the backup before uploading it is recommended. And as in previous releases, if your machine is infected by malware there are several ways an attacker might steal your bitcoins.
Thanks to Alan Reiner (etotheipi) for finding and reporting this bug.
MAJOR GUI CHANGES
"Splash" graphics at startup that show address/wallet/blockchain loading progress.
"Synchronizing with network" progress bar to show block-chain download progress.
Icons at the bottom of the window that show how well connected you are to the network, with tooltips to display details.
Drag and drop support for bitcoin: URIs on web pages.
Export transactions as a .csv file.
Many other GUI improvements, large and small.
RPC CHANGES
getmemorypool : new RPC command, provides everything needed to construct a block with a custom generation transaction and submit a solution
listsinceblock : new RPC command, list transactions since given block
signmessage/verifymessage : new RPC commands to sign a message with one of your private keys or verify that a message signed by the private key associated with a bitcoin address.
GENERAL CHANGES
Faster initial block download.

43
doc/bitcoin-release-notes/release-notes-0.5.1.md

@ -1,43 +0,0 @@
Bitcoin version 0.5.1 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.1/
This is a bugfix-only release.
This release includes 13 translations, including 5 new translations:
Italian, Hungarian, Ukranian, Portuguese (Brazilian) and Simplified Chinese.
More translations are welcome; join the project at Transifex if you can help:
https://www.transifex.net/projects/p/bitcoin/
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Project source code is hosted at github; we are no longer
distributing .tar.gz files here, you can get them
directly from github:
https://github.com/bitcoin/bitcoin/tarball/v0.5.1 # .tar.gz
https://github.com/bitcoin/bitcoin/zipball/v0.5.1 # .zip
For Ubuntu users, there is a new ppa maintained by Matt Corallo which
you can add to your system so that it will automatically keep
bitcoin up-to-date. Just type
sudo apt-add-repository ppa:bitcoin/bitcoin
in your terminal, then install the bitcoin-qt package.
BUG FIXES
Re-enable SSL support for the JSON-RPC interface (it was unintentionally
disabled for the 0.5.0 release binaries).
The code that finds peers via "dns seeds" no longer stops bitcoin startup
if one of the dns seed machines is down.
Tooltips on the transaction list view were rendering incorrectly (as black boxes
or with a transparent background).
Prevent a denial-of-service attack involving flooding a bitcoin node with
orphan blocks.
The wallet passphrase dialog now warns you if the caps lock key was pressed.
Improved searching in addresses and labels in bitcoin-qt.

22
doc/bitcoin-release-notes/release-notes-0.5.2.md

@ -1,22 +0,0 @@
Bitcoin version 0.5.2 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.2/
This is a bugfix-only release based on 0.5.1.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Stable source code is hosted at Gitorious:
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.2#.tar.gz
BUG FIXES
Check all transactions in blocks after the last checkpoint (0.5.0 and 0.5.1 skipped checking ECDSA signatures during initial blockchain download).
Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticable during initial blockchain download; this was
not a security vulnerability).
Fixed some address-handling deadlocks (client freezes).
No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak).
Re-enable SSL support for the JSON-RPC interface (it was unintentionally disabled for the 0.5.0 and 0.5.1 release Linux binaries).
Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed).
Don't show "IP" for transactions which are not necessarily IP transactions.
Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr).

42
doc/bitcoin-release-notes/release-notes-0.5.3.md

@ -1,42 +0,0 @@
Bitcoin version 0.5.3 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/
This is a bugfix-only release based on 0.5.1.
It also includes a few protocol updates.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Stable source code is hosted at Gitorious:
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.3#.tar.gz
PROTOCOL UPDATES
BIP 30: Introduce a new network rule: "a block is not valid if it contains a transaction whose hash already exists in the block chain, unless all that transaction's outputs were already spent before said block" beginning on March 15, 2012, 00:00 UTC.
On testnet, allow mining of min-difficulty blocks if 20 minutes have gone by without mining a regular-difficulty block. This is to make testing Bitcoin easier, and will not affect normal mode.
BUG FIXES
Limit the number of orphan transactions stored in memory, to prevent a potential denial-of-service attack by flooding orphan transactions. Also never store invalid transactions at all.
Fix possible buffer overflow on systems with very long application data paths. This is not exploitable.
Resolved multiple bugs preventing long-term unlocking of encrypted wallets
(issue #922).
Only send local IP in "version" messages if it is globally routable (ie, not private), and try to get such an IP from UPnP if applicable.
Reannounce UPnP port forwards every 20 minutes, to workaround routers expiring old entries, and allow the -upnp option to override any stored setting.
Skip splash screen when -min is used, and fix Minimize to Tray function.
Do not blank "label" in Bitcoin-Qt "Send" tab, if the user has already entered something.
Correct various labels and messages.
Various memory leaks and potential null pointer deferences have been fixed.
Handle invalid Bitcoin URIs using "bitcoin://" instead of "bitcoin:".
Several shutdown issues have been fixed.
Revert to "global progress indication", as starting from zero every time was considered too confusing for many users.
Check that keys stored in the wallet are valid at startup, and if not, report corruption.
Enable accessible widgets on Windows, so that people with screen readers such as NVDA can make sense of it.
Various build fixes.
If no password is specified to bitcoind, recommend a secure password.
Automatically focus and scroll to new "Send coins" entries in Bitcoin-Qt.
Show a message box for --help on Windows, for Bitcoin-Qt.
Add missing "About Qt" menu option to show built-in Qt About dialog.
Don't show "-daemon" as an option for Bitcoin-Qt, since it isn't available.
Update hard-coded fallback seed nodes, choosing recent ones with long uptime and versions at least 0.4.0.
Add checkpoint at block 168,000.

39
doc/bitcoin-release-notes/release-notes-0.5.4.md

@ -1,39 +0,0 @@
Bitcoin version 0.5.4 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.4/
NOTE: 0.5.4rc3 is being renamed to 0.5.4 final with no changes.
This is a bugfix-only release in the 0.5.x series, plus a few protocol updates.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Stable source code is hosted at Gitorious:
http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.4#.tar.gz
PROTOCOL UPDATES
BIP 16: Special-case "pay to script hash" logic to enable minimal validation of new transactions.
Support for validating message signatures produced with compressed public keys.
BUG FIXES
Build with thread-safe MingW libraries for Windows, fixing a dangerous memory corruption scenario when exceptions are thrown.
Fix broken testnet mining.
Stop excess inventory relay during initial block download.
When disconnecting a node, clear the received buffer so that we do not process any already received messages.
Yet another attempt at implementing "minimize to tray" that works on all operating systems.
Fix Bitcoin-Qt notifications under Growl 1.3.
Increase required age of Bitcoin-Qt's "not up to date" status from 30 to 90 minutes.
Implemented missing verifications that led to crash on entering some wrong passphrases for encrypted wallets.
Fix default filename suffixes in GNOME save dialog.
Make the "Send coins" tab use the configured unit type, even on the first attempt.
Print detailed wallet loading errors to debug.log when it is corrupt.
Allocate exactly the amount of space needed for signing transactions, instead of a fixed 10k buffer.
Workaround for improbable memory access violation.
Check wallet's minimum version before trying to load it.
Remove wxBitcoin properly when installing Bitcoin-Qt over it. (Windows)
Detail reorganization information better in debug log.
Use a messagebox to display the error when -server is provided without configuring a RPC password.
Testing suite build now honours provided CXXFLAGS.
Removed an extraneous line-break in mature transaction tooltips.
Fix some grammatical errors in translation process documentation.

37
doc/bitcoin-release-notes/release-notes-0.5.5.md

@ -1,37 +0,0 @@
bitcoind and Bitcoin-Qt version 0.5.5 are now available for download at:
Windows: installer | zip (sig)
Source: tar.gz
bitcoind and Bitcoin-Qt version 0.6.0.7 are also tagged in git, but it is recommended to upgrade to 0.6.1.
These are bugfix-only releases.
Please report bugs by replying to this forum thread. Note that the 0.4.x wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr.
BUG FIXES
Version 0.6.0 allowed importing invalid "private keys", which would be unspendable; 0.6.0.7 will now verify the private key is valid, and refuse to import an invalid one
Verify status of encrypt/decrypt calls to detect failed padding
Check blocks for duplicate transactions earlier. Fixes #1167
Upgrade Windows builds to OpenSSL 1.0.1b
Set label when selecting an address that already has a label. Fixes #1080 (Bitcoin-Qt)
JSON-RPC listtransactions's from/count handling is now fixed
Optimize and fix multithreaded access, when checking whether we already know about transactions
Fix potential networking deadlock
Proper support for Growl 1.3 notifications
Display an error, rather than crashing, if encoding a QR Code failed (0.6.0.7)
Don't erroneously set "Display addresses" for users who haven't explicitly enabled it (Bitcoin-Qt)
Some non-ASCII input in JSON-RPC expecting hexadecimal may have been misinterpreted rather than rejected
Missing error condition checking added
Do not show green tick unless all known blocks are downloaded. Fixes #921 (Bitcoin-Qt)
Increase time ago of last block for "up to date" status from 30 to 90 minutes
Show a message box when runaway exception happens (Bitcoin-Qt)
Use a messagebox to display the error when -server is provided without providing a rpc password
Show error message instead of exception crash when unable to bind RPC port (Bitcoin-Qt)
Correct sign message bitcoin address tooltip. Fixes #1050 (Bitcoin-Qt)
Removed "(no label)" from QR Code dialog titlebar if we have no label (0.6.0.7)
Removed an ugly line break in tooltip for mature transactions (0.6.0.7)
Add missing tooltip and key shortcut in settings dialog (part of #1088) (Bitcoin-Qt)
Work around issue in boost::program_options that prevents from compiling in clang
Fixed bugs occurring only on platforms with unsigned characters (such as ARM).
Rename make_windows_icon.py to .sh as it is a shell script. Fixes #1099 (Bitcoin-Qt)
Various trivial internal corrections to types used for counting/size loops and warnings

138
doc/bitcoin-release-notes/release-notes-0.6.0.md

@ -1,138 +0,0 @@
Bitcoin version 0.6.0 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/test/
This release includes more than 20 language localizations.
More translations are welcome; join the
project at Transifex to help:
https://www.transifex.net/projects/p/bitcoin/
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Project source code is hosted at github; we are no longer
distributing .tar.gz files here, you can get them
directly from github:
https://github.com/bitcoin/bitcoin/tarball/v0.6.0 # .tar.gz
https://github.com/bitcoin/bitcoin/zipball/v0.6.0 # .zip
For Ubuntu users, there is a ppa maintained by Matt Corallo which
you can add to your system so that it will automatically keep
bitcoin up-to-date. Just type
sudo apt-add-repository ppa:bitcoin/bitcoin
in your terminal, then install the bitcoin-qt package.
KNOWN ISSUES
Shutting down while synchronizing with the network
(downloading the blockchain) can take more than a minute,
because database writes are queued to speed up download
time.
NEW FEATURES SINCE BITCOIN VERSION 0.5
Initial network synchronization should be much faster
(one or two hours on a typical machine instead of ten or more
hours).
Backup Wallet menu option.
Bitcoin-Qt can display and save QR codes for sending
and receiving addresses.
New context menu on addresses to copy/edit/delete them.
New Sign Message dialog that allows you to prove that you
own a bitcoin address by creating a digital
signature.
New wallets created with this version will
use 33-byte 'compressed' public keys instead of
65-byte public keys, resulting in smaller
transactions and less traffic on the bitcoin
network. The shorter keys are already supported
by the network but wallet.dat files containing
short keys are not compatible with earlier
versions of Bitcoin-Qt/bitcoind.
New command-line argument -blocknotify=<command>
that will spawn a shell process to run <command>
when a new block is accepted.
New command-line argument -splash=0 to disable
Bitcoin-Qt's initial splash screen
validateaddress JSON-RPC api command output includes
two new fields for addresses in the wallet:
pubkey : hexadecimal public key
iscompressed : true if pubkey is a short 33-byte key
New JSON-RPC api commands for dumping/importing
private keys from the wallet (dumprivkey, importprivkey).
New JSON-RPC api command for getting information about
blocks (getblock, getblockhash).
New JSON-RPC api command (getmininginfo) for getting
extra information related to mining. The getinfo
JSON-RPC command no longer includes mining-related
information (generate/genproclimit/hashespersec).
NOTABLE CHANGES
BIP30 implemented (security fix for an attack involving
duplicate "coinbase transactions").
The -nolisten, -noupnp and -nodnsseed command-line
options were renamed to -listen, -upnp and -dnsseed,
with a default value of 1. The old names are still
supported for compatibility (so specifying -nolisten
is automatically interpreted as -listen=0; every
boolean argument can now be specified as either
-foo or -nofoo).
The -noirc command-line options was renamed to
-irc, with a default value of 0. Run -irc=1 to
get the old behavior.
Three fill-up-available-memory denial-of-service
attacks were fixed.
NOT YET IMPLEMENTED FEATURES
Support for clicking on bitcoin: URIs and
opening/launching Bitcoin-Qt is available only on Linux,
and only if you configure your desktop to launch
Bitcoin-Qt. All platforms support dragging and dropping
bitcoin: URIs onto the Bitcoin-Qt window to start
payment.
PRELIMINARY SUPPORT FOR MULTISIGNATURE TRANSACTIONS
This release has preliminary support for multisignature
transactions-- transactions that require authorization
from more than one person or device before they
will be accepted by the bitcoin network.
Prior to this release, multisignature transactions
were considered 'non-standard' and were ignored;
with this release multisignature transactions are
considered standard and will start to be relayed
and accepted into blocks.
It is expected that future releases of Bitcoin-Qt
will support the creation of multisignature transactions,
once enough of the network has upgraded so relaying
and validating them is robust.
For this release, creation and testing of multisignature
transactions is limited to the bitcoin test network using
the "addmultisigaddress" JSON-RPC api call.
Short multisignature address support is included in this
release, as specified in BIP 13 and BIP 16.

2
doc/bitcoin-release-notes/release-notes-0.6.1.md

@ -1,2 +0,0 @@
Never released

50
doc/bitcoin-release-notes/release-notes-0.6.2.md

@ -1,50 +0,0 @@
Bitcoin version 0.6.2 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.2/
This is a bug-fix and code-cleanup release, with no major new features.
Please report bugs using the github issue tracker at:
https://github.com/bitcoin/bitcoin/issues
NOTABLE CHANGES
Much faster shutdowns. However, the blkindex.dat file is no longer
portable to different data directories by default. If you need a
portable blkindex.dat file then run with the new -detachdb=1 option
or the "Detach databases at shutdown" GUI preference.
Fixed https://github.com/bitcoin/bitcoin/issues/1065, a bug that
could cause long-running nodes to crash.
Mac and Windows binaries are compiled against OpenSSL 1.0.1b (Linux
binaries are dynamically linked to the version of OpenSSL on the system).
CHANGE SUMMARY
Use 'git shortlog --no-merges v0.6.0..' for a summary of this release.
Source codebase changes:
- Many source code cleanups and warnings fixes. Close to building with -Wall
- Locking overhaul, and several minor locking fixes
- Several source code portability fixes, e.g. FreeBSD
JSON-RPC interface changes:
- addmultisigaddress enabled for mainnet (previously only enabled for testnet)
Network protocol changes:
- protocol version 60001
- added nonce value to "ping" message (BIP 31)
- added new "pong" message (BIP 31)
Backend storage changes:
- Less redundant database flushing, especially during initial block download
- Shutdown improvements (see above)
Qt user interface:
- minor URI handling improvements
- progressbar improvements
- error handling improvements (show message box rather than console exception,
etc.)
- by popular request, make 4th bar of connection icon green

29
doc/bitcoin-release-notes/release-notes-0.6.3.md

@ -1,29 +0,0 @@
Bitcoin version 0.6.3 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/
This is a bug-fix release, with no new features.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
CHANGE SUMMARY
Fixed a serious denial-of-service attack that could cause the
bitcoin process to become unresponsive. Thanks to Sergio Lerner
for finding and responsibly reporting the problem. (CVE-2012-3789)
Optimized the process of checking transaction signatures, to
speed up processing of new block messages and make propagating
blocks across the network faster.
Fixed an obscure bug that could cause the bitcoin process to get
stuck on an invalid block-chain, if the invalid chain was
hundreds of blocks long.
Bitcoin-Qt no longer automatically selects the first address
in the address book (Issue #1384).
Fixed minimize-to-dock behavior of Bitcon-Qt on the Mac.
Added a block checkpoint at block 185,333 to speed up initial
blockchain download.

169
doc/bitcoin-release-notes/release-notes-0.7.0.md

@ -1,169 +0,0 @@
Bitcoin version 0.7.0 is now available for download at:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.0/
We recommend that everybody running prior versions of bitcoind/Bitcoin-Qt
upgrade to this release, except for users running Mac OSX 10.5.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Project source code is hosted at github; you can get
source-only tarballs/zipballs directly from there:
https://github.com/bitcoin/bitcoin/tarball/v0.7.0 # .tar.gz
https://github.com/bitcoin/bitcoin/zipball/v0.7.0 # .zip
Ubuntu Linux users can use the "Personal Package Archive" (PPA)
maintained by Matt Corallo to automatically keep
bitcoin up-to-date. Just type
sudo apt-add-repository ppa:bitcoin/bitcoin
sudo apt-get update
in your terminal, then install the bitcoin-qt package:
sudo apt-get install bitcoin-qt
How to Upgrade
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
Code:
/Applications/Bitcoin-Qt
(on Mac) or
Code:
bitcoind/bitcoin-qt
(on Linux).
If you were running on Linux with a version that might have been compiled
with a different version of Berkeley DB (for example, if you were using the
PPA and are switching to the binary release), then run the old version again
with the -detachdb argument and shut it down; if you do not, then the new
version will not be able to read the database files and will exit with an error.
Incompatible Changes
* Replaced the 'getmemorypool' RPC command with 'getblocktemplate/submitblock'
and 'getrawmempool' commands.
* Remove deprecated RPC 'getblocknumber'
Bitcoin Improvement Proposals implemented
BIP 22 - 'getblocktemplate', 'submitblock' RPCs
BIP 34 - block version 2, height in coinbase
BIP 35 - 'mempool' message, extended 'getdata' message behavior
Core bitcoin handling and blockchain database
* Reduced CPU usage, by eliminating some redundant hash calculations
* Cache signature verifications, to eliminate redundant signature checks
* Transactions with zero-value outputs are considered non-standard
* Mining: when creating new blocks, sort 'paid' area by fee-per-kb
* Database: better validation of on-disk stored data
* Database: minor optimizations and reliability improvements
* -loadblock=FILE will import an external block file
* Additional DoS (denial-of-service) prevention measures
* New blockchain checkpoint at block 193,000
JSON-RPC API
* Internal HTTP server is now thread-per-connection, rather than
a single-threaded queue that would stall on network I/O.
* Internal HTTP server supports HTTP/1.1, pipelined requests and
connection keep-alive.
* Support JSON-RPC 2.0 batches, to encapsulate multiple JSON-RPC requests
within a single HTTP request.
* IPv6 support
* Added raw transaction API. See https://gist.github.com/2839617
* Added 'getrawmempool', to list contents of TX memory pool
* Added 'getpeerinfo', to list data about each connected network peer
* Added 'listaddressgroupings' for better coin control
* Rework getblock call.
* Remove deprecated RPC 'getblocknumber'
* Remove superceded RPC 'getmemorypool' (see BIP 22, above)
* listtransactions output now displays "smart" times for transactions,
and 'blocktime' and 'timereceived' fields were added
P2P networking
* IPv6 support
* Tor hidden service support (see doc/Tor.txt)
* Attempts to fix "stuck blockchain download" problems
* Replace BDB database "addr.dat" with internally-managed "peers.dat"
file containing peer address data.
* Lower default send buffer from 10MB to 1MB
* proxy: SOCKS5 by default
* Support connecting by hostnames passed to proxy
* Add -seednode connections, and use this instead of DNS seeds when proxied
* Added -externalip and -discover
* Add -onlynet to connect only to a given network (IPv4, IPv6, or Tor)
* Separate listening sockets, -bind=<addr>
Qt GUI
* Add UI RPC console / debug window
* Re-Enable URI handling on Windows, add safety checks and tray-notifications
* Harmonize the use of ellipsis ("...") to be used in menus, but not on buttons
* Add 2 labels to the overviewpage that display Wallet and Transaction status (obsolete or current)
* Extend the optionsdialog (e.g. language selection) and re-work it to a tabbed UI
* Merge sign/verify message into a single window with tabbed UI
* Ensure a changed bitcoin unit immediately updates all GUI elements that use units
* Update QR Code dialog
* Improve error reporting at startup
* Fine-grained UI updates for a much smoother UI during block downloads
* Remove autocorrection of 0/i in addresses in UI
* Reorganize tray icon menu into more logical order
* Persistently poll for balance change when number of blocks changed
* Much better translations
* Override progress bar design on platforms with segmented progress bars to assist with readability
* Added 'immature balance' display on the overview page
* (Windows only): enable ASLR and DEP for bitcoin-qt.exe
* (Windows only): add meta-data to bitcoin-qt.exe (e.g. description)
Internal codebase
* Additional unit tests
* Compile warning fixes
Miscellaneous
* Reopen debug.log upon SIGHUP
* Bash programmable completion for bitcoind(1)
* On supported OS's, each thread is given a useful name
Thanks to everybody who contributed to this release:
Chris Moore
Christian von Roques
David Joel Schwartz
Douglas Huff
Fordy
Gavin Andresen
Giel van Schijndel
Gregory Maxwell
Jeff Garzik
Luke Dashjr
Matt Corallo
Michael Ford
Michael Hendricks
Peter Todd
Philip Kaufmann
Pieter Wuille
R E Broadley
Ricardo M. Correia
Rune K. Svendsen
Scott Ellis
Stephane Glondu
Wladimir J. van der Laan
cardpuncher
coderrr
fanquake
grimd34th
sje397
xanatos
Thanks to Sergio Lerner for reporting denial-of-service vulnerabilities fixed in this release.

110
doc/bitcoin-release-notes/release-notes-0.7.1.md

@ -1,110 +0,0 @@
Bitcoin version 0.7.1 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.1/
This is a bug-fix minor release.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Project source code is hosted at github; you can get
source-only tarballs/zipballs directly from there:
https://github.com/bitcoin/bitcoin/tarball/v0.7.1 # .tar.gz
https://github.com/bitcoin/bitcoin/zipball/v0.7.1 # .zip
Ubuntu Linux users can use the "Personal Package Archive" (PPA)
maintained by Matt Corallo to automatically keep
up-to-date. Just type:
sudo apt-add-repository ppa:bitcoin/bitcoin
sudo apt-get update
in your terminal, then install the bitcoin-qt package:
sudo apt-get install bitcoin-qt
KNOWN ISSUES
------------
Mac OSX 10.5 is no longer supported.
How to Upgrade
--------------
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you were running on Linux with a version that might have been compiled
with a different version of Berkeley DB (for example, if you were using an
Ubuntu PPA version), then run the old version again with the -detachdb
argument and shut it down; if you do not, then the new version will not
be able to read the database files and will exit with an error.
Explanation of -detachdb (and the new "stop true" RPC command):
The Berkeley DB database library stores data in both ".dat" and
"log" files, so the database is always in a consistent state,
even in case of power failure or other sudden shutdown. The
format of the ".dat" files is portable between different
versions of Berkeley DB, but the "log" files are not-- even minor
version differences may have incompatible "log" files. The
-detachdb option moves any pending changes from the "log" files
to the "blkindex.dat" file for maximum compatibility, but makes
shutdown much slower. Note that the "wallet.dat" file is always
detached, and versions prior to 0.6.0 detached all databases
at shutdown.
New features
------------
* Added a boolean argument to the RPC 'stop' command, if true sets
-detachdb to create standalone database .dat files before shutting down.
* -salvagewallet command-line option, which moves any existing wallet.dat
to wallet.{timestamp}.dat and then attempts to salvage public/private
keys and master encryption keys (if the wallet is encrypted) into
a new wallet.dat. This should only be used if your wallet becomes
corrupted, and is not intended to replace regular wallet backups.
* Import $DataDir/bootstrap.dat automatically, if it exists.
Dependency changes
------------------
* Qt 4.8.2 for Windows builds
* openssl 1.0.1c
Bug fixes
---------
* Clicking on a bitcoin: URI on Windows should now launch Bitcoin-Qt properly.
* When running -testnet, use RPC port 18332 by default.
* Better detection and handling of corrupt wallet.dat and blkindex.dat files.
Previous versions would crash with a DB_RUNRECOVERY exception, this
version detects most problems and tells you how to recover if it
cannot recover itself.
* Fixed an uninitialized variable bug that could cause transactions to
be reported out of order.
* Fixed a bug that could cause occasional crashes on exit.
* Warn the user that they need to create fresh wallet backups after they
encrypt their wallet.
----------------------------------------------------
Thanks to everybody who contributed to this release:
Gavin Andresen
Jeff Garzik
Luke Dashjr
Mark Friedenbach
Matt Corallo
Philip Kaufmann
Pieter Wuille
Rune K. Svendsen
Virgil Dupras
Wladimir J. van der Laan
fanquake
kjj2
xanatos

68
doc/bitcoin-release-notes/release-notes-0.7.2.md

@ -1,68 +0,0 @@
Bitcoin version 0.7.2 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.2
This is a bug-fix minor release.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you were running on Linux with a version that might have been compiled
with a different version of Berkeley DB (for example, if you were using an
Ubuntu PPA version), then run the old version again with the -detachdb
argument and shut it down; if you do not, then the new version will not
be able to read the database files and will exit with an error.
Explanation of -detachdb (and the new "stop true" RPC command):
The Berkeley DB database library stores data in both ".dat" and
"log" files, so the database is always in a consistent state,
even in case of power failure or other sudden shutdown. The
format of the ".dat" files is portable between different
versions of Berkeley DB, but the "log" files are not-- even minor
version differences may have incompatible "log" files. The
-detachdb option moves any pending changes from the "log" files
to the "blkindex.dat" file for maximum compatibility, but makes
shutdown much slower. Note that the "wallet.dat" file is always
detached, and versions prior to 0.6.0 detached all databases
at shutdown.
Bug fixes
---------
* Prevent RPC 'move' from deadlocking. This was caused by trying to lock the
database twice.
* Fix use-after-free problems in initialization and shutdown, the latter of
which caused Bitcoin-Qt to crash on Windows when exiting.
* Correct library linking so building on Windows natively works.
* Avoid a race condition and out-of-bounds read in block creation/mining code.
* Improve platform compatibility quirks, including fix for 100% CPU utilization
on FreeBSD 9.
* A few minor corrections to error handling, and updated translations.
* OSX 10.5 supported again
----------------------------------------------------
Thanks to everybody who contributed to this release:
Alex
dansmith
Gavin Andresen
Gregory Maxwell
Jeff Garzik
Luke Dashjr
Philip Kaufmann
Pieter Wuille
Wladimir J. van der Laan
grimd34th

139
doc/bitcoin-release-notes/release-notes-0.8.0.md

@ -1,139 +0,0 @@
Bitcoin-Qt version 0.8.0 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/
This is a major release designed to improve performance and handle the
increasing volume of transactions on the network.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
The first time you run after the upgrade a re-indexing process will be
started that will take anywhere from 30 minutes to several hours,
depending on the speed of your machine.
Incompatible Changes
--------------------
This release no longer maintains a full index of historical transaction ids
by default, so looking up an arbitrary transaction using the getrawtransaction
RPC call will not work. If you need that functionality, you must run once
with -txindex=1 -reindex=1 to rebuild block-chain indices (see below for more
details).
Improvements
------------
Mac and Windows binaries are signed with certificates owned by the Bitcoin
Foundation, to be compatible with the new security features in OSX 10.8 and
Windows 8.
LevelDB, a fast, open-source, non-relational database from Google, is
now used to store transaction and block indices. LevelDB works much better
on machines with slow I/O and is faster in general. Berkeley DB is now only
used for the wallet.dat file (public and private wallet keys and transactions
relevant to you).
Pieter Wuille implemented many optimizations to the way transactions are
verified, so a running, synchronized node uses less working memory and does
much less I/O. He also implemented parallel signature checking, so if you
have a multi-CPU machine all CPUs will be used to verify transactions.
New Features
------------
"Bloom filter" support in the network protocol for sending only relevant transactions to
lightweight clients.
contrib/verifysfbinaries is a shell-script to verify that the binary downloads
at sourceforge have not been tampered with. If you are able, you can help make
everybody's downloads more secure by running this occasionally to check PGP
signatures against download file checksums.
contrib/spendfrom is a python-language command-line utility that demonstrates
how to use the "raw transactions" JSON-RPC api to send coins received from particular
addresses (also known as "coin control").
New/changed settings (command-line or bitcoin.conf file)
--------------------------------------------------------
dbcache : controls LevelDB memory usage.
par : controls how many threads to use to validate transactions. Defaults to the number
of CPUs on your machine, use -par=1 to limit to a single CPU.
txindex : maintains an extra index of old, spent transaction ids so they will be found
by the getrawtransaction JSON-RPC method.
reindex : rebuild block and transaction indices from the downloaded block data.
New JSON-RPC API Features
-------------------------
lockunspent / listlockunspent allow locking transaction outputs for a period of time so
they will not be spent by other processes that might be accessing the same wallet.
addnode / getaddednodeinfo methods, to connect to specific peers without restarting.
importprivkey now takes an optional boolean parameter (default true) to control whether
or not to rescan the blockchain for transactions after importing a new private key.
Important Bug Fixes
-------------------
Privacy leak: the position of the "change" output in most transactions was not being
properly randomized, making network analysis of the transaction graph to identify
users' wallets easier.
Zero-confirmation transaction vulnerability: accepting zero-confirmation transactions
(transactions that have not yet been included in a block) from somebody you do not
trust is still not recommended, because there will always be ways for attackers to
double-spend zero-confirmation transactions. However, this release includes a bug
fix that makes it a little bit more difficult for attackers to double-spend a
certain type ("lockTime in the future") of zero-confirmation transaction.
Dependency Changes
------------------
Qt 4.8.3 (compiling against older versions of Qt 4 should continue to work)
Thanks to everybody who contributed to this release:
----------------------------------------------------
Alexander Kjeldaas
Andrey Alekseenko
Arnav Singh
Christian von Roques
Eric Lombrozo
Forrest Voight
Gavin Andresen
Gregory Maxwell
Jeff Garzik
Luke Dashjr
Matt Corallo
Mike Cassano
Mike Hearn
Peter Todd
Philip Kaufmann
Pieter Wuille
Richard Schwab
Robert Backhaus
Rune K. Svendsen
Sergio Demian Lerner
Wladimir J. van der Laan
burger2
default
fanquake
grimd34th
justmoon
redshark1802
tucenaber
xanatos

22
doc/bitcoin-release-notes/release-notes-0.8.1.md

@ -1,22 +0,0 @@
Bitcoin-Qt/bitcoind version 0.8.1 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/
This is a maintenance release that adds a new network rule to avoid
a chain-forking incompatibility with versions 0.7.2 and earlier.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you
run 0.8.1 your blockchain files will be re-indexed, which will take
anywhere from 30 minutes to several hours, depending on the speed of
your machine.

137
doc/bitcoin-release-notes/release-notes-0.8.2.md

@ -1,137 +0,0 @@
Bitcoin-Qt version 0.8.2 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.2/
This is a maintenance release that fixes many bugs and includes
a few small new features.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you
run 0.8.2 your blockchain files will be re-indexed, which will take
anywhere from 30 minutes to several hours, depending on the speed of
your machine.
0.8.2 Release notes
Fee Policy changes
The default fee for low-priority transactions is lowered from 0.0005 BTC
(for each 1,000 bytes in the transaction; an average transaction is
about 500 bytes) to 0.0001 BTC.
Payments (transaction outputs) of 0.543 times the minimum relay fee
(0.00005430 BTC) are now considered 'non-standard', because storing them
costs the network more than they are worth and spending them will usually
cost their owner more in transaction fees than they are worth.
Non-standard transactions are not relayed across the network, are not included
in blocks by most miners, and will not show up in your wallet until they are
included in a block.
The default fee policy can be overridden using the -mintxfee and -minrelaytxfee
command-line options, but note that we intend to replace the hard-coded fees
with code that automatically calculates and suggests appropriate fees in the
0.9 release and note that if you set a fee policy significantly different from
the rest of the network your transactions may never confirm.
Bitcoin-Qt changes
* New icon and splash screen
* Improve reporting of synchronization process
* Remove hardcoded fee recommendations
* Improve metadata of executable on MacOSX and Windows
* Move export button to individual tabs instead of toolbar
* Add "send coins" command to context menu in address book
* Add "copy txid" command to copy transaction IDs from transaction overview
* Save & restore window size and position when showing & hiding window
* New translations: Arabic (ar), Bosnian (bs), Catalan (ca), Welsh (cy),
Esperanto (eo), Interlingua (la), Latvian (lv) and many improvements
to current translations
MacOSX:
* OSX support for click-to-pay (bitcoin:) links
* Fix GUI disappearing problem on MacOSX (issue #1522)
Linux/Unix:
* Copy addresses to middle-mouse-button clipboard
Command-line options
* -walletnotify will call a command on receiving transactions that affect the wallet.
* -alertnotify will call a command on receiving an alert from the network.
* -par now takes a negative number, to leave a certain amount of cores free.
JSON-RPC API changes
* fixed a getblocktemplate bug that caused excessive CPU creating blocks.
* listunspent now lists account and address information.
* getinfo now also returns the time adjustment estimated from your peers.
* getpeerinfo now returns bytessent, bytesrecv and syncnode.
* gettxoutsetinfo returns statistics about the unspent transaction output database.
* gettxout returns information about a specific unspent transaction output.
Networking changes
* Significant changes to the networking code, reducing latency and memory consumption.
* Avoid initial block download stalling.
* Remove IRC seeding support.
* Performance tweaks.
* Added testnet DNS seeds.
Wallet compatibility/rescuing
* Cases where wallets cannot be opened in another version/installation should be reduced.
* -salvagewallet now works for encrypted wallets.
Known Bugs
* Entering the 'getblocktemplate' or 'getwork' RPC commands into the Bitcoin-Qt debug
console will cause Bitcoin-Qt to crash. Run Bitcoin-Qt with the -server command-line
option to workaround.
Thanks to everybody who contributed to the 0.8.2 release!
APerson241
Andrew Poelstra
Calvin Owens
Chuck LeDuc Díaz
Colin Dean
David Griffith
David Serrano
Eric Lombrozo
Gavin Andresen
Gregory Maxwell
Jeff Garzik
Jonas Schnelli
Larry Gilbert
Luke Dashjr
Matt Corallo
Michael Ford
Mike Hearn
Patrick Brown
Peter Todd
Philip Kaufmann
Pieter Wuille
Richard Schwab
Roman Mindalev
Scott Howard
Tariq Bashir
Warren Togami
Wladimir J. van der Laan
freewil
gladoscc
kjj2
mb300sd
super3

18
doc/bitcoin-release-notes/release-notes-0.8.3.md

@ -1,18 +0,0 @@
Bitcoin-Qt version 0.8.3 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.3/
This is a maintenance release to fix a denial-of-service attack that
can cause nodes to crash.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
0.8.3 Release notes
Truncate over-size messages to prevent a memory exhaustion attack.
Fix a regression that causes excessive re-writing of the 'peers.dat' file.
Thanks to Peter Todd for responsibly disclosing the vulnerability
( CVE-2013-4627 ) and creating a fix.

83
doc/bitcoin-release-notes/release-notes-0.8.4.md

@ -1,83 +0,0 @@
Bitcoin-Qt version 0.8.4 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.4/
This is a maintenance release to fix a critical bug and three
security issues; we urge all users to upgrade.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you
run 0.8.4 your blockchain files will be re-indexed, which will take
anywhere from 30 minutes to several hours, depending on the speed of
your machine.
0.8.4 Release notes
===================
Security issues
---------------
An attacker could send a series of messages that resulted in
an integer division-by-zero error in the Bloom Filter handling
code, causing the Bitcoin-Qt or bitcoind process to crash.
Bloom filters were introduced with version 0.8, so versions 0.8.0
through 0.8.3 are vulnerable to this critical denial-of-service attack.
A constant-time algorithm is now used to check RPC password
guess attempts; fixes https://github.com/bitcoin/bitcoin/issues/2838
(CVE-2013-4165)
Implement a better fix for the fill-memory-with-orphan-transactions
attack that was fixed in 0.8.3. See
https://bitslog.wordpress.com/2013/07/18/buggy-cve-2013-4627-patch-open-new-vectors-of-attack/
for a description of the weaknesses of the previous fix.
(CVE-2013-4627)
Bugs fixed
----------
Fix multi-block reorg transaction resurrection.
Fix non-standard disconnected transactions causing mempool orphans.
This bug could cause nodes running with the -debug flag to crash.
OSX: use 'FD_FULLSYNC' with LevelDB, which will (hopefully!)
prevent the database corruption issues many people have
experienced on OSX.
Linux: clicking on bitcoin: links was broken if you were using
a Gnome-based desktop.
Fix a hang-at-shutdown bug that only affects users that compile
their own version of Bitcoin against Boost versions 1.50-1.52.
Other changes
-------------
Checkpoint at block 250,000 to speed up initial block downloads
and make the progress indicator when downloading more accurate.
Thanks to everybody who contributed to the 0.8.4 releases!
----------------------------------------------------------
Pieter Wuille
Warren Togami
Patrick Strateman
pakt
Gregory Maxwell
Sergio Demian Lerner
grayleonard
Cory Fields
Matt Corallo
Gavin Andresen

44
doc/bitcoin-release-notes/release-notes-0.8.5.md

@ -1,44 +0,0 @@
Bitcoin-Qt version 0.8.5 is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/
This is a maintenance release to fix a critical bug;
we urge all users to upgrade.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you
run 0.8.5 your blockchain files will be re-indexed, which will take
anywhere from 30 minutes to several hours, depending on the speed of
your machine.
0.8.5 Release notes
===================
Bugs fixed
----------
Transactions with version numbers larger than 0x7fffffff were
incorrectly being relayed and included in blocks.
Blocks containing transactions with version numbers larger
than 0x7fffffff caused the code that checks for LevelDB database
inconsistencies at startup to erroneously report database
corruption and suggest that you reindex your database.
This release also contains a non-critical fix to the code that
enforces BIP 34 (block height in the coinbase transaction).
--
Thanks to Gregory Maxwell and Pieter Wuille for quickly
identifying and fixing the transaction version number bug.

66
doc/bitcoin-release-notes/release-notes-0.8.6.md

@ -1,66 +0,0 @@
Bitcoin-Qt version 0.8.6 final is now available from:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.6/
This is a maintenance release to fix a critical bug; we urge all users to upgrade.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you already downloaded 0.8.6rc1 you do not need to re-download. This release is exactly the same.
If you are running an older version, shut it down. Wait
until it has completely shut down (which might take a few minutes for older
versions), then run the installer (on Windows) or just copy over
/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you
run 0.8.6 your blockchain files will be re-indexed, which will take
anywhere from 30 minutes to several hours, depending on the speed of
your machine.
0.8.6 Release notes
===================
- Default block size increase for miners.
(see https://gist.github.com/gavinandresen/7670433#086-accept-into-block)
- Remove the all-outputs-must-be-greater-than-CENT-to-qualify-as-free rule for relaying
(see https://gist.github.com/gavinandresen/7670433#086-relaying)
- Lower maximum size for free transaction creation
(see https://gist.github.com/gavinandresen/7670433#086-wallet)
- OSX block chain database corruption fixes
- Update leveldb to 1.13
- Use fcntl with `F_FULLSYNC` instead of fsync on OSX
- Use native Darwin memory barriers
- Replace use of mmap in leveldb for improved reliability (only on OSX)
- Fix nodes forwarding transactions with empty vins and getting banned
- Network code performance and robustness improvements
- Additional debug.log logging for diagnosis of network problems, log timestamps by default
- Fix Bitcoin-Qt startup crash when clicking dock icon on OSX
- Fix memory leaks in CKey::SetCompactSignature() and Key::SignCompact()
- Fix rare GUI crash on send
- Various small GUI, documentation and build fixes
Warning
-------
- There have been frequent reports of users running out of virtual memory on 32-bit systems
during the initial sync.
Hence it is recommended to use a 64-bit executable if possible.
A 64-bit executable for Windows is planned for 0.9.
Note: Gavin Andresen's GPG signing key for SHA256SUMS.asc has been changed from key id 1FC730C1 to sub key 7BF6E212 (see https://github.com/bitcoin/bitcoin.org/pull/279).

411
doc/bitcoin-release-notes/release-notes-0.9.0.md

@ -1,411 +0,0 @@
Bitcoin Core version 0.9.0 is now available from:
https://bitcoin.org/bin/0.9.0/
This is a new major version release, bringing both new features and
bug fixes.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), uninstall all
earlier versions of Bitcoin, then run the installer (on Windows) or just copy
over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you run
0.9.0 your blockchain files will be re-indexed, which will take anywhere from
30 minutes to several hours, depending on the speed of your machine.
On Windows, do not forget to uninstall all earlier versions of the Bitcoin
client first, especially if you are switching to the 64-bit version.
Windows 64-bit installer
-------------------------
New in 0.9.0 is the Windows 64-bit version of the client. There have been
frequent reports of users running out of virtual memory on 32-bit systems
during the initial sync. Because of this it is recommended to install the
64-bit version if your system supports it.
NOTE: Release candidate 2 Windows binaries are not code-signed; use PGP
and the SHA256SUMS.asc file to make sure your binaries are correct.
In the final 0.9.0 release, Windows setup.exe binaries will be code-signed.
OSX 10.5 / 32-bit no longer supported
-------------------------------------
0.9.0 drops support for older Macs. The minimum requirements are now:
* A 64-bit-capable CPU (see http://support.apple.com/kb/ht3696);
* Mac OS 10.6 or later (see https://support.apple.com/kb/ht1633).
Downgrading warnings
--------------------
The 'chainstate' for this release is not always compatible with previous
releases, so if you run 0.9 and then decide to switch back to a
0.8.x release you might get a blockchain validation error when starting the
old release (due to 'pruned outputs' being omitted from the index of
unspent transaction outputs).
Running the old release with the -reindex option will rebuild the chainstate
data structures and correct the problem.
Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan
the blockchain for missing spent coins, which will take a long time (tens
of minutes on a typical machine).
Rebranding to Bitcoin Core
---------------------------
To reduce confusion between Bitcoin-the-network and Bitcoin-the-software we
have renamed the reference client to Bitcoin Core.
OP_RETURN and data in the block chain
-------------------------------------
On OP_RETURN: There was been some confusion and misunderstanding in
the community, regarding the OP_RETURN feature in 0.9 and data in the
blockchain. This change is not an endorsement of storing data in the
blockchain. The OP_RETURN change creates a provably-prunable output,
to avoid data storage schemes -- some of which were already deployed --
that were storing arbitrary data such as images as forever-unspendable
TX outputs, bloating bitcoin's UTXO database.
Storing arbitrary data in the blockchain is still a bad idea; it is less
costly and far more efficient to store non-currency data elsewhere.
Autotools build system
-----------------------
For 0.9.0 we switched to an autotools-based build system instead of individual
(q)makefiles.
Using the standard "./autogen.sh; ./configure; make" to build Bitcoin-Qt and
bitcoind makes it easier for experienced open source developers to contribute
to the project.
Be sure to check doc/build-*.md for your platform before building from source.
Bitcoin-cli
-------------
Another change in the 0.9 release is moving away from the bitcoind executable
functioning both as a server and as a RPC client. The RPC client functionality
("tell the running bitcoin daemon to do THIS") was split into a separate
executable, 'bitcoin-cli'. The RPC client code will eventually be removed from
bitcoind, but will be kept for backwards compatibility for a release or two.
`walletpassphrase` RPC
-----------------------
The behavior of the `walletpassphrase` RPC when the wallet is already unlocked
has changed between 0.8 and 0.9.
The 0.8 behavior of `walletpassphrase` is to fail when the wallet is already unlocked:
> walletpassphrase 1000
walletunlocktime = now + 1000
> walletpassphrase 10
Error: Wallet is already unlocked (old unlock time stays)
The new behavior of `walletpassphrase` is to set a new unlock time overriding
the old one:
> walletpassphrase 1000
walletunlocktime = now + 1000
> walletpassphrase 10
walletunlocktime = now + 10 (overriding the old unlock time)
Transaction malleability-related fixes
--------------------------------------
This release contains a few fixes for transaction ID (TXID) malleability
issues:
- -nospendzeroconfchange command-line option, to avoid spending
zero-confirmation change
- IsStandard() transaction rules tightened to prevent relaying and mining of
mutated transactions
- Additional information in listtransactions/gettransaction output to
report wallet transactions that conflict with each other because
they spend the same outputs.
- Bug fixes to the getbalance/listaccounts RPC commands, which would report
incorrect balances for double-spent (or mutated) transactions.
- New option: -zapwallettxes to rebuild the wallet's transaction information
Transaction Fees
----------------
This release drops the default fee required to relay transactions across the
network and for miners to consider the transaction in their blocks to
0.01mBTC per kilobyte.
Note that getting a transaction relayed across the network does NOT guarantee
that the transaction will be accepted by a miner; by default, miners fill
their blocks with 50 kilobytes of high-priority transactions, and then with
700 kilobytes of the highest-fee-per-kilobyte transactions.
The minimum relay/mining fee-per-kilobyte may be changed with the
minrelaytxfee option. Note that previous releases incorrectly used
the mintxfee setting to determine which low-priority transactions should
be considered for inclusion in blocks.
The wallet code still uses a default fee for low-priority transactions of
0.1mBTC per kilobyte. During periods of heavy transaction volume, even this
fee may not be enough to get transactions confirmed quickly; the mintxfee
option may be used to override the default.
0.9.0 Release notes
=======================
RPC:
- New notion of 'conflicted' transactions, reported as confirmations: -1
- 'listreceivedbyaddress' now provides tx ids
- Add raw transaction hex to 'gettransaction' output
- Updated help and tests for 'getreceivedby(account|address)'
- In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction,
but defaulting to 1 for backward compatibility
- Add 'verifychain', to verify chain database at runtime
- Add 'dumpwallet' and 'importwallet' RPCs
- 'keypoolrefill' gains optional size parameter
- Add 'getbestblockhash', to return tip of best chain
- Add 'chainwork' (the total work done by all blocks since the genesis block)
to 'getblock' output
- Make RPC password resistant to timing attacks
- Clarify help messages and add examples
- Add 'getrawchangeaddress' call for raw transaction change destinations
- Reject insanely high fees by default in 'sendrawtransaction'
- Add RPC call 'decodescript' to decode a hex-encoded transaction script
- Make 'validateaddress' provide redeemScript
- Add 'getnetworkhashps' to get the calculated network hashrate
- New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields
in 'getpeerinfo' output
- Adding new 'addrlocal' field to 'getpeerinfo' output
- Add verbose boolean to 'getrawmempool'
- Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance
- Explicitly ensure that wallet is unlocked in `importprivkey`
- Add check for valid keys in `importprivkey`
Command-line options:
- New option: -nospendzeroconfchange to never spend unconfirmed change outputs
- New option: -zapwallettxes to rebuild the wallet's transaction information
- Rename option '-tor' to '-onion' to better reflect what it does
- Add '-disablewallet' mode to let bitcoind run entirely without wallet (when
built with wallet)
- Update default '-rpcsslciphers' to include TLSv1.2
- make '-logtimestamps' default on and rework help-message
- RPC client option: '-rpcwait', to wait for server start
- Remove '-logtodebugger'
- Allow `-noserver` with bitcoind
Block-chain handling and storage:
- Update leveldb to 1.15
- Check for correct genesis (prevent cases where a datadir from the wrong
network is accidentally loaded)
- Allow txindex to be removed and add a reindex dialog
- Log aborted block database rebuilds
- Store orphan blocks in serialized form, to save memory
- Limit the number of orphan blocks in memory to 750
- Fix non-standard disconnected transactions causing mempool orphans
- Add a new checkpoint at block 279,000
Wallet:
- Bug fixes and new regression tests to correctly compute
the balance of wallets containing double-spent (or mutated) transactions
- Store key creation time. Calculate whole-wallet birthday.
- Optimize rescan to skip blocks prior to birthday
- Let user select wallet file with -wallet=foo.dat
- Consider generated coins mature at 101 instead of 120 blocks
- Improve wallet load time
- Don't count txins for priority to encourage sweeping
- Don't create empty transactions when reading a corrupted wallet
- Fix rescan to start from beginning after importprivkey
- Only create signatures with low S values
Mining:
- Increase default -blockmaxsize/prioritysize to 750K/50K
- 'getblocktemplate' does not require a key to create a block template
- Mining code fee policy now matches relay fee policy
Protocol and network:
- Drop the fee required to relay a transaction to 0.01mBTC per kilobyte
- Send tx relay flag with version
- New 'reject' P2P message (BIP 0061, see
https://gist.github.com/gavinandresen/7079034 for draft)
- Dump addresses every 15 minutes instead of 10 seconds
- Relay OP_RETURN data TxOut as standard transaction type
- Remove CENT-output free transaction rule when relaying
- Lower maximum size for free transaction creation
- Send multiple inv messages if mempool.size > MAX_INV_SZ
- Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION
- Do not treat fFromMe transaction differently when broadcasting
- Process received messages one at a time without sleeping between messages
- Improve logging of failed connections
- Bump protocol version to 70002
- Add some additional logging to give extra network insight
- Added new DNS seed from bitcoinstats.com
Validation:
- Log reason for non-standard transaction rejection
- Prune provably-unspendable outputs, and adapt consistency check for it.
- Detect any sufficiently long fork and add a warning
- Call the -alertnotify script when we see a long or invalid fork
- Fix multi-block reorg transaction resurrection
- Reject non-canonically-encoded serialization sizes
- Reject dust amounts during validation
- Accept nLockTime transactions that finalize in the next block
Build system:
- Switch to autotools-based build system
- Build without wallet by passing `--disable-wallet` to configure, this
removes the BerkeleyDB dependency
- Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more
recent versions
- Windows 64-bit build support
- Solaris compatibility fixes
- Check integrity of gitian input source tarballs
- Enable full GCC Stack-smashing protection for all OSes
GUI:
- Switch to Qt 5.2.0 for Windows build
- Add payment request (BIP 0070) support
- Improve options dialog
- Show transaction fee in new send confirmation dialog
- Add total balance in overview page
- Allow user to choose data directory on first start, when data directory is
missing, or when the -choosedatadir option is passed
- Save and restore window positions
- Add vout index to transaction id in transactions details dialog
- Add network traffic graph in debug window
- Add open URI dialog
- Add Coin Control Features
- Improve receive coins workflow: make the 'Receive' tab into a form to request
payments, and move historical address list functionality to File menu.
- Rebrand to `Bitcoin Core`
- Move initialization/shutdown to a thread. This prevents "Not responding"
messages during startup. Also show a window during shutdown.
- Don't regenerate autostart link on every client startup
- Show and store message of normal bitcoin:URI
- Fix richtext detection hang issue on very old Qt versions
- OS X: Make use of the 10.8+ user notification center to display Growl-like
notifications
- OS X: Added NSHighResolutionCapable flag to Info.plist for better font
rendering on Retina displays.
- OS X: Fix bitcoin-qt startup crash when clicking dock icon
- Linux: Fix Gnome bitcoin: URI handler
Miscellaneous:
- Add Linux script (contrib/qos/tc.sh) to limit outgoing bandwidth
- Add '-regtest' mode, similar to testnet but private with instant block
generation with 'setgenerate' RPC.
- Add 'linearize.py' script to contrib, for creating bootstrap.dat
- Add separate bitcoin-cli client
Credits
--------
Thanks to everyone who contributed to this release:
- Andrey
- Ashley Holman
- b6393ce9-d324-4fe1-996b-acf82dbc3d53
- bitsofproof
- Brandon Dahler
- Calvin Tam
- Christian Decker
- Christian von Roques
- Christopher Latham
- Chuck
- coblee
- constantined
- Cory Fields
- Cozz Lovan
- daniel
- Daniel Larimer
- David Hill
- Dmitry Smirnov
- Drak
- Eric Lombrozo
- fanquake
- fcicq
- Florin
- frewil
- Gavin Andresen
- Gregory Maxwell
- gubatron
- Guillermo Céspedes Tabárez
- Haakon Nilsen
- HaltingState
- Han Lin Yap
- harry
- Ian Kelling
- Jeff Garzik
- Johnathan Corgan
- Jonas Schnelli
- Josh Lehan
- Josh Triplett
- Julian Langschaedel
- Kangmo
- Lake Denman
- Luke Dashjr
- Mark Friedenbach
- Matt Corallo
- Michael Bauer
- Michael Ford
- Michagogo
- Midnight Magic
- Mike Hearn
- Nils Schneider
- Noel Tiernan
- Olivier Langlois
- patrick s
- Patrick Strateman
- paveljanik
- Peter Todd
- phantomcircuit
- phelixbtc
- Philip Kaufmann
- Pieter Wuille
- Rav3nPL
- R E Broadley
- regergregregerrge
- Robert Backhaus
- Roman Mindalev
- Rune K. Svendsen
- Ryan Niebur
- Scott Ellis
- Scott Willeke
- Sergey Kazenyuk
- Shawn Wilkinson
- Sined
- sje
- Subo1978
- super3
- Tamas Blummer
- theuni
- Thomas Holenstein
- Timon Rapp
- Timothy Stranex
- Tom Geller
- Torstein Husebø
- Vaclav Vobornik
- vhf / victor felder
- Vinnie Falco
- Warren Togami
- Wil Bown
- Wladimir J. van der Laan

53
doc/bitcoin-release-notes/release-notes-0.9.1.md

@ -1,53 +0,0 @@
Bitcoin Core version 0.9.1 is now available from:
https://bitcoin.org/bin/0.9.1/
This is a security update. It is recommended to upgrade to this release
as soon as possible.
It is especially important to upgrade if you currently have version
0.9.0 installed and are using the graphical interface OR you are using
bitcoind from any pre-0.9.1 version, and have enabled SSL for RPC and
have configured allowip to allow rpc connections from potentially
hostile hosts.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you run
0.9.1 your blockchain files will be re-indexed, which will take anywhere from
30 minutes to several hours, depending on the speed of your machine.
0.9.1 Release notes
=======================
No code changes were made between 0.9.0 and 0.9.1. Only the dependencies were changed.
- Upgrade OpenSSL to 1.0.1g. This release fixes the following vulnerabilities which can
affect the Bitcoin Core software:
- CVE-2014-0160 ("heartbleed")
A missing bounds check in the handling of the TLS heartbeat extension can
be used to reveal up to 64k of memory to a connected client or server.
- CVE-2014-0076
The Montgomery ladder implementation in OpenSSL does not ensure that
certain swap operations have a constant-time behavior, which makes it
easier for local users to obtain ECDSA nonces via a FLUSH+RELOAD cache
side-channel attack.
- Add statically built executables to Linux build
Credits
--------
Credits go to the OpenSSL team for fixing the vulnerabilities quickly.

207
doc/bitcoin-release-notes/release-notes-0.9.2.1.md

@ -1,207 +0,0 @@
Bitcoin Core version 0.9.2.1 is now available from:
https://bitcoin.org/bin/0.9.2.1/
This is a new minor version release, bringing mostly bug fixes and some minor
improvements. OpenSSL has been updated because of a security issue (CVE-2014-0224).
Upgrading to this release is recommended.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you run
0.9.2.1 your blockchain files will be re-indexed, which will take anywhere from
30 minutes to several hours, depending on the speed of your machine.
Downgrading warnings
--------------------
The 'chainstate' for this release is not always compatible with previous
releases, so if you run 0.9.x and then decide to switch back to a
0.8.x release you might get a blockchain validation error when starting the
old release (due to 'pruned outputs' being omitted from the index of
unspent transaction outputs).
Running the old release with the -reindex option will rebuild the chainstate
data structures and correct the problem.
Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan
the blockchain for missing spent coins, which will take a long time (tens
of minutes on a typical machine).
Important changes
==================
Gitian OSX build
-----------------
The deterministic build system that was already used for Windows and Linux
builds is now used for OSX as well. Although the resulting executables have
been tested quite a bit, there could be possible regressions. Be sure to report
these on the Github bug tracker mentioned above.
Compatibility of Linux build
-----------------------------
For Linux we now build against Qt 4.6, and filter the symbols for libstdc++ and glibc.
This brings back compatibility with
- Debian 6+ / Tails
- Ubuntu 10.04
- CentOS 6.5
0.9.2 - 0.9.2.1 Release notes
=======================
The OpenSSL dependency in the gitian builds has been upgraded to 1.0.1h because of CVE-2014-0224.
RPC:
- Add `getwalletinfo`, `getblockchaininfo` and `getnetworkinfo` calls (will replace hodge-podge `getinfo` at some point)
- Add a `relayfee` field to `getnetworkinfo`
- Fix RPC related shutdown hangs and leaks
- Always show syncnode in `getpeerinfo`
- `sendrawtransaction`: report the reject code and reason, and make it possible to re-send transactions that are already in the mempool
- `getmininginfo` show right genproclimit
Command-line options:
- Fix `-printblocktree` output
- Show error message if ReadConfigFile fails
Block-chain handling and storage:
- Fix for GetBlockValue() after block 13,440,000 (BIP42)
- Upgrade leveldb to 1.17
Protocol and network code:
- Per-peer block download tracking and stalled download detection
- Add new DNS seed from bitnodes.io
- Prevent socket leak in ThreadSocketHandler and correct some proxy related socket leaks
- Use pnode->nLastRecv as sync score (was the wrong way around)
Wallet:
- Make GetAvailableCredit run GetHash() only once per transaction (performance improvement)
- Lower paytxfee warning threshold from 0.25 BTC to 0.01 BTC
- Fix importwallet nTimeFirstKey (trigger necessary rescans)
- Log BerkeleyDB version at startup
- CWallet init fix
Build system:
- Add OSX build descriptors to gitian
- Fix explicit --disable-qt-dbus
- Don't require db_cxx.h when compiling with wallet disabled and GUI enabled
- Improve missing boost error reporting
- Upgrade miniupnpc version to 1.9
- gitian-linux: --enable-glibc-back-compat for binary compatibility with old distributions
- gitian: don't export any symbols from executable
- gitian: build against Qt 4.6
- devtools: add script to check symbols from Linux gitian executables
- Remove build-time no-IPv6 setting
GUI:
- Fix various coin control visual issues
- Show number of in/out connections in debug console
- Show weeks as well as years behind for long timespans behind
- Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected.
- Show also value for options overridden on command line in options dialog
- Fill in label from address book also for URIs
- Fixes feel when resizing the last column on tables (issue #2862)
- Fix ESC in disablewallet mode
- Add expert section to wallet tab in optionsdialog
- Do proper boost::path conversion (fixes unicode in datadir)
- Only override -datadir if different from the default (fixes -datadir in config file)
- Show rescan progress at start-up
- Show importwallet progress
- Get required locks upfront in polling functions (avoids hanging on locks)
- Catch Windows shutdown events while client is running
- Optionally add third party links to transaction context menu
- Check for !pixmap() before trying to export QR code (avoids crashes when no QR code could be generated)
- Fix "Start bitcoin on system login"
Miscellaneous:
- Replace non-threadsafe C functions (gmtime, strerror and setlocale)
- Add missing cs_main and wallet locks
- Avoid exception at startup when system locale not recognized
- Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input
- devtools: add a script to fetch and postprocess translations
Credits
--------
Thanks to everyone who contributed to this release:
- Addy Yeow
- Altoidnerd
- Andrea D'Amore
- Andreas Schildbach
- Bardi Harborow
- Brandon Dahler
- Bryan Bishop
- Chris Beams
- Christian von Roques
- Cory Fields
- Cozz Lovan
- daniel
- Daniel Newton
- David A. Harding
- ditto-b
- duanemoody
- Eric S. Bullington
- Fabian Raetz
- Gavin Andresen
- Gregory Maxwell
- gubatron
- Haakon Nilsen
- harry
- Hector Jusforgues
- Isidoro Ghezzi
- Jeff Garzik
- Johnathan Corgan
- jtimon
- Kamil Domanski
- langerhans
- Luke Dashjr
- Manuel Araoz
- Mark Friedenbach
- Matt Corallo
- Matthew Bogosian
- Meeh
- Michael Ford
- Michagogo
- Mikael Wikman
- Mike Hearn
- olalonde
- paveljanik
- peryaudo
- Philip Kaufmann
- philsong
- Pieter Wuille
- R E Broadley
- richierichrawr
- Rune K. Svendsen
- rxl
- shshshsh
- Simon de la Rouviere
- Stuart Cardall
- super3
- Telepatheic
- Thomas Zander
- Torstein Husebø
- Warren Togami
- Wladimir J. van der Laan
- Yoichi Hirai

207
doc/bitcoin-release-notes/release-notes-0.9.2.md

@ -1,207 +0,0 @@
Bitcoin Core version 0.9.2 is now available from:
https://bitcoin.org/bin/0.9.2/
This is a new minor version release, bringing mostly bug fixes and some minor
improvements. OpenSSL has been updated because of a security issue (CVE-2014-0224).
Upgrading to this release is recommended.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you run
0.9.2 your blockchain files will be re-indexed, which will take anywhere from
30 minutes to several hours, depending on the speed of your machine.
Downgrading warnings
--------------------
The 'chainstate' for this release is not always compatible with previous
releases, so if you run 0.9.x and then decide to switch back to a
0.8.x release you might get a blockchain validation error when starting the
old release (due to 'pruned outputs' being omitted from the index of
unspent transaction outputs).
Running the old release with the -reindex option will rebuild the chainstate
data structures and correct the problem.
Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan
the blockchain for missing spent coins, which will take a long time (tens
of minutes on a typical machine).
Important changes
==================
Gitian OSX build
-----------------
The deterministic build system that was already used for Windows and Linux
builds is now used for OSX as well. Although the resulting executables have
been tested quite a bit, there could be possible regressions. Be sure to report
these on the Github bug tracker mentioned above.
Compatibility of Linux build
-----------------------------
For Linux we now build against Qt 4.6, and filter the symbols for libstdc++ and glibc.
This brings back compatibility with
- Debian 6+ / Tails
- Ubuntu 10.04
- CentOS 6.5
0.9.2 Release notes
=======================
The OpenSSL dependency in the gitian builds has been upgraded to 1.0.1h because of CVE-2014-0224.
RPC:
- Add `getwalletinfo`, `getblockchaininfo` and `getnetworkinfo` calls (will replace hodge-podge `getinfo` at some point)
- Add a `relayfee` field to `getnetworkinfo`
- Fix RPC related shutdown hangs and leaks
- Always show syncnode in `getpeerinfo`
- `sendrawtransaction`: report the reject code and reason, and make it possible to re-send transactions that are already in the mempool
- `getmininginfo` show right genproclimit
Command-line options:
- Fix `-printblocktree` output
- Show error message if ReadConfigFile fails
Block-chain handling and storage:
- Fix for GetBlockValue() after block 13,440,000 (BIP42)
- Upgrade leveldb to 1.17
Protocol and network code:
- Per-peer block download tracking and stalled download detection
- Add new DNS seed from bitnodes.io
- Prevent socket leak in ThreadSocketHandler and correct some proxy related socket leaks
- Use pnode->nLastRecv as sync score (was the wrong way around)
Wallet:
- Make GetAvailableCredit run GetHash() only once per transaction (performance improvement)
- Lower paytxfee warning threshold from 0.25 BTC to 0.01 BTC
- Fix importwallet nTimeFirstKey (trigger necessary rescans)
- Log BerkeleyDB version at startup
- CWallet init fix
Build system:
- Add OSX build descriptors to gitian
- Fix explicit --disable-qt-dbus
- Don't require db_cxx.h when compiling with wallet disabled and GUI enabled
- Improve missing boost error reporting
- Upgrade miniupnpc version to 1.9
- gitian-linux: --enable-glibc-back-compat for binary compatibility with old distributions
- gitian: don't export any symbols from executable
- gitian: build against Qt 4.6
- devtools: add script to check symbols from Linux gitian executables
- Remove build-time no-IPv6 setting
GUI:
- Fix various coin control visual issues
- Show number of in/out connections in debug console
- Show weeks as well as years behind for long timespans behind
- Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected.
- Show also value for options overridden on command line in options dialog
- Fill in label from address book also for URIs
- Fixes feel when resizing the last column on tables (issue #2862)
- Fix ESC in disablewallet mode
- Add expert section to wallet tab in optionsdialog
- Do proper boost::path conversion (fixes unicode in datadir)
- Only override -datadir if different from the default (fixes -datadir in config file)
- Show rescan progress at start-up
- Show importwallet progress
- Get required locks upfront in polling functions (avoids hanging on locks)
- Catch Windows shutdown events while client is running
- Optionally add third party links to transaction context menu
- Check for !pixmap() before trying to export QR code (avoids crashes when no QR code could be generated)
- Fix "Start bitcoin on system login"
Miscellaneous:
- Replace non-threadsafe C functions (gmtime, strerror and setlocale)
- Add missing cs_main and wallet locks
- Avoid exception at startup when system locale not recognized
- Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input
- devtools: add a script to fetch and postprocess translations
Credits
--------
Thanks to everyone who contributed to this release:
- Addy Yeow
- Altoidnerd
- Andrea D'Amore
- Andreas Schildbach
- Bardi Harborow
- Brandon Dahler
- Bryan Bishop
- Chris Beams
- Christian von Roques
- Cory Fields
- Cozz Lovan
- daniel
- Daniel Newton
- David A. Harding
- ditto-b
- duanemoody
- Eric S. Bullington
- Fabian Raetz
- Gavin Andresen
- Gregory Maxwell
- gubatron
- Haakon Nilsen
- harry
- Hector Jusforgues
- Isidoro Ghezzi
- Jeff Garzik
- Johnathan Corgan
- jtimon
- Kamil Domanski
- langerhans
- Luke Dashjr
- Manuel Araoz
- Mark Friedenbach
- Matt Corallo
- Matthew Bogosian
- Meeh
- Michael Ford
- Michagogo
- Mikael Wikman
- Mike Hearn
- olalonde
- paveljanik
- peryaudo
- Philip Kaufmann
- philsong
- Pieter Wuille
- R E Broadley
- richierichrawr
- Rune K. Svendsen
- rxl
- shshshsh
- Simon de la Rouviere
- Stuart Cardall
- super3
- Telepatheic
- Thomas Zander
- Torstein Husebø
- Warren Togami
- Wladimir J. van der Laan
- Yoichi Hirai

101
doc/bitcoin-release-notes/release-notes-0.9.3.md

@ -1,101 +0,0 @@
Bitcoin Core version 0.9.3 is now available from:
https://bitcoin.org/bin/0.9.3/
This is a new minor version release, bringing only bug fixes and updated
translations. Upgrading to this release is recommended.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
Upgrading and downgrading
==========================
How to Upgrade
--------------
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
If you are upgrading from version 0.7.2 or earlier, the first time you run
0.9.3 your blockchain files will be re-indexed, which will take anywhere from
30 minutes to several hours, depending on the speed of your machine.
Downgrading warnings
--------------------
The 'chainstate' for this release is not always compatible with previous
releases, so if you run 0.9.x and then decide to switch back to a
0.8.x release you might get a blockchain validation error when starting the
old release (due to 'pruned outputs' being omitted from the index of
unspent transaction outputs).
Running the old release with the -reindex option will rebuild the chainstate
data structures and correct the problem.
Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan
the blockchain for missing spent coins, which will take a long time (tens
of minutes on a typical machine).
0.9.3 Release notes
=======================
RPC:
- Avoid a segfault on getblock if it can't read a block from disk
- Add paranoid return value checks in base58
Protocol and network code:
- Don't poll showmyip.com, it doesn't exist anymore
- Add a way to limit deserialized string lengths and use it
- Add a new checkpoint at block 295,000
- Increase IsStandard() scriptSig length
- Avoid querying DNS seeds, if we have open connections
- Remove a useless millisleep in socket handler
- Stricter memory limits on CNode
- Better orphan transaction handling
- Add `-maxorphantx=<n>` and `-maxorphanblocks=<n>` options for control over the maximum orphan transactions and blocks
Wallet:
- Check redeemScript size does not exceed 520 byte limit
- Ignore (and warn about) too-long redeemScripts while loading wallet
GUI:
- fix 'opens in testnet mode when presented with a BIP-72 link with no fallback'
- AvailableCoins: acquire cs_main mutex
- Fix unicode character display on MacOSX
Miscellaneous:
- key.cpp: fail with a friendlier message on missing ssl EC support
- Remove bignum dependency for scripts
- Upgrade OpenSSL to 1.0.1i (see https://www.openssl.org/news/secadv_20140806.txt - just to be sure, no critical issues for Bitcoin Core)
- Upgrade miniupnpc to 1.9.20140701
- Fix boost detection in build system on some platforms
Credits
--------
Thanks to everyone who contributed to this release:
- Andrew Poelstra
- Cory Fields
- Gavin Andresen
- Jeff Garzik
- Johnathan Corgan
- Julian Haight
- Michael Ford
- Pavel Vasin
- Peter Todd
- phantomcircuit
- Pieter Wuille
- Rose Toomey
- Ruben Dario Ponticelli
- shshshsh
- Trevin Hofmann
- Warren Togami
- Wladimir J. van der Laan
- Zak Wilcox
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

95
doc/bitcoin-release-notes/release-notes-0.9.4.md

@ -1,95 +0,0 @@
Bitcoin Core version 0.9.4 is now available from:
https://bitcoin.org/bin/0.9.4/
This is a new minor version release, bringing only bug fixes and updated
translations. Upgrading to this release is recommended.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
===============
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
OpenSSL Warning
================
OpenSSL 1.0.0p / 1.0.1k was recently released and is being pushed out by
various operating system maintainers. Review by Gregory Maxwell determined that
this update is incompatible with the Bitcoin system and could lead to consensus
forks.
Bitcoin Core released binaries from https://bitcoin.org are unaffected,
as are any built with the gitian deterministic build system.
However, if you are running either
- The Ubuntu PPA from https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin
- A third-party or self-compiled Bitcoin Core
upgrade to Bitcoin Core 0.9.4, which includes a workaround, **before** updating
OpenSSL.
The incompatibility is due to the OpenSSL update changing the
behavior of ECDSA validation to reject any signature which is
not encoded in a very rigid manner. This was a result of
OpenSSL's change for CVE-2014-8275 "Certificate fingerprints
can be modified".
We are specifically aware of potential hard-forks due to signature
encoding handling and had been hoping to close them via BIP62 in 0.10.
BIP62's purpose is to improve transaction malleability handling and
as a side effect rigidly defines the encoding for signatures, but the
overall scope of BIP62 has made it take longer than we'd like to
deploy.
0.9.4 changelog
================
Validation:
- `b8e81b7` consensus: guard against openssl's new strict DER checks
- `60c51f1` fail immediately on an empty signature
- `037bfef` Improve robustness of DER recoding code
Command-line options:
- `cd5164a` Make -proxy set all network types, avoiding a connect leak.
P2P:
- `bb424e4` Limit the number of new addressses to accumulate
RPC:
- `0a94661` Disable SSLv3 (in favor of TLS) for the RPC client and server.
Build system:
- `f047dfa` gitian: openssl-1.0.1i.tar.gz -> openssl-1.0.1k.tar.gz
- `5b9f78d` build: Fix OSX build when using Homebrew and qt5
- `ffab1dd` Keep symlinks when copying into .app bundle
- `613247f` osx: fix signing to make Gatekeeper happy (again)
Miscellaneous:
- `25b49b5` Refactor -alertnotify code
- `2743529` doc: Add instructions for consistent Mac OS X build names
Credits
--------
Thanks to who contributed to this release, at least:
- Cory Fields
- Gavin Andresen
- Gregory Maxwell
- Jeff Garzik
- Luke Dashjr
- Matt Corallo
- Pieter Wuille
- Saivann
- Sergio Demian Lerner
- Wladimir J. van der Laan
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

60
doc/bitcoin-release-notes/release-notes-0.9.5.md

@ -1,60 +0,0 @@
Bitcoin Core version 0.9.5 is now available from:
https://bitcoin.org/bin/0.9.5/
This is a new minor version release, with the goal of backporting BIP66. There
are also a few bug fixes and updated translations. Upgrading to this release is
recommended.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
How to Upgrade
===============
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Notable changes
================
Mining and relay policy enhancements
------------------------------------
Bitcoin Core's block templates are now for version 3 blocks only, and any mining
software relying on its `getblocktemplate` must be updated in parallel to use
libblkmaker either version 0.4.2 or any version from 0.5.1 onward.
If you are solo mining, this will affect you the moment you upgrade Bitcoin
Core, which must be done prior to BIP66 achieving its 951/1001 status.
If you are mining with the stratum mining protocol: this does not affect you.
If you are mining with the getblocktemplate protocol to a pool: this will affect
you at the pool operator's discretion, which must be no later than BIP66
achieving its 951/1001 status.
0.9.5 changelog
================
- `74f29c2` Check pindexBestForkBase for null
- `9cd1dd9` Fix priority calculation in CreateTransaction
- `6b4163b` Sanitize command strings before logging them.
- `3230b32` Raise version of created blocks, and enforce DERSIG in mempool
- `989d499` Backport of some of BIP66's tests
- `ab03660` Implement BIP 66 validation rules and switchover logic
- `8438074` build: fix dynamic boost check when --with-boost= is used
Credits
--------
Thanks to who contributed to this release, at least:
- 21E14
- Alex Morcos
- Cory Fields
- Gregory Maxwell
- Pieter Wuille
- Wladimir J. van der Laan
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

4
doc/release-notes.md

@ -1,6 +1,6 @@
# Notable changes
(note: this is a temporary file, to be added-to by anybody, and moved to
release-notes at release time)
Notable changes
===============

35
doc/release-notes/release-notes-0.11.2.z2.md

@ -1,35 +0,0 @@
Daira Hopwood (2):
Add Code of Conduct. fixes #802
Specify Sean as the second contact for conduct issues.
Jack Grigg (6):
Implement validator and basic solver for Equihash
Add test vectors for Equihash
Use Equihash for Proof-of-Work
Adjust genesis blocks to have valid solutions and hashes
Fix tests that depend on old block header format
Fix pow_tests to work with Equihash
Nathan Wilcox (4):
Log all failing rpc tests concisely.
Apply a patch from Sean to update wallet to use our new founders-reward aware balances.
Fix (most) rpc tests by updating balances. zcpour, zcpourdoublespend, and txn_doublespend currently fail.
Update a bunch of docs by adding a banner, delete a bunch of known bitrot docs; does not update release-process.md.
Sean Bowe (5):
Fix miner_tests to work with equihash
Add missing synchronization that causes race condition in test.
Implementation of Founders' Reward.
Fix remaining RPC tests.
Change pchMessageStart for new testnet.
Taylor Hornby (8):
Add automated performance measurement system.
Add equihash solving benchmarks
Add JoinSplit verification benchmarks
Add verify equihash benchmark
Don't leave massif.out lying around after the benchmarks
Use a separate datadir for the benchmarks
Make benchmark specified by command-line arguments
Benchmark a random equihash input.

69
doc/release-notes/release-notes-0.11.2.z3.md

@ -1,69 +0,0 @@
Daira Hopwood (1):
zkSNARK: Add constraint that the total value in a JoinSplit is a 64-bit integer.
Nathan Wilcox (4):
Add a depends description for googletest.
Add a zcash-gtest binary to our build with a single tautological test.
Add coverage support scoped to only the zcash-gtest run; invoke with make zcash-cov; make cov is a superset.
Add googlemock 1.7.0 dependency.
Sean Bowe (49):
Add serialization for primitive boost::optional<T>.
New implementation of incremental merkle tree
Integrate new incremental merkle tree implementation into consensus.
Test old tree along with new tree as much as possible.
Deprecate the old tree and remove old tree tests from the test suite.
Initialize curve/field parameters in case another test hasn't done so.
Improve well-formedness checks and add additional serialization/deserialization tests.
Add more well-formedness checks/tests to tree.
Make appending algorithm more succinct.
Move incremental merkle tree tests to zcash-gtest.
NoteEncryption implementation and integration, removal of ECIES and crypto++ dependencies.
Move NoteEncryption tests to gtest suite.
Add additional tests for ephemeral key behavior.
Clarify the usage of decryption API.
Check exception has specific string message.
Small nit fixes
Run `zcash-gtest` in `make check` and fix performance tests.
Perform zerocash tests as part of full-test-suite, in preparation for removal of zerocash waterfall.
Distinguish the failure cases of wfcheck in tree.
Change ciphertext length to match protocol spec, and refactor the use of constants.
Initialize libsodium in the gtest suite.
Introduce new `libzcash` Zcash protocol API and crypto constructions surrounding the zkSNARK circuit.
zkSNARK: Foundations of circuit design and verification logic.
zkSNARK: Add "zero" constant variable.
zkSNARK: Enforce spend-authority of input notes.
zkSNARK: Enforce disclosure of input note nullifiers
zkSNARK: Authenticate h_sig with a_sk
zkSNARK: Enforce that new output notes have unique `rho` to prevent faerie gold attack.
zkSNARK: Enforce disclosure of commitments to output notes.
zkSNARK: Ensure that values balance correctly.
zkSNARK: Witness commitments to input notes.
zkSNARK: Enforce merkle authentication path from nonzero-valued public inputs to root.
libzcash: Add tests for API
Remove scriptPubKey/scriptSig from CPourTx, and add randomSeed.
Transplant of libzcash.
Added public zkSNARK parameter generation utility.
Stop testing old tree against new tree.
Remove nearly all of libzerocash.
Update public zkSNARK parameters for new circuit.
Fix performance measurements due to modified transaction structure.
Remove the zerocash tests from the full test suite.
Protect-style joinsplits should anchor to the latest root for now, until #604 is resolved.
Use inheritance for PRF gadgets.
Rename ZCASH_ constants to ZC_.
Rename hmac -> mac in circuit.
`Note` values should be little-endian byte order.
Update zkSNARK proving/verifying keys.
Add h_sig test vectors.
Change testnet network magics.
Taylor Hornby (7):
Add check that vpubs are not both nonzero and test it.
Fix sighash tests
Add empty merkle/noteencryption tests so Sean can rebase.
Fix RPC tests
Rename bitcoin.conf and bitcoind.pid to zcash.conf and zcashd.pid in qa/ and src/
Trivial change: Capitalize the Z in Zerocash
Remove the Merkle tree hash function's fixed point.

70
doc/release-notes/release-notes-0.11.2.z4.md

@ -1,70 +0,0 @@
Alex (1):
add sha256sum support for Mac OS X
Alfie John (1):
Rename libzerocash to libzcash
Jack Grigg (21):
Implement mining slow start with a linear ramp
Update subsidy tests to account for mining slow start
Update miner tests to account for mining slow start
Disable mining slow start in regtest mode
Fix failing miner test
Add Zcash revision to version strings
Bitcoin -> Zcash in version and help text
Add Zcash Developers to CLI copyright notice
Minor error message tweak
Refactor StepRow to make optimisation easier
Cleanups
Implement index-truncation Equihash optimisation
Store truncated indices in the same char* as the hash (H/T tromp for the idea!)
Use template parameters to statically initialise Equihash
Merge *StepRow XOR and trimming operations
Use comparator object for sorting StepRows
Store full indices in the same char* as the hash
Use fixed-width array for storing hash and indices
Use optimised Equihash solver for miner and benchmarks
Fix comment
Fix nits after review
Nathan Wilcox (1):
Fix a test name bug so that ``make cov-zcash`` correctly runs the ``zcash-gtest`` binary. Fixes #946.
Sean Bowe (14):
Refactor PRF_gadget to hand responsibility to PRF_addr_a_pk_gadget for creating the '0' argument to the PRF.
Enforce first four bits are zero for all spending keys and phi.
Enable binary serializations of proofs and r1cs keys, and make the `CPourTx` proof field fixed-size.
Reorder fields of CPourTx to reflect the spec.
Update proving key and tests that depend on transaction structure changes
Enable MULTICORE proving behavior with omp.
Pass `-fopenmp` at compile-time to enable MULTICORE.
Switch to Ed25519 for cryptographic binding of joinsplits to transactions.
Enforce that the `S` value of the ed25519 signature is smaller than the group order to prevent malleability attacks.
Use joinsplit_sig_t in more places.
Wrap lines in *CTransaction constructors.
Change error for invalid joinsplit signature for consistency.
Add additional assertions.
Update performance measurement transaction.
Simon (2):
Remove Bitcoin testnet seeds.
Remove Bitcoin mainnet seeds.
Taylor Hornby (16):
Fix build warnings in sighash tests.
Fix FORTIFY_SOURCE build errors.
Use HARDENED_CPPFLAGS in the Makefile consistently.
Use left shift instead of floating-point pow() in equihash.
Ignore deprecated declaration warnings.
Remove unused code in libzerocash util.cpp
Turn on -Werror for the Zcash build.
Patch libsnark to build with my compiler. Upstream PR #35.
Hide new Boost warnings on GCC 6.
Add ability to run things under valgrind.
Pass -DPURIFY to OpenSSL so it doesn't clutter valgrind output.
Enable -v for valgrind so we can see counts for each error.
Sign JoinSplit transactions
We don't want to benchmark signature creation / verification.
Implement signature verification in CheckTransaction
Fix tests for JoinSplit signatures

78
doc/release-notes/release-notes-0.11.2.z5.md

@ -1,78 +0,0 @@
Ethan Heilman (1):
Increase test coverage for addrman and addrinfo
EthanHeilman (1):
Creates unittests for addrman, makes addrman testable. Adds several unittests for addrman to verify it works as expected. Makes small modifications to addrman to allow deterministic and targeted tests.
Jack Grigg (24):
Use depth-first scan for eliminating partial solutions instead of breadth-first
Add a 256-bit reserved field to the block header
Set -relaypriority default to false
Regenerate genesis blocks
Update tests to account for reserved field
Update RPC tests to account for reserved field
Decrease block interval to 2.5 minutes
Update tests to account for decreased block interval
Update RPC tests to account for decreased block interval
Updated a hard-coded number of blocks to account for decreased block interval
Fix failing tests
Increase Equihash parameters to n = 96, k = 3 (about 430 MiB)
Update tests to account for new Equihash parameters
Speed up FullStepRow index comparison by leveraging big-endian byte layout
Use little-endian for hash personalisation and hashing indices
Use htole32 and htobe32 for endian conversions
Regenerate genesis blocks
Update miner tests for platform-independent Equihash
Tweaks after review
Implement new difficulty algorithm (#931)
Update tests for new difficulty algorithm
Improve comments per review
Handle full Zcash version string in AC_INIT
Fix bug in network hashrate lookup window configuration
Patrick Strateman (1):
CAddrMan::Deserialize handle corrupt serializations better.
Philip Kaufmann (1):
remove using namespace std from addrman.cpp
Sean Bowe (28):
Move new coins tests to within coins_tests test suite.
Ensure merkle tree fixed point removal is tested against inside coins_tests.
Allow pours to be anchored to intermediate treestates of a transaction.
Test behavior of chained pour consensus rules.
Remove redundant constraints.
Change merkle tree depth to 29.
Update the zkSNARK parameters.
Add test to ensure parent treestates only can appear earlier in the transaction or in the global state, not later.
Minor changes to coins_tests.
Rename `CheckInputs` to `ContextualCheckInputs` since it relies on a global variable and assumes calling conditions.
Refactor contextual and noncontextual input checks.
Prevent coinbases from being spent to transparent outputs.
Disable coinbase-must-be-protected rule on regtest.
Ensure mempool integrity checks don't trip on chained joinsplits.
Enforce BIP16 and BIP30 unconditionally to all blocks.
Enforce remaining softfork activation rules unconditionally.
Ensure NonContextualCheckInputs runs before routines in ContextualCheckInputs.
Rename to `fCoinbaseMustBeProtected`.
Disable enforced coinbase protection in miner_tests.
Do not encode leading bytes in `PaymentAddress` serialization; this is a task for a higher-level API.
Use base58check to encode Zcash payment addresses, such that the first two bytes are "zc".
Add tests for `CZCPaymentAddress`.
Fix test against merkle tree root.
Added encoding for Zcash spending keys.
Guarantee first two bytes of spending key are SK
Make testnet addresses always start with 'tn'.
Add test to ensure spending keys always encode with 'SK' at beginning.
Testnet spending keys should start with 'TK'.
Simon (5):
Fix issue #717 where if addrman is starved of addresses (e.g. on testnet) the Select_() function will loop endlessly trying to find an address, and therefore eat up 100% cpu time on the 'opencon' thread.
Declare constants for the maximum number of retries, when to sleep between retries and how long for.
Implement issue #997 to reduce time for test_bitcoin due to sleeps in addrman. Related to issue #717.
Update to DistinctIndices function (for issue #857). Replaces pull request #974.
Update variable name.
Taylor Hornby (1):
Enable -alertnotify for hard fork detection. Test it.

18
doc/release-notes/release-notes-0.11.2.z6.md

@ -1,18 +0,0 @@
Jack Grigg (4):
Equihash: Only compare the first n/(k+1) bits when sorting.
Randomise the nonce in the block header.
Clear mempool before using it for benchmark test, fix parameter name.
Fix memory leak in large tx benchmark.
Sean Bowe (5):
Increase block size to 2MB and update performance test.
Make sigop limit `20000` just as in Bitcoin, ignoring our change to the blocksize limit.
Remove the mainnet checkpoints.
Fix performance test for block verification.
Make `validatelargetx` test more accurate.
Taylor Hornby (1):
Add example mock test of CheckTransaction.
aniemerg (1):
Suppress Libsnark Debugging Info.

90
doc/release-notes/release-notes-0.11.2.z7.md

@ -1,90 +0,0 @@
Daira Hopwood (2):
.clang-format: change standard to C++11
Bucket -> note.
Jack Grigg (4):
Collect all permutations of final solutions
Add test case that requires the fix
Reinstate previous testnet adjustment behaviour
Hardfork to the previous testnet difficulty adjustment behaviour at block 43400
Nathan Wilcox (1):
A script to remove "unofficial" tags from a remote, such as github.
Sean Bowe (36):
Flush to disk more consistently by accounting memory usage of serials/anchors in cache.
Always check valid joinsplits during performance tests, and avoid recomputing them every time we change the circuit.
Remove the rest of libzerocash.
Update tests with cache usage computations
Reorder initialization routines to ensure verifying key log messages appear in debug.log.
Remove zerocash tests from full-test-suite.
Rename samplepour to samplejoinsplit
Update libsnark to our fork.
Initialize libsodium in this routine, which is now necessary because libsnark uses its PRNG.
Pass our constraint system to libsnark, so that it doesn't need to (de)serialize it in the proving key.
Rename CPourTx to JSDescription.
Rename vpour to vjoinsplit.
Rename JSDescription's `serials` to `nullifiers`.
Test fixes.
Rename GetPourValueIn to GetJoinSplitValueIn
Rename HavePourRequirements to HaveJoinSplitRequirements.
Rename GetSerial to GetNullifier.
Renaming SetSerial to SetNullifier.
Rename CSerialsMap to CNullifiersMap.
Rename mapSerials to mapNullifiers.
Rename some usage of 'pour'.
Rename more usage of `serial`.
Rename cacheSerials to cacheNullifiers and fix tests.
Rename CSerialsCacheEntry.
Change encryptedbucket1 to encryptednote1.
Rename pour RPC tests
Fix tests
Remove more usage of `serial`.
Fixes for indentation and local variable names.
Change `serial` to `nf` in txdb.
Rename `pour` in RPC tests.
Remove the constraint system from the alpha proving key.
Introduce `zcsamplejoinsplit` for creating a raw joinsplit description, and use it to construct the joinsplit for the performance tests that verify joinsplits.
Bump the (minimum) protocol version to avoid invoking legacy behavior from upstream.
Remove more from libsnark, and fix potential remote-DoS.
Add test for non-intuitive merkle tree gadget witnessing behavior.
bitcartel (15):
Disable USE_ASM when building libsnark (issue 932).
Add getblocksubsidy RPC command to return the block reward for a given block, taking into account the mining slow start.
Replace index with height in help message for getblocksubsidy RPC call.
Narrow scope of lock.
Add founders reward to output.
Use new public/private key pairs for alert system.
Add sendalert.cpp to repo.
Fixes to integrate sendalert.cpp. Add sendalert.cpp to build process. Add alertkeys.h as a placeholder for private keys.
Disable QT alert message.
Update comments.
Update alert ID start value and URL in comment.
Update alert protocol version comment.
Update URL for zcash alert IDs.
Remove QT alert message box.
New alert test data generated for new alert key pair. Added test fixture to create new test data. Added instructions for developer.
Update tor.md for Zcash
Taylor Hornby (17):
WIP: Add mock test coverage of CheckTransaction
Split JoinSplit proof verification out of CheckTransaction.
More testing of CheckTransaction
Test non-canonical ed25519 signature check
Rename zerocash to zcash in some places.
Remove references to libzerocash in .gitignore
Rename qa/zerocash to qa/zcash in Makefile.am
Rename zerocash_packages to zcash_packages in packages.mk
Add security warnings doc with warning about side channels.
Add another security warning
Add the results of #784 to security warnings.
Fix bad_txns_oversize test for increased block size.
Note that the actual secret spending key may be leaked.
Mention physical access / close proximity
Remove in-band error signalling from SignatureHash, fixing the SIGHASH_SINGLE bug.
Fix the tests that the SIGHASH_SINGLE bugfix breaks.
Remove insecurely-downloaded dependencies that we don't currently use.
aniemerg (1):
Update GetDifficulty() to use consensus.powLimit from consensus parameters. Fixes #1032.

61
doc/release-notes/release-notes-0.11.2.z8.md

@ -1,61 +0,0 @@
Daira Hopwood (1):
README.md: simplify the title, drop "Core"
Jack Grigg (23):
Make Equihash solvers cancellable
Add tests that exercise the cancellation code branches
Fix segfault by indirectly monitoring chainActive.Tip(), locking on mutex
Move initialisations to simplify cancelled checks
Use std::shared_ptr to deallocate partialSolns automatically
Equihash: Pass each obtained solution to a callback for immediate checking
Remove hardfork from special testnet difficulty rules
Fix bug in 'generate' RPC method that caused it to fail with high probability
Add thread parameter to solveequihash benchmark
Eliminate some of the duplicates caused by truncating indices
Use fixed-size array in IsProbablyDuplicate to avoid stack protector warning
Eliminate probably duplicates in final round
Simplify IsProbablyDuplicate()
Add missing assert
Simplify optional parameters
Fix previous commit
Remove the assumption that n/(k+1) is a multiple of 8.
Add Equihash support for n = 200, k = 9
Add test showing bug in IsProbablyDuplicate()
Fix bug in IsProbablyDuplicate()
Change Equihash parameters to n = 200, k = 9 (about 563-700 MiB)
Update tests to account for new Equihash parameters
Ignore duplicate entries after partial recreation
Simon (21):
Inform user that zcraw... rpc calls are being deprecated.
Add GetTxid() which returns a non-malleable txid.
Update genesis blocks.
Update precomputed equihash solutions used in test.
Update block and tx data used in bloom filter tests.
Updated test data for script_tests by uncommenting UPDATE_JSON_TESTS flag.
Rename GetHash() method to GetSerializeHash().
Replace calls to GetHash() with GetTxid() for transaction objects.
Set nLockTime in CreateNewBlock() so coinbase txs do not have the same txid. Update test data in miner_tests.
Refactor GetTxid() into UpdateTxid() to match coding style of hash member variable.
Revert "Set nLockTime in CreateNewBlock() so coinbase txs do not have the same txid."
Fix issue where a coinbase tx should have it's sigscript hashed to avoid duplicate txids, as discussed in BIP34 and BIP30.
Update genesis block hashes and test data.
Make txid const.
Update deprecation message for zcraw api.
Fix comment.
Update comment.
Extend try catch block around calls to libsnark, per discussion in #1126.
Remove GetSerializeHash() method.
Use -O1 opimitization flag when building libzcash. Continuation of #1064 and related to #1168.
Add test for non-malleable txids. To run just this test: ./zcash-gtest --gtest_filter="txid_tests*"
Taylor Hornby (8):
Make the --enable-hardening flag explicit.
Enable -O1 for better FORTIFY_SOURCE protections.
Add checksec.sh from http://www.trapkit.de/tools/checksec.html
Add tests for security hardening features
Pull in upstream's make check-security, based on upstream PR #6854 and #7424.
Make security options in configure.ac fail if unavailable.
Put hardened stuff in libzcash CPPFLAGS.
Add more commands to run unit tests under valgrind.

55
doc/release-notes/release-notes-0.11.2.z9.md

@ -1,55 +0,0 @@
Sean Bowe (6):
Change memo field size and relocate `ciphertexts` field of JoinSplit description.
Implement zkSNARK compression.
Perform curve parameter initialization at start of gtest suite.
Update libsnark dependency.
Enable MONTGOMERY_OUTPUT everywhere.
Update proving/verifying keys.
Jack Grigg (11):
Add support for spending keys to the basic key store.
Merge AddSpendingKeyPaymentAddress into AddSpendingKey to simplify API.
Add methods for byte array expansion and compression.
Update Equihash hash generation to match the Zcash spec.
Extend byte array expansion and compression methods with optional padding.
Store the Equihash solution in minimal representation in the block header.
Enable branch coverage in coverage reports.
Add gtest coverage and intermediates to files deleted by "make clean".
Remove non-libsnark dependencies and test harness code from coverage reports.
Add separate lock for SpendingKey key store operations.
Test conversion between solution indices and minimal representation.
Daira Hopwood (6):
Move bigint arithmetic implementations to libsnark.
Add mostly-static checks on consistency of Equihash parameters, MAX_HEADERS_RESULTS, and MAX_PROTOCOL_MESSAGE_LENGTH.
Change some asserts in equihash.cpp to be static.
Decrease MAX_HEADERS_RESULTS to 160. fixes #1289
Increment version numbers for z9 release.
Add these release notes for z9.
Taylor Hornby (5):
Disable hardening when building for coverage reports.
Upgrade libsodium for AVX2-detection bugfix.
Fix inconsistent optimization flags; single source of truth.
Add -fwrapv -fno-strict-aliasing; fix libzcash flags.
Use libsodium's s < L check, instead checking that libsodium checks that.
Simon Liu (3):
Fixes #1193 so that during verification benchmarking it does not unncessarily create thousands of CTransaction objects.
Closes #701 by adding documentation about the Payment RPC interface.
Add note about zkey and encrypted wallets.
Gaurav Rana (1):
Update zcash-cli stop message.
Tom Ritter (1):
Clarify comment about nonce space for Note Encryption.
Robert C. Seacord (1):
Memory safety and correctness fixes found in NCC audit.
Patrick Strateman (1):
Pull in some DoS mitigations from upstream. (#1258)
Wladimir J. van der Laan (1):
net: correctly initialize nMinPingUsecTime.

58
doc/release-notes/release-notes-0.3.0.md

@ -1,58 +0,0 @@
Komodo specific changelog:
- add CC functionality and bugfixes
- set sapling activation
- change z-addr prefix byte
- blocksize increased from 2MB to 4 MB
- transaction size increased from 100KB to 200KB
Sapling related changelog:
- Decoupled Spend Authority
- Improved Performance for Shielded Transactions (using sapling instead of sprout)
- transaction format changed
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 SerializedSize -> SerializedSproutSize 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

159
doc/release-notes/release-notes-1.0.0-beta1.md

@ -1,159 +0,0 @@
Daira Hopwood (1):
Update steps after D
Jack Grigg (43):
Undo debugging change from 5be6abbf84c46e8fc4c8ef9be987a44de22d0d05
Output Equihash solution in RPC results as a hex string
Add optional bool to disable computation of proof in JSDescription constructor
Add wallet method for finding spendable notes in a CTransaction
Store mapping between notes and PaymentAddresses in CWalletTx
Keep track of spent notes, and detect and report conflicts
Create mapping from nullifiers to received notes
Add caching of incremental witnesses for spendable notes
Update cached incremental witnesses when the active block chain tip changes
Test solution output of blockToJSON()
Pass ZCIncrementalMerkleTree to wallet to prevent race conditions
Remove GetNoteDecryptors(), lock inside FindMyNotes() instead
Replace vAnchorCache with a cache size counter
mapNullifiers -> mapNullifiersToNotes for clarity
Set witness cache size equal to coinbase maturity duration
Add transactions to wallet if we spend notes in them
Add test for GetNoteDecryptor()
Keep any existing cached witnesses when updating transactions
Changes after review
Add test showing that the witness cache isn't being serialised
Fix the failing test!
Increase coverage of GetNoteDecryptor()
Add coverage of the assertion inside GetNoteWitnesses()
Separate concepts of block difficulty and network difficulty in RPC
Add test comparing GetDifficulty() with GetNetworkDifficulty()
Remove mainnet DNS seeds, set checkpoint to genesis
Fix failing test
Adjust from average difficulty instead of previous difficulty
Remove testnet-only difficulty rules
Add comments explaining changed semantics of pow_tests
Expand bounds on difficulty adjustment
Remove accidental double-semicolon (harmless but odd)
Add test of difficulty averaging
Simplify difficulty averaging code
Restrict powLimit due to difficulty averaging
Regenerate genesis blocks for new powLimits
Update tests for new genesis blocks
Adjust test to avoid spurious failures
Remove unnecessary method
Adjust test to account for integer division precision loss
Refactor wallet note code for testing
Add tests for refactored wallet code
Remove .z# suffix from version
Lars-Magnus Skog (1):
changed module name from "bitcoin" to "Zcash" in FormatException()
Sean Bowe (7):
Deallocate the public parameters during Shutdown.
Update libsnark again.
Fix CheckTransaction bugs.
Remove TODO 808.
Fix transaction test in test_bitcoin.
Change version to 1.0.0. This is just a beta.
Update pchMessageStart and add testnet DNS boostrapper.
Simon (91):
Implemented RPC calls z_importkey, z_exportkey, z_getnewaddress. Modified RPC calls dumpwallet and importwallet to include spending keys.
Add z_importwallet and z_exportwallet to handle keys for both taddr and zaddr. Restore behaviour of dumpwallet and importwallet to only handle taddr.
Implemented z_listaddresses to return all the zaddr in the wallet.
Add gtest to cover new methods in: CWallet - GenerateNewZKey() - AddZKey() - LoadZKey() - LoadZKeyMetadata() CWalletDB - WriteZKey()
Don't mark wallet as dirty if key already exists. Fix incorrect method name used in error message.
Added wallet rpc tests to cover: z_importwallet, z_exportwallet z_importkey, z_exportkey z_listaddresses
Add test coverage for RPC call z_getnewaddress.
Fix comment.
Remove one line of dead code.
Add "zkey" to list of key types (used by the wallet to decide whether or not it can be recovered if it detects bad records).
Fix comments.
Rename methods to avoid using prefix of _ underscore which is reserved. Added logging of explicit exception rather than a catch all. Removed redundant spending key check. Updated user facing help message.
Fixes #1122 where json_spirit could stack overflow because there was no maximum limit set on the number of nested compound elements.
Throw a domain error as json_spirit is a third-party library.
Closes #1315. RPC getblocksubsidy height parameter is now optional and a test has been added to verify parameter input and results.
Remove #1144 from transaction.h.
Remove #1144 from transaction.cpp by reverting back to commit 942bc46.
Remove #1144 from bloom_tests by reverting to commit 5012190.
Remove #1144 from input data of script_tests.
Update txid gtest to verify #1144 has been removed: GetTxid() and GetHash() return the same result.
Refactor: replace calls to GetTxid() with GetHash()
Remove GetTxid() from CTransaction and update test_txid
Replace GetTxid() with GetHash() after rebase on latest.
Add async RPC queue and operation classes. Add z_getoperationstatus RPC command. Add z_sendmany RPC command (dummy implementation, does not send actual coins).
Add prefix to async operation id so it is easier to manage on cli.
Add config option 'rpcasyncthreads' to specify number of async rpc workers. Default is 1.
Add public field 'memo' to JSOutput to enable creation of notes with custom memos.
Implement z_sendmany RPC call.
Update find_unspent_notes() as mapNoteAddrs_t has been replaced by mapNoteData_t.
z_sendmany from a taddr now routes change to a new address instead of back to the sender's taddr,
Successful result of z_sendmany returns txid so it doesn't need to return raw hex.
Add public method to get state as a human readable string from an AsyncRPCOperation.
Add public method to AsycnRPCQueue to retrieve all the known operation ids.
Implement RPC call z_listoperationids and update z_getoperationstatus to take a list parameter.
Refactoring and small improvements to async rpc operations.
Closes #1293 by adding z_getoperationresult and making z_getoperationstatus idempotent.
Add chaining of JoinSplits within a transaction.
Disable option to allow multiple async rpc workers.
Coinbase utxos can only be spent when sending to a single zaddr. Change from the transaction will be sent to the same zaddr.
Fix bug where call to sign and send a transaction was in wrong scope.
Added option to close a queue and wait for queued up operations to finish, rather than just closing a queue and immediately cancelling all operations.
Fix bug where wallet was not persisting witnesses to disk. Author: str4d
Refactor to use wallet note tracking from commit a72379
Clear the operation queue when closing it.
Add test for AsyncRPCQueue and AsyncRPCOperation.
Add shared queue to AsynRPCQueue.
Update RPCServer to use AsyncRPCQueue's shared queue.
Remove redundant check when getting spending key for a payment address.
Add tests for async queue and rpc commands: z_getoperationstatus, z_getoperationresult, z_listoperationids, z_sendmany
Remove redundant call.
Add logging under the category "asyncrpc".
Add extra checking of memo data in hexadecimal string format.
Add friend class for testing private members of AsyncRPCOperation_sendmany.
Add z_getbalance and z_gettotalbalance RPC calls to close #1201.
Fix typo in error message
Disable proof generation when testmode is enabled in async SendMany operation.
Reduce use of global pzcashParams with private member variable
Revert "Reduce use of global pzcashParams with private member variable"
Replace zcashParams_ with global.
Add tests to try and improve coverage of perform_joinsplit.
Add GetUnspentNotes to wallet.
Add test for GetUnspentNotes() in wallet.
Refactor async sendmany and getbalance calls to use GetUnspentNotes().
Add more logging.
Disable z_sendmany in safe mode
Rename GetUnspentNotes to GetFilteredNotes
Add z_listreceivedbyaddress RPC call
Add 'DEPRECATED' to help message of zcraw* commands
Update formatting and documentation.
Move lock guard to start of addOperation to protect isClosed() and isFinishing()
Fix formatting
Add lock guard to getNumberOfWorkers()
Replace unique_lock with lock_guard, where appropriate, for consistency
Add extra RPC parameter checks for minconf<0 and zaddr not belonging to wallet.
Add test for calling RPC z_getbalance, z_gettotalbalance, z_listreceivedbyaddress with invalid parameters.
Fix formatting
Update log statement to include fee.
Fix incorrect default value for argument of GetFilteredNotes.
Formatting and updated test per review.
Add lock for member variables. Clean up and clarify that id_ and creation_time_ are never to be mutated anywhere. Fix incomplete copy/assignment constructors.
Remove unused varible.
Add ticket number to issues raised in comment.
Add assert for two mutually exclusive member variables.
Improve error reporting when attempting to spend coinbase utxos.
Use zcash constants
Fix formatting
Add assert
Update comment with ticket issue number
Remove line of commented out code we don't need
Improve check that user supplied memo field is too long.
Replace GetTxid() with GetHash()
Update payment-api.md
Update security-warnings.md about REST interface
Update payment API documentation for beta 1
Taylor Hornby (2):
Add -Wformat -Wformat-security
Use -Wformat in the test for -Wformat-security

119
doc/release-notes/release-notes-1.0.0-beta2.md

@ -1,119 +0,0 @@
Alfie John (2):
Typo in params README
Updating wording to match Beta Guide
Bryan Stitt (1):
Link to beta guide
Daira Hopwood (9):
Benchmark 50 iterations of solveequihash
Remove FindAndDelete. refs #1386
Update my email address in the Code of Conduct.
Repair FormatSubVersion tests. refs #1138
WIP: update address prefixes. refs #812
Reencode keys in JSON test data. refs #812
CBitcoinAddress should use nVersionBytes == 2.
Repair bitcoin-util-test.
Repair rpc-tests/signrawtransactions.py.
Gregory Maxwell (1):
Limit setAskFor and retire requested entries only when a getdata returns.
Jack Grigg (43):
Add support for encrypting spending keys
Check we haven't trashed the first key entry with the second
Move serialized Zcash address length constants into zcash/Address.hpp
Measure multithreaded solveequihash time per-thread
Add a make command for checking expected failures
Enable high-priority alerts to put the RPC into safe mode
Fix test
Add wallet method to clear the note witness cache
Clear note witness caches on reindex
Write note witness cache atomically to disk to avoid corruption
Test that invalid keys fail to unlock the keystore
Implement CSecureDataStream for streaming CKeyingMaterial
Cache note decryptors in encrypted keystore
Use correct lock for spending keys
Upgrade Boost to 1.62.0
Upgrade libgmp to 6.1.1
Upgrade OpenSSL to 1.1.0b
Upgrade miniupnpc to 2.0
Upgrade ccache to 3.3.1
Release process: check dependencies for updates
Fix auto_ptr deprecation warning in Boost
Replace auto_ptr with unique_ptr
Re-enable disabled compiler warnings
Disable nearly everything in OpenSSL
Add libsnark to pre-release dependency checks
Assert that new OpenSSL allocators succeed
Remove no-autoalginit and no-autoerrinit OpenSSL flags
Use asserts to check allocation errors in CECKey::Recover
Simplify ClearNoteWitnessCache()
Add tests for alerts enabling RPC safe mode
Ensure correctness if asserts are compiled out
Disable OP_CODESEPARATOR
Remove OP_CODESEPARATOR from tests
Downgrade bdb to 5.3.28
Use CLIENT_VERSION_BUILD to represent -beta and -rc in client version
Update release process with version schema
Formatting fix
Mark previously-valid test data as invalid
Re-encode hard-coded addresses in tests
Re-encode Founders' Reward keys
Fix secp256k1 test compilation
Fix zkey test
Update address in Founders' Reward gtest
Jay Graber (4):
Link to z.cash on security-warnings.md
Add section abt confs and reorgs to security-warnings.md
Update wording
Final edits
Kevin Gallagher (5):
Lock to prevent parallel execution of fetch-params.sh
Updates dns.testnet.z.cash -> dnsseed.testnet.z.cash
Verify TLS certificates w/ wget in fetch-params.sh
Inserts some notes related to testnet deployment
Adds note about updating guide during testnet deployment
Pieter Wuille (1):
Fix and improve relay from whitelisted peers
Robert C. Seacord (1):
Changes to upgrade bdb to 6.2.23
Sean Bowe (1):
Update to `beta2` public parameters, remove `regtest`/`testnet3` parameters subdirectories.
Simon (20):
Replace %i format specifier with more commonly used %d.
Fix GetFilteredNotes to use int for minDepth like upstream and avoid casting problems. Don't use FindMyNotes as mapNoteData has already been set on wallet tx.
Update test to filter and find notes.
Add support for spending keys to the encrypted wallet.
Update to use new API in CCryptoKeyStore and store a viewing key in walletdb.
Fix comment and formatting per review
Add founders reward to ChainParams. Fix bug where subsidy slow shift was ignored.
Founders reward: changed index computation, added new test and some refactoring.
Founders reward: Refactor test and formatting per review.
Refactor to add test to verify number of rewards each mainnet address will receive
Refactor and fix per review
Update comment per review
Update founders reward test to output path of temporary wallet.dat file which contains keys which can be used for testing founders reward addresses.
Update testnet founders reward addresses
Add mainnet 2-of-3 multisig addresses for testing.
Add field fMinerTestModeForFoundersRewardScript to chainparams
Update mainnet addresses used for testing to have the correct number
Fixes #1345 so that UTXO debit and credits are computed correctly for a transaction.
Closes #1371 by updating signed message
Modify message string so we don't need to backport commits which implement FormatStateMessage and GetDebugMessage and involve changes to consensus/validation.h
Wladimir J. van der Laan (1):
build: remove libressl check
fanquake (1):
[depends] OpenSSL 1.0.1k - update config_opts
kazcw (1):
prevent peer flooding request queue for an inv

121
doc/release-notes/release-notes-1.0.0-rc1.md

@ -1,121 +0,0 @@
4ZEC (1):
Correct line swap
Cory Fields (7):
release: add _IO_stdin_used to ignored exports
release: add check-symbols and check-security make targets
release: always link librt for glibc back-compat builds
release: add security/symbol checks to gitian
depends: allow for CONFIG_SITE to be used rather than stealing prefix
gitian: use CONFIG_SITE rather than hijacking the prefix
gitian: create debug packages for linux/windows
Daira Hopwood (6):
Fix RPC tests to not rely on accounts.
Cosmetics in RPC tests.
Fix blank lines in DEBIAN/copyright license texts.
Move the increment of nWitnessCacheSize to make the later assertions correct.
Add another assertion to narrow down where the bug occurs.
Add another assertion about the witness cache.
Jack Grigg (25):
Update release process to sign release tags
WriteWitnessCache: Catch errors and abort transaction
Throw an RPC error for all accounts except the default
Update tests for account deprecation
Deprecated -> Unsupported in RPC error
Correct docstring
Add unit tests for WriteWitnessCache
Document CWalletTx::FindMyNotes
Refactor test to clarify expectations
Add unit test that fails when calling FindMyNotes on a locked wallet
Add RPC test showing correct handling of JS txns from blockchain
Break the RPC test by encrypting the mirroring wallet
Delay caching of nullifiers when wallet is locked
Update comments
Only ignore runtime errors caused by failed note decryption
Remaining changes from bitcoin/bitcoin#6854
[gitian] Don't call "make check-symbols"
Fix Makefiles so "make dist" will run
Render full version correctly in configure.ac
Update libsnark to include determinism fix
Address review comments
Add more asserts to track down the bug
Increment witnesses for new transactions on rescan
Add clear error message for upgrading users
Set CBlockIndex.hashAnchor correctly in ConnectBlock
Jay Graber (17):
Document wallet reindexing for z_importkey description in payment-api.md
Rm beta 1 release note about encrypted wallets
Note that Coinbase maturity interval does not protect JoinSplits
Refer to Zcash wiki in INSTALL
Rm bitcoin logo
Rm build-unix.md, to keep single copy of build instructions for Zcash on github wiki
Rm Bitcoin-specific documentation
Add note that document is not updated for Zcash to translation policy
Rm doc for disabled REST interface
Change alpha to beta testnet, add zcash hidden service
Improve documentation on connecting to zcash hidden server
Improve documentation on connecting to zcash hidden server
Update tor.md
Distinguish between connecting to 1 vs multiple tor nodes
Revert "Rm Bitcoin-specific documentation"
Mv btc release notes to doc/bitcoin-release-notes
Reword joinsplit anchor paragraph
Kevin Gallagher (24):
Set wget retry options for fetching parameters
Increases timeout to 30s, wait before retry to 3s
Initial packaging for Debian
Moves zcash-fetch-params to /usr/bin
Adds newline between source and package definition
Adds copyright file back to Debian package
Updates Linux gitian descriptor file for Zcash
Updates trusty -> jessie in Gitian Linux descriptor
Adds distro: debian to gitian-linux.yml
Updates Gitian descriptor for Zcash
Removes Windows and OSX packaging from EXTRA_DIST
Moves V=1 and NO_QT=1 to MAKEOPTS
Include contrib/devtools/split-debug.sh from upstream
Adds faketime to Gitian build dependencies
Inlude crypto/equihash.tcc in list of sources for dist
Adds zcash/Zcash.h to LIBZCASH sources
Adds zcash/Proof.hpp to LIBZCASH_H
Add alertkeys.h to libbitcoin_server_a_SOURCES
Adds files in src/zcash/circuit to libzcash_a_SOURCES
Adds zcbenchmarks.h to libbitcoin_wallet_a_SOURCES
Adds json_test_vectors.h to zcash_gtest_SOURCES
Adds additional licenses to Debian copyright file
Updates Zcash Core developers -> Zcash developers
Adds . to blank lines in Google license
MarcoFalke (3):
[gitian] Set reference date to something more recent
[gitian] Default reference_datetime to commit author date
[gitian] hardcode datetime for depends
Sean Bowe (1):
Make 100KB transaction size limit a consensus rule, rather than a standard rule.
Simon (11):
Add vjoinsplit to JSON output of RPC call gettransaction
Fixes #1478 by ensuring wallet tests have the -datadir environment set appropriately.
Fixes #1491 by updating help message for rpc call z_importkey
Fix incorrect check of number of parameters for z_getnewaddress.
Add tests to verify that all z_* rpc calls return an error if there are too many input parameters.
Rename client identifier from Satoshi to MagicBean (closes #1481)
Use -debug=zrpc for z_* rpc calls (#1504)
Document CWallet::GetFilteredNotes and fix return type which should be void.
Fix test so that the encrypted wallet is output to the test_bitcoin -datadir folder.
Reorder gtests in zcash-gtest.
Return improved error message when trying to spend Coinbase coins (#1373).
Wladimir J. van der Laan (6):
devtools: add libraries for bitcoin-qt to symbol check
gitian: use trusty for building
gitian: make windows build deterministic
gitian: Need `ca-certificates` and `python` for LXC builds
build: Remove unnecessary executables from gitian release
gitian: Add --disable-bench to config flags for windows

106
doc/release-notes/release-notes-1.0.0-rc2.md

@ -1,106 +0,0 @@
Daira Hopwood (22):
Add link to protocol specification.
Add tests for IsStandardTx applied to v2 transactions.
Make v2 transactions standard. This also corrects a rule about admitting large orphan transactions into the mempool, to account for v2-specific fields.
Changes to build on Alpine Linux.
Add Tromp's implementation of Equihash solver (as of tromp/equihash commit 690fc5eff453bc0c1ec66b283395c9df87701e93).
Integrate Tromp solver into miner code and remove its dependency on extra BLAKE2b implementation.
Minor edits to dnsseed-policy.md.
Avoid boost::posix_time functions that have potential out-of-bounds read bugs. ref #1459
Add help for -equihashsolver= option.
Assert that the Equihash solver is a supported option.
Repair check-security-hardening.sh.
Revert "Avoid boost::posix_time functions that have potential out-of-bounds read bugs. ref #1459"
Fix race condition in rpc-tests/wallet_protectcoinbase.py. closes #1597
Fix other potential race conditions similar to ref #1597 in RPC tests.
Update the error message string for tx version too low. ref #1600
Static assertion that standard and network min tx versions are consistent.
Update comments in chainparams.cpp.
Update unit-tests documentation. closes #1530
Address @str4d's comments on unit-tests doc. ref #1530
Remove copyright entries for some files we deleted.
Update license text in README.md. closes #38
Bump version numbers to 1.0.0-rc2.
David Mercer (4):
explicitly pass HOST and BUILD to ./configure
allow both HOST and BUILD to be passed in from the zcutil/build.sh
pass in both HOST and BUILD to depends system, needed for deterministic builds
explicitly pass HOST and BUILD to libgmp ./configure
Gregory Maxwell (1):
Only send one GetAddr response per connection.
Jack Grigg (31):
Implement MappedShuffle for tracking the permutation of an array
Implement static method for creating a randomized JSDescription
Randomize JoinSplits in z_sendmany
Refactor test code to better test JSDescription::Randomized()
Remove stale comment
Rename libbitcoinconsensus to libzcashconsensus
Rename bitcoin-tx to zcash-tx
Remove the RC 1 block index error message
Disable wallet encryption
Add more assertions, throw if find_output params are invalid
Clear witness cache when re-witnessing notes
Add heights to log output
Throw an error when encryptwallet is disabled
Document that wallet encryption is disabled
Document another wallet encryption concern
Improve security documentation
Fix RPC tests that require wallet encryption
Add test that encryptwallet is disabled
Revert "Revert "Avoid boost::posix_time functions that have potential out-of-bounds read bugs. ref #1459""
GBT: Support coinbasetxn instead of coinbasevalue
GBT: Add informational founders' reward value to coinbasetxn
GBT: Correct block header in proposals RPC test
GBT: Add RPC tests
Disallow v0 transactions as a consensus rule
Reject block versions lower than 4
Regenerate genesis blocks with nVersion = 4
Use tromp's solver to regenerate miner tests
Update tests for new genesis blocks
Enforce standard transaction rules on testnet
Update sighash tests for new consensus rule
Fix RPC test
Jay Graber (7):
Rm bitcoin dev keys from gitian-downloader, add zcash dev keys
Rm bips.md
Update files.md for zcash
Update dnsseed-policy.md
Developer notes still relevant
Document RPC interface security assumptions in security-warnings.md
Update RPC interfaces warnings language
Patrick Strateman (1):
CDataStream::ignore Throw exception instead of assert on negative nSize.
Pieter Wuille (4):
Introduce constant for maximum CScript length
Treat overly long scriptPubKeys as unspendable
Fix OOM bug: UTXO entries with invalid script length
Add tests for CCoins deserialization
Simon (17):
Fixes CID 1147436 uninitialized scalar field.
Fixes CID 1352706 uninitialized scalar field.
Fixes CID 1352698 uninitialized scalar field.
Fixes CID 1352687 uninitialized scalar field.
Fixes CID 1352715 uninitialized scalar field.
Fixes CID 1352686 uninitialized scalar variable.
Fixes CID 1352599 unitialized scalar variable
Fixes CID 1352727 uninitialized scalar variable.
Fixes CID 1352714 uninitialized scalar variable.
Add security warning about logging of z_* calls.
Add debug option "zrpcunsafe" to be used when logging more sensitive information such as the memo field of a note.
Closes #1583 by setting up the datadir for the wallet gtest.
Fix issue where z_sendmany is too strict and does not allow integer based amount e.g. 1 which is the same as 1.0
Update test to use integer amount as well as decimal amount when calling z_sendmany
Fix build problem with coins_tests
Workaround g++ 5.x bug with brace enclosed initializer.
Patch backport of upstream 1588 as we don't (yet) use the NetMsgType namespace
Wladimir J. van der Laan (1):
net: Ignore `notfound` P2P messages

51
doc/release-notes/release-notes-1.0.0-rc3.md

@ -1,51 +0,0 @@
Chirag Davé (1):
fReopenDebugLog and fRequestShutdown should be type sig_atomic_t
Daira Hopwood (9):
Refactor README docs to avoid duplication.
Fix licensing to comply with OpenSSL and Berkeley DB licenses.
Changes to upgrade bdb to 6.2.23
util: Update tinyformat
Tweak descriptions of mining parameters for example zcash.conf.
Update dnsseeds for mainnet. closes #1369
Minor update to release process.
Remove the override of nMaxTipAge that effectively disables it on testnet.
Update version numbers for rc3.
Jack Grigg (2):
Disable metrics screen in performance-measurements.sh
Link to #826 in doc/security-warnings.md, link to new Security website page
Joe Turgeon (2):
Fixing floating point exception caused by metrics. Using default column width unless in a TTY.
Adding handling for ioctl failure. Updates from code review in PR #1615.
Kevin Gallagher (2):
Prefer sha256sum but fall back to shasum if not available
Adds libgomp1 to Debian package depends
Louis Nyffenegger (1):
Fix typo in README.md
Paige Peterson (3):
add zcash.config
fix per Jack's mod suggestions
fix per Daira's suggestions
Pieter Wuille (3):
Include signal.h for sig_atomic_t in WIN32
Revert "Include signal.h for sig_atomic_t in WIN32"
Use std::atomic for fRequestShutdown and fReopenDebugLog
Sean Bowe (1):
Add manpages for zcashd and zcash-cli binaries for debian.
Simon (4):
Fix incorrect error message in z_sendmany
Add z_sendmany rule that when sending coinbase utxos to a zaddr they must be consumed entirely, without any change, since there is currently no way to specify a change address in z_sendmany.
Add assert to AsyncRPCOperation_sendmany
Bump version number in sendalert.cpp
bitcartel (1):
Update payment-api.md

14
doc/release-notes/release-notes-1.0.0-rc4.md

@ -1,14 +0,0 @@
Daira Hopwood (3):
Update pchMessageStart for mainnet and testnet.
Update version numbers for 1.0.0-rc4.
Add release notes for 1.0.0-rc4.
Jack Grigg (4):
Integrate production Founders' Reward keys
Remove Founders' Reward override from #1398
Regenerate mainnet and testnet genesis blocks for nMaxTipAge change
Update tests for new genesis blocks
Sean Bowe (1):
Zcash zk-SNARK public parameters for 1.0 "Sprout".

18
doc/release-notes/release-notes-1.0.0.md

@ -1,18 +0,0 @@
Jack Grigg (8):
Rework zcutil/build-debian-package.sh to place files correctly
Add lintian check to zcutil/build-debian-package.sh
Fix DEBIAN/control errors raised by lintian
Build libsnark with -march=x86-64 instead of -march=native
Disable the metrics screen on regtest
Add the Zcash genesis blocks
Update tests for new genesis blocks
Update version strings to 1.0.0
Kevin Gallagher (6):
Use fakeroot to build Debian package
Update Debian package maintainer scripts
Fixes executable mode of maintainer scripts
Add DEBIAN/rules file (required by policy)
Adds zcash.examples and zcash.manpages
Run Lintian after built package is copied to $SRC_PATH

34
doc/release-notes/release-notes-1.0.1.md

@ -1,34 +0,0 @@
Cameron Boehmer (1):
point "where do i begin?" readme link to 1.0 guide
Jack Grigg (15):
Track mined blocks to detect and report orphans and mining revenue
Refresh mining status to detect setgenerate changes
Add network stats to metrics screen
Show mining info once the node has finished loading
Improve locking in metrics
Adjust consensus rule to accept genesis block without height in coinbase
Fix previous commit
Ensure that no tracked blocks are skipped during orphan detection
Add build scripts and fetch-params.sh to "make install" and "make dist"
Use uint64_t for AtomicCounter
Fix gtest issue introduced into master
Fix whitespace in Makefile.gtest.include
Initialise walletdb system in a temp dir for all gtests
Revert "Initialise walletdb system in a temp dir for all gtests"
Change execution order of gtests to avoid bug
Kevin Gallagher (1):
Improves usability of fetch-params.sh
Sean Bowe (6):
Properly account for joinsplit value when deciding if a transaction should be placed in a mined block.
Add checkpoint at block 2500.
Throw more descriptive exceptions when the constraint system is violated.
Test that a pure joinsplit will mine if other transactions are in the mempool.
1.0.1 release.
Update man pages.
Simon (1):
Closes #1746. Add rpc call z_validateaddress to validate zaddrs.

11
doc/release-notes/release-notes-1.0.10-1.md

@ -1,11 +0,0 @@
Jack Grigg (1):
Disable building Proton in Gitian
Sean Bowe (2):
Revert "Remove an unneeded version workaround as per @str4d's review comment."
Revert "Delete old protocol version constants and simplify code that used them."
Simon Liu (2):
make-release.py: Versioning changes for 1.0.10-1.
make-release.py: Updated manpages for 1.0.10-1.

79
doc/release-notes/release-notes-1.0.10.md

@ -1,79 +0,0 @@
Notable changes
===============
Signature validation using libsecp256k1
---------------------------------------
ECDSA signatures inside Zcash transactions now use validation using
[https://github.com/bitcoin/secp256k1](libsecp256k1) instead of OpenSSL.
Depending on the platform, this means a significant speedup for raw signature
validation speed. The advantage is largest on x86_64, where validation is over
five times faster. In practice, this translates to a raw reindexing and new
block validation times that are less than half of what it was before.
Libsecp256k1 has undergone very extensive testing and validation upstream.
A side effect of this change is that libconsensus no longer depends on OpenSSL.
Changelog
=========
Boris Hajduk (1):
documentatin z_validateaddress was missing param
Daira Hopwood (8):
Delete old protocol version constants and simplify code that used them. fixes #2244
Remove an unneeded version workaround as per @str4d's review comment.
Remove unneeded lax ECDSA signature verification.
Strict DER signatures are always enforced; remove the flag and code that used it.
Repair tests for strict DER signatures. While we're at it, repair a similar test for CLTV, and make the repaired RPC tests run by default.
Make transaction test failures print the comments preceding the test JSON.
Fix a comment that was made stale before launch by #1016 (commit 542da61).
Delete test that is redundant and inapplicable to Zcash.
Jack Grigg (20):
Fix incorrect locking in CCryptoKeyStore
Use AtomicTimer for metrics screen thread count
Revert "Fix secp256k1 test compilation"
Squashed 'src/secp256k1/' changes from 22f60a6..84973d3
Fix potential overflows in ECDSA DER parsers
Rename FALLBACK_DOWNLOAD_PATH to PRIORITY_DOWNLOAD_PATH
Add test for incorrect consensus logic
Correct consensus logic in ContextualCheckInputs
Add comments
Update Debian copyright list
Specify ECDSA constant sizes as constants
Remove redundant `= 0` initialisations
Ensure that ECDSA constant sizes are correctly-sized
Add test for -mempooltxinputlimit
Hold an ECCVerifyHandle in zcash-gtest
Additional testing of -mempooltxinputlimit
Fix comment
Use sendfrom for both t-addr calls
make-release.py: Versioning changes for 1.0.10.
make-release.py: Updated manpages for 1.0.10.
Kevin Pan (1):
"getblocktemplate" could work without wallet
Pieter Wuille (2):
Update key.cpp to new secp256k1 API
Switch to libsecp256k1-based validation for ECDSA
Simon Liu (5):
Fix intermediate vpub_new leakage in multi joinsplit tx (#1360)
Add option 'mempooltxinputlimit' so the mempool can reject a transaction based on the number of transparent inputs.
Check mempooltxinputlimit when creating a transaction to avoid local mempool rejection.
Partial revert & fix for commit 9e84b5a ; code block in wrong location.
Fix #b1eb4f2 so test checks sendfrom as originally intended.
Wladimir J. van der Laan (2):
Use real number of cores for default -par, ignore virtual cores
Remove ChainParams::DefaultMinerThreads
kozyilmaz (3):
[macOS] system linker does not support “--version” option but only “-v”
option to disable building libraries (zcutil/build.sh)
support per platform filename and hash setting for dependencies

44
doc/release-notes/release-notes-1.0.11-rc1.md

@ -1,44 +0,0 @@
Changelog
=========
Ariel Gabizon (2):
make-release.py: Versioning changes for 1.0.11-rc1.
make-release.py: Updated manpages for 1.0.11-rc1.
Daira Hopwood (7):
Clean up imports to be pyflakes-checkable. fixes #2450
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
Cosmetics (trailing whitespace, comment conventions, etc.)
Alert 1004 (version 1.0.10 only)
Remove UPnP support. fixes #2500
Change wording in Security Warnings section of README.md.
Document our criteria for adding CI workers. closes #2499
Jack Grigg (15):
Pull in temporary release notes during the release process
Ansible playbook for installing Zcash dependencies and Buildbot worker
Variable overrides for Debian, Ubuntu and Fedora
Variable overrides for FreeBSD
Simplify Python installation, inform user if they need to manually configure
Add test for issue #2444
Add Buildbot worker setup to Ansible playbook
Add steps for setting up a latent worker on Amazon EC2
Add pyblake2 to required Python modules
Remove Buildbot version from host file
Add a separate Buildbot host info template for EC2
Add pyflakes to required Python modules
Add block download progress to metrics UI
Correct and extend EstimateNetHeightInner tests
Improve network height estimation
Simon Liu (3):
Closes #2446 by adding generated field to listunspent.
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
Wladimir J. van der Laan (1):
rpc: Add WWW-Authenticate header to 401 response
practicalswift (1):
Net: Fix resource leak in ReadBinaryFile(...)

47
doc/release-notes/release-notes-1.0.11.md

@ -1,47 +0,0 @@
Changelog
=========
Ariel Gabizon (3):
make-release.py: Versioning changes for 1.0.11-rc1.
make-release.py: Updated manpages for 1.0.11-rc1.
make-release.py: Updated release notes and changelog for 1.0.11-rc1.
Daira Hopwood (7):
Clean up imports to be pyflakes-checkable. fixes #2450
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
Cosmetics (trailing whitespace, comment conventions, etc.)
Alert 1004 (version 1.0.10 only)
Remove UPnP support. fixes #2500
Change wording in Security Warnings section of README.md.
Document our criteria for adding CI workers. closes #2499
Jack Grigg (17):
Pull in temporary release notes during the release process
Ansible playbook for installing Zcash dependencies and Buildbot worker
Variable overrides for Debian, Ubuntu and Fedora
Variable overrides for FreeBSD
Simplify Python installation, inform user if they need to manually configure
Add test for issue #2444
Add Buildbot worker setup to Ansible playbook
Add steps for setting up a latent worker on Amazon EC2
Add pyblake2 to required Python modules
Remove Buildbot version from host file
Add a separate Buildbot host info template for EC2
Add pyflakes to required Python modules
Add block download progress to metrics UI
Correct and extend EstimateNetHeightInner tests
Improve network height estimation
make-release.py: Versioning changes for 1.0.11.
make-release.py: Updated manpages for 1.0.11.
Simon Liu (3):
Closes #2446 by adding generated field to listunspent.
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
Wladimir J. van der Laan (1):
rpc: Add WWW-Authenticate header to 401 response
practicalswift (1):
Net: Fix resource leak in ReadBinaryFile(...)

57
doc/release-notes/release-notes-1.0.12-rc1.md

@ -1,57 +0,0 @@
Changelog
=========
Ariel (1):
add examples to z_getoperationresult
Ariel Gabizon (1):
add load-wallet benchmark
Bjorn Hjortsberg (2):
Do not warn on built in declaration mismatch
Remove deprecated exception specification
Jack Grigg (20):
ci-workers: Enable pipelining, and use root to set admin and host details
Variable overrides for Arch Linux
Rationalize currency unit to "ZEC"
ci-workers: Fail if Python is not version 2.7
ci-workers: Variable overrides and process tweaks for CentOS 7
Add build progress to the release script if progressbar module is available
Add hotfix support to release script
Document the hotfix release process
Enforce sequential hotfix versioning
Benchmark time to call sendtoaddress with many UTXOs
Fix bug in benchmark data generation script
Adjust instructions for UTXO dataset creation
Add GitHub release notes to release process
Clarify branching and force-building operations in hotfix process
Update user guide translations as part of release process
make-release.py: Send stderr to stdout
List dependencies for release script in release process doc
Additional test cases for importprivkey RPC test
make-release.py: Versioning changes for 1.0.12-rc1.
make-release.py: Updated manpages for 1.0.12-rc1.
Jason Davies (1):
Fix deprecation policy comment.
Nathan Wilcox (5):
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
[tests pass] Output address on new key import.
Add a new requirement that `importprivkey` API is idempotent.
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
Ross Nicoll (1):
Rationalize currency unit to "BTC"
Simon Liu (3):
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
Implement RPC shield_coinbase #2448.
kpcyrd (2):
Fetch params from ipfs if possible
Prefer wget over ipfs

65
doc/release-notes/release-notes-1.0.12.md

@ -1,65 +0,0 @@
Changelog
=========
Ariel (1):
add examples to z_getoperationresult
Ariel Gabizon (1):
add load-wallet benchmark
Bjorn Hjortsberg (2):
Do not warn on built in declaration mismatch
Remove deprecated exception specification
Jack Grigg (26):
ci-workers: Enable pipelining, and use root to set admin and host details
Variable overrides for Arch Linux
Rationalize currency unit to "ZEC"
ci-workers: Fail if Python is not version 2.7
ci-workers: Variable overrides and process tweaks for CentOS 7
Add build progress to the release script if progressbar module is available
Add hotfix support to release script
Document the hotfix release process
Enforce sequential hotfix versioning
Benchmark time to call sendtoaddress with many UTXOs
Fix bug in benchmark data generation script
Adjust instructions for UTXO dataset creation
Add GitHub release notes to release process
Clarify branching and force-building operations in hotfix process
Update user guide translations as part of release process
make-release.py: Send stderr to stdout
List dependencies for release script in release process doc
Additional test cases for importprivkey RPC test
make-release.py: Versioning changes for 1.0.12-rc1.
make-release.py: Updated manpages for 1.0.12-rc1.
make-release.py: Updated release notes and changelog for 1.0.12-rc1.
Fix pyflakes warnings in RPC tests
Individualise performance-measurements.sh errors for debugging
Fix incorrect failure in memory benchmark
make-release.py: Versioning changes for 1.0.12.
make-release.py: Updated manpages for 1.0.12.
Jason Davies (1):
Fix deprecation policy comment.
Nathan Wilcox (5):
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
[tests pass] Output address on new key import.
Add a new requirement that `importprivkey` API is idempotent.
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
Ross Nicoll (1):
Rationalize currency unit to "BTC"
Simon Liu (5):
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
Implement RPC shield_coinbase #2448.
Update which lock to synchronize on when calling GetBestAnchor().
Closes #2637. Make z_shieldcoinbase an experimental feature where it can be enabled with: zcashd -experimentalfeatures -zshieldcoinbase.
kpcyrd (2):
Fetch params from ipfs if possible
Prefer wget over ipfs

88
doc/release-notes/release-notes-1.0.13-rc1.md

@ -1,88 +0,0 @@
Changelog
=========
Ariel Gabizon (1):
boost::format -> tinyformat
Bruno Arueira (1):
Removes out bitcoin mention in favor for zcash
Cory Fields (1):
httpserver: explicitly detach worker threads
Duke Leto (1):
Update performance-measurements.sh
Jack Grigg (37):
Squashed 'src/snark/' content from commit 9ada3f8
Add libsnark compile flag to not copy DEPINST to PREFIX
Add Ansible playbook for grind workers
Add connections in BIP65 and BIP66 tests to the test manager
Add benchmark for listunspent
[Test] MiniNode: Implement JSDescription parsing
[Test] MiniNode: Implement v2 CTransaction parsing
[Test] MiniNode: Implement Zcash block parsing
[Test] MiniNode: Update protocol version and network magics
[Test] MiniNode: Use Zcash PoW
[Test] MiniNode: Fix coinbase creation
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
[Test] MiniNode: Implement Zcash coinbase
Fix BIP65 and BIP66 tests
Un-indent RPC test output in test runner
Replace full-test-suite.sh with a new test suite driver script
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
Move check-security-hardening.sh into full_test_suite.py
Add memory benchmark for validatelargetx
Migrate libsnark test code to Google Test
Remove test code corresponding to removed code
Add alt_bn128 to QAP and Merkle tree gadget tests
Update libsnark LDLIBS
Add "make check" to libsnark that runs the Google Tests
Add "make libsnark-tests" that runs libsnark's "make check"
Changes to get test_r1cs_ppzksnark passing
Add bitcoin-util-test.py to full_test_suite.py
Add stdout notice if any stage fails
Add libsnark to "make clean"
Ensure that libsnark is built first, so its headers are available
Remove OpenSSL libraries from libsnark LDLIBS
Add libsnark tests to full_test_suite.py
Add --list-stages argument to full_test_suite.py
Fix NPE in rpc_wallet_tests
make-release.py: Versioning changes for 1.0.13-rc1.
make-release.py: Updated manpages for 1.0.13-rc1.
Change auto-senescence cycle to 16 weeks
Jason Davies (1):
Replace "bitcoin" with "Zcash".
Jay Graber (1):
s/zcash/Zcash
Jonathan "Duke" Leto (1):
Fix bug where performance-measurements.sh fails hards when given no args
João Barbosa (1):
Improve shutdown process
Sean Bowe (5):
Remove libsnark from depends system and integrate it into build system.
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
Refactor proof generation function.
Add streaming prover.
Integrate low memory prover.
Simon Liu (7):
Replace 'bitcoin address' with 'zcash address'.
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
Closes #2263 fixing broken pipe error.
Closes #2576. Update link to security info on z.cash website.
Closes #2639. Adds optional limit parameter with a default value of 50.
Fix an issue where qa test wallet_shieldcoinbase could hang.
Add payment disclosure as experimental feature.
Wladimir J. van der Laan (4):
Make HTTP server shutdown more graceful
http: Wait for worker threads to exit
http: Force-exit event loop after predefined time
http: speed up shutdown

95
doc/release-notes/release-notes-1.0.13-rc2.md

@ -1,95 +0,0 @@
Changelog
=========
Ariel Gabizon (1):
boost::format -> tinyformat
Bruno Arueira (1):
Removes out bitcoin mention in favor for zcash
Cory Fields (1):
httpserver: explicitly detach worker threads
Duke Leto (1):
Update performance-measurements.sh
Jack Grigg (44):
Squashed 'src/snark/' content from commit 9ada3f8
Add libsnark compile flag to not copy DEPINST to PREFIX
Add Ansible playbook for grind workers
Add connections in BIP65 and BIP66 tests to the test manager
Add benchmark for listunspent
[Test] MiniNode: Implement JSDescription parsing
[Test] MiniNode: Implement v2 CTransaction parsing
[Test] MiniNode: Implement Zcash block parsing
[Test] MiniNode: Update protocol version and network magics
[Test] MiniNode: Use Zcash PoW
[Test] MiniNode: Fix coinbase creation
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
[Test] MiniNode: Implement Zcash coinbase
Fix BIP65 and BIP66 tests
Un-indent RPC test output in test runner
Replace full-test-suite.sh with a new test suite driver script
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
Move check-security-hardening.sh into full_test_suite.py
Add memory benchmark for validatelargetx
Migrate libsnark test code to Google Test
Remove test code corresponding to removed code
Add alt_bn128 to QAP and Merkle tree gadget tests
Update libsnark LDLIBS
Add "make check" to libsnark that runs the Google Tests
Add "make libsnark-tests" that runs libsnark's "make check"
Changes to get test_r1cs_ppzksnark passing
Add bitcoin-util-test.py to full_test_suite.py
Add stdout notice if any stage fails
Add libsnark to "make clean"
Ensure that libsnark is built first, so its headers are available
Remove OpenSSL libraries from libsnark LDLIBS
Add libsnark tests to full_test_suite.py
Add --list-stages argument to full_test_suite.py
Fix NPE in rpc_wallet_tests
make-release.py: Versioning changes for 1.0.13-rc1.
make-release.py: Updated manpages for 1.0.13-rc1.
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
Change auto-senescence cycle to 16 weeks
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
Pass correct dependencies path to libsnark from both Gitian and build.sh
Mark libsnark includes as library includes
Add the tar-pax option to automake
make-release.py: Versioning changes for 1.0.13-rc2.
make-release.py: Updated manpages for 1.0.13-rc2.
Jason Davies (1):
Replace "bitcoin" with "Zcash".
Jay Graber (1):
s/zcash/Zcash
Jonathan "Duke" Leto (1):
Fix bug where performance-measurements.sh fails hards when given no args
João Barbosa (1):
Improve shutdown process
Sean Bowe (5):
Remove libsnark from depends system and integrate it into build system.
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
Refactor proof generation function.
Add streaming prover.
Integrate low memory prover.
Simon Liu (7):
Replace 'bitcoin address' with 'zcash address'.
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
Closes #2263 fixing broken pipe error.
Closes #2576. Update link to security info on z.cash website.
Closes #2639. Adds optional limit parameter with a default value of 50.
Fix an issue where qa test wallet_shieldcoinbase could hang.
Add payment disclosure as experimental feature.
Wladimir J. van der Laan (4):
Make HTTP server shutdown more graceful
http: Wait for worker threads to exit
http: Force-exit event loop after predefined time
http: speed up shutdown

98
doc/release-notes/release-notes-1.0.13.md

@ -1,98 +0,0 @@
Changelog
=========
Ariel Gabizon (1):
boost::format -> tinyformat
Bruno Arueira (1):
Removes out bitcoin mention in favor for zcash
Cory Fields (1):
httpserver: explicitly detach worker threads
Duke Leto (1):
Update performance-measurements.sh
Jack Grigg (47):
Squashed 'src/snark/' content from commit 9ada3f8
Add libsnark compile flag to not copy DEPINST to PREFIX
Add Ansible playbook for grind workers
Add connections in BIP65 and BIP66 tests to the test manager
Add benchmark for listunspent
[Test] MiniNode: Implement JSDescription parsing
[Test] MiniNode: Implement v2 CTransaction parsing
[Test] MiniNode: Implement Zcash block parsing
[Test] MiniNode: Update protocol version and network magics
[Test] MiniNode: Use Zcash PoW
[Test] MiniNode: Fix coinbase creation
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
[Test] MiniNode: Implement Zcash coinbase
Fix BIP65 and BIP66 tests
Un-indent RPC test output in test runner
Replace full-test-suite.sh with a new test suite driver script
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
Move check-security-hardening.sh into full_test_suite.py
Add memory benchmark for validatelargetx
Migrate libsnark test code to Google Test
Remove test code corresponding to removed code
Add alt_bn128 to QAP and Merkle tree gadget tests
Update libsnark LDLIBS
Add "make check" to libsnark that runs the Google Tests
Add "make libsnark-tests" that runs libsnark's "make check"
Changes to get test_r1cs_ppzksnark passing
Add bitcoin-util-test.py to full_test_suite.py
Add stdout notice if any stage fails
Add libsnark to "make clean"
Ensure that libsnark is built first, so its headers are available
Remove OpenSSL libraries from libsnark LDLIBS
Add libsnark tests to full_test_suite.py
Add --list-stages argument to full_test_suite.py
Fix NPE in rpc_wallet_tests
make-release.py: Versioning changes for 1.0.13-rc1.
make-release.py: Updated manpages for 1.0.13-rc1.
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
Change auto-senescence cycle to 16 weeks
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
Pass correct dependencies path to libsnark from both Gitian and build.sh
Mark libsnark includes as library includes
Add the tar-pax option to automake
make-release.py: Versioning changes for 1.0.13-rc2.
make-release.py: Updated manpages for 1.0.13-rc2.
make-release.py: Updated release notes and changelog for 1.0.13-rc2.
make-release.py: Versioning changes for 1.0.13.
make-release.py: Updated manpages for 1.0.13.
Jason Davies (1):
Replace "bitcoin" with "Zcash".
Jay Graber (1):
s/zcash/Zcash
Jonathan "Duke" Leto (1):
Fix bug where performance-measurements.sh fails hards when given no args
João Barbosa (1):
Improve shutdown process
Sean Bowe (5):
Remove libsnark from depends system and integrate it into build system.
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
Refactor proof generation function.
Add streaming prover.
Integrate low memory prover.
Simon Liu (7):
Replace 'bitcoin address' with 'zcash address'.
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
Closes #2263 fixing broken pipe error.
Closes #2576. Update link to security info on z.cash website.
Closes #2639. Adds optional limit parameter with a default value of 50.
Fix an issue where qa test wallet_shieldcoinbase could hang.
Add payment disclosure as experimental feature.
Wladimir J. van der Laan (4):
Make HTTP server shutdown more graceful
http: Wait for worker threads to exit
http: Force-exit event loop after predefined time
http: speed up shutdown

156
doc/release-notes/release-notes-1.0.14-rc1.md

@ -1,156 +0,0 @@
Notable changes
===============
Incoming viewing keys
---------------------
Support for incoming viewing keys, as described in
[the Zcash protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf),
has been added to the wallet.
Use the `z_exportviewingkey` RPC method to obtain the incoming viewing key for a
z-address in a node's wallet. For Sprout z-addresses, these always begin with
"ZiVK" (or "ZiVt" for testnet z-addresses). Use `z_importviewingkey` to import
these into another node.
A node that possesses an incoming viewing key for a z-address can view all past
transactions received by that address, as well as all future transactions sent
to it, by using `z_listreceivedbyaddress`. They cannot spend any funds from the
address. This is similar to the behaviour of "watch-only" t-addresses.
`z_gettotalbalance` now has an additional boolean parameter for including the
balance of "watch-only" addresses (both transparent and shielded), which is set
to `false` by default. `z_getbalance` has also been updated to work with
watch-only addresses.
- **Caution:** for z-addresses, these balances will **not** be accurate if any
funds have been sent from the address. This is because incoming viewing keys
cannot detect spends, and so the "balance" is just the sum of all received
notes, including ones that have been spent. Some future use-cases for incoming
viewing keys will include synchronization data to keep their balances accurate
(e.g. [#2542](https://github.com/zcash/zcash/issues/2542)).
Changelog
=========
Anthony Towns (1):
Add configure check for -latomic
Cory Fields (12):
c++11: don't throw from the reverselock destructor
c++11: CAccountingEntry must be defined before use in a list
c++11: fix libbdb build against libc++ in c++11 mode
depends: use c++11
depends: bump OSX toolchain
build: Split hardening/fPIE options out
build: define base filenames for use elsewhere in the buildsystem
build: quiet annoying warnings without adding new ones
build: fix Windows builds without pkg-config
build: force a c++ standard to be specified
build: warn about variable length arrays
build: add --enable-werror option
Jack Grigg (36):
Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
Use g-prefixed coreutils commands if they are available
Replace hard-coded defaults for HOST and BUILD with config.guess
Remove manual -std=c++11 flag
Replace "install -D" with "mkdir -p && install"
Check if OpenMP is available before using it
[libsnark] Use POSIX-compliant ar arguments
Include endian-ness compatibility layer in Equihash implementation
build: Split hardening/fPIE options out in Zcash-specific binaries
Change --enable-werror to apply to all warnings, use it in build.sh
Move Zcash flags into configure.ac
ViewingKey -> ReceivingKey per zcash/zips#117
Implement viewing key storage in the keystore
Factor out common logic from CZCPaymentAddress and CZCSpendingKey
Track net value entering and exiting the Sprout circuit
Add Sprout value pool to getblock and getblockchaininfo
Apply -fstack-protector-all to libsnark
Add Rust and Proton to configure options printout
Clarify operator precedence in serialization of nSproutValue
Remove nSproutValue TODO from CDiskBlockIndex
Add Base58 encoding of viewing keys
Implement viewing key storage in the wallet
Add RPC methods for exporting/importing viewing keys
Update wallet logic to account for viewing keys
Add watch-only support to Zcash RPC methods
Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
Cleanup: Add braces for clarity
Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys
Add release notes for incoming viewing keys
Create release notes starting from the previous non-beta non-RC release
release-notes.py: Remove unnecessary parameter
Regenerate previous release notes to conform to new format
Exclude beta and RC release notes from author tallies
Fix pyflakes warnings in zkey_import_export RPC test
make-release.py: Versioning changes for 1.0.14-rc1.
make-release.py: Updated manpages for 1.0.14-rc1.
Jay Graber (3):
Add cli and rpc examples for z_sendmany
Fix cli help result for z_shieldcoinbase
Add rpc test that exercises z_importkey
Jonas Schnelli (1):
Add compile and link options echo to configure
Luke Dashjr (4):
depends: Use curl for fetching on Linux
Travis: Use curl rather than wget for Mac SDK
Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl
Travis: Use Blue Box VMs for IPv6 loopback support
MarcoFalke (2):
Fix url in .travis.yml
[depends] builders: No need to set -L and --location for curl
Per Grön (2):
Deduplicate test utility method wait_and_assert_operationid_status
Print result of RPC call in test only when PYTHON_DEBUG is set
René Nyffenegger (1):
Use AC_ARG_VAR to set ARFLAGS.
Simon Liu (5):
RPC dumpwallet and z_exportwallet updated to no longer allow overwriting an existing file.
Add documentation for shielding coinbase utxos.
Add documentation for payment disclosure.
Closes #2759. Fixes broken pipe error with QA test wallet.py.
Closes #2746. Payment disclosure blobs now use 'zpd:' prefix.
Wladimir J. van der Laan (6):
build: Enable C++11 build, require C++11 compiler
build: update ax_cxx_compile_stdcxx to serial 4
test: Remove java comparison tool
build: Remove check for `openssl/ec.h`
devtools: Check for high-entropy ASLR in 64-bit PE executables
build: supply `-Wl,--high-entropy-va`
daniel (1):
add powerpc build support for openssl lib
fanquake (3):
[build-aux] Update Boost & check macros to latest serials
[depends] Add -stdlib=libc++ to darwin CXX flags
[depends] Set OSX_MIN_VERSION to 10.8
kozyilmaz (1):
empty spaces in PATH variable cause build failure
syd (13):
Upgrade googletest to 1.8.0
Get the sec-hard tests to run correctly.
Update libsodium from 1.0.11 to 1.0.15
Remove Boost conditional compilation.
Update to address @daira comments wrt fixing configure.ac
Get rid of consensus.fPowAllowMinDifficultyBlocks.
Don't compile libgtest.a when building libsnark.
Add gtests to .gitignore
Get rid of fp3 from libsnark, it is not used.
InitGoogleMock instead of InitGoogleTest per CR
Get rid of underscore prefixes for include guards.
Rename bash completion files so that they refer to zcash and not bitcoin.
Fix libsnark test failure.

160
doc/release-notes/release-notes-1.0.14.md

@ -1,160 +0,0 @@
Notable changes
===============
Incoming viewing keys
---------------------
Support for incoming viewing keys, as described in
[the Zcash protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf),
has been added to the wallet.
Use the `z_exportviewingkey` RPC method to obtain the incoming viewing key for a
z-address in a node's wallet. For Sprout z-addresses, these always begin with
"ZiVK" (or "ZiVt" for testnet z-addresses). Use `z_importviewingkey` to import
these into another node.
A node that possesses an incoming viewing key for a z-address can view all past
transactions received by that address, as well as all future transactions sent
to it, by using `z_listreceivedbyaddress`. They cannot spend any funds from the
address. This is similar to the behaviour of "watch-only" t-addresses.
`z_gettotalbalance` now has an additional boolean parameter for including the
balance of "watch-only" addresses (both transparent and shielded), which is set
to `false` by default. `z_getbalance` has also been updated to work with
watch-only addresses.
- **Caution:** for z-addresses, these balances will **not** be accurate if any
funds have been sent from the address. This is because incoming viewing keys
cannot detect spends, and so the "balance" is just the sum of all received
notes, including ones that have been spent. Some future use-cases for incoming
viewing keys will include synchronization data to keep their balances accurate
(e.g. [#2542](https://github.com/zcash/zcash/issues/2542)).
Changelog
=========
Anthony Towns (1):
Add configure check for -latomic
Cory Fields (12):
c++11: don't throw from the reverselock destructor
c++11: CAccountingEntry must be defined before use in a list
c++11: fix libbdb build against libc++ in c++11 mode
depends: use c++11
depends: bump OSX toolchain
build: Split hardening/fPIE options out
build: define base filenames for use elsewhere in the buildsystem
build: quiet annoying warnings without adding new ones
build: fix Windows builds without pkg-config
build: force a c++ standard to be specified
build: warn about variable length arrays
build: add --enable-werror option
Jack Grigg (40):
Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
Use g-prefixed coreutils commands if they are available
Replace hard-coded defaults for HOST and BUILD with config.guess
Remove manual -std=c++11 flag
Replace "install -D" with "mkdir -p && install"
Check if OpenMP is available before using it
[libsnark] Use POSIX-compliant ar arguments
Include endian-ness compatibility layer in Equihash implementation
build: Split hardening/fPIE options out in Zcash-specific binaries
Change --enable-werror to apply to all warnings, use it in build.sh
Move Zcash flags into configure.ac
ViewingKey -> ReceivingKey per zcash/zips#117
Implement viewing key storage in the keystore
Factor out common logic from CZCPaymentAddress and CZCSpendingKey
Track net value entering and exiting the Sprout circuit
Add Sprout value pool to getblock and getblockchaininfo
Apply -fstack-protector-all to libsnark
Add Rust and Proton to configure options printout
Clarify operator precedence in serialization of nSproutValue
Remove nSproutValue TODO from CDiskBlockIndex
Add Base58 encoding of viewing keys
Implement viewing key storage in the wallet
Add RPC methods for exporting/importing viewing keys
Update wallet logic to account for viewing keys
Add watch-only support to Zcash RPC methods
Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
Cleanup: Add braces for clarity
Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys
Add release notes for incoming viewing keys
Create release notes starting from the previous non-beta non-RC release
release-notes.py: Remove unnecessary parameter
Regenerate previous release notes to conform to new format
Exclude beta and RC release notes from author tallies
Fix pyflakes warnings in zkey_import_export RPC test
make-release.py: Versioning changes for 1.0.14-rc1.
make-release.py: Updated manpages for 1.0.14-rc1.
make-release.py: Updated release notes and changelog for 1.0.14-rc1.
Update release process
make-release.py: Versioning changes for 1.0.14.
make-release.py: Updated manpages for 1.0.14.
Jay Graber (3):
Add cli and rpc examples for z_sendmany
Fix cli help result for z_shieldcoinbase
Add rpc test that exercises z_importkey
Jonas Schnelli (1):
Add compile and link options echo to configure
Luke Dashjr (4):
depends: Use curl for fetching on Linux
Travis: Use curl rather than wget for Mac SDK
Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl
Travis: Use Blue Box VMs for IPv6 loopback support
MarcoFalke (2):
Fix url in .travis.yml
[depends] builders: No need to set -L and --location for curl
Per Grön (2):
Deduplicate test utility method wait_and_assert_operationid_status
Print result of RPC call in test only when PYTHON_DEBUG is set
René Nyffenegger (1):
Use AC_ARG_VAR to set ARFLAGS.
Simon Liu (5):
RPC dumpwallet and z_exportwallet updated to no longer allow overwriting an existing file.
Add documentation for shielding coinbase utxos.
Add documentation for payment disclosure.
Closes #2759. Fixes broken pipe error with QA test wallet.py.
Closes #2746. Payment disclosure blobs now use 'zpd:' prefix.
Wladimir J. van der Laan (6):
build: Enable C++11 build, require C++11 compiler
build: update ax_cxx_compile_stdcxx to serial 4
test: Remove java comparison tool
build: Remove check for `openssl/ec.h`
devtools: Check for high-entropy ASLR in 64-bit PE executables
build: supply `-Wl,--high-entropy-va`
daniel (1):
add powerpc build support for openssl lib
fanquake (3):
[build-aux] Update Boost & check macros to latest serials
[depends] Add -stdlib=libc++ to darwin CXX flags
[depends] Set OSX_MIN_VERSION to 10.8
kozyilmaz (1):
empty spaces in PATH variable cause build failure
syd (13):
Upgrade googletest to 1.8.0
Get the sec-hard tests to run correctly.
Update libsodium from 1.0.11 to 1.0.15
Remove Boost conditional compilation.
Update to address @daira comments wrt fixing configure.ac
Get rid of consensus.fPowAllowMinDifficultyBlocks.
Don't compile libgtest.a when building libsnark.
Add gtests to .gitignore
Get rid of fp3 from libsnark, it is not used.
InitGoogleMock instead of InitGoogleTest per CR
Get rid of underscore prefixes for include guards.
Rename bash completion files so that they refer to zcash and not bitcoin.
Fix libsnark test failure.

165
doc/release-notes/release-notes-1.0.15-rc1.md

@ -1,165 +0,0 @@
Notable changes
===============
UTXO and note merging
---------------------
In order to simplify the process of combining many small UTXOs and notes into a
few larger ones, a new RPC method `z_mergetoaddress` has been added. It merges
funds from t-addresses, z-addresses, or both, and sends them to a single
t-address or z-address.
Unlike most other RPC methods, `z_mergetoaddress` operates over a particular
quantity of UTXOs and notes, instead of a particular amount of ZEC. By default,
it will merge 50 UTXOs and 10 notes at a time; these limits can be adjusted with
the parameters `transparent_limit` and `shielded_limit`.
`z_mergetoaddress` also returns the number of UTXOs and notes remaining in the
given addresses, which can be used to automate the merging process (for example,
merging until the number of UTXOs falls below some value).
UTXO memory accounting
----------------------
The default -dbcache has been changed in this release to 450MiB. Users can set -dbcache to a higher value (e.g. to keep the UTXO set more fully cached in memory). Users on low-memory systems (such as systems with 1GB or less) should consider specifying a lower value for this parameter.
Additional information relating to running on low-memory systems can be found here: [reducing-memory-usage.md](https://github.com/zcash/zcash/blob/master/doc/reducing-memory-usage.md).
Changelog
=========
21E14 (1):
Remove obsolete reference to CValidationState from UpdateCoins.
Alex Morcos (1):
Implement helper class for CTxMemPoolEntry constructor
Ariel (2):
add blake2b writer
update SignatureHash according to Overwinter spec
Ashley Holman (1):
TxMemPool: Change mapTx to a boost::multi_index_container
Cory Fields (2):
chainparams: move CCheckpointData into chainparams.h
chainparams: don't use std namespace
Daniel Kraft (1):
Clean up chainparams some more.
Jack Grigg (38):
Scope the ECDSA constant sizes to CPubKey / CKey classes
Enable Bash completion for -exportdir
Check chainValueZat when checking value pool monitoring
Add missing namespace for boost::get
Add viewing key prefix to regtest parameters
zkey_import_export: Synchronize mempools before mining
Use JoinSplitTestingSetup for Boost sighash tests
Network upgrade activation mechanism
Allow changing network upgrade parameters on regtest
Test network upgrade logic
Adjust rewind logic to use the network upgrade mechanism
Add Overwinter to upgrade list
Add method for fetching the next activation height after a given block height
Use a boost::optional for nCachedBranchId
Change UI/log status message for block rewinding
Update quote from ZIP 200
Update SignatureHash tests for transaction format changes
Implement roll-back limit for reorganisation
Add rollback limit to block index rewinding
Remove mempool transactions which commit to an unmineable branch ID
Remove P2WPKH and P2WSH from signing logic
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
Cleanup: Wrap function arguments
Regenerate SignatureHash tests
Make number of inputs configurable in validatelargetx test
Use v3 transactions with caching for validatelargetx benchmark
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
Add branch IDs for current and next block to getblockchaininfo
Check Equihash solution when loading block index
Implement z_mergetoaddress for combining UTXOs and notes
Gate z_mergetoaddress as an experimental feature
Add z_mergetoaddress to release notes
Check upgrade status in wallet_overwintertx RPC test
Document that consensus.chaintip != consensus.nextblock just before an upgrade
Regenerate sighash tests
wallet_mergetoaddress: Add additional syncs to prevent race conditions
make-release.py: Versioning changes for 1.0.15-rc1.
make-release.py: Updated manpages for 1.0.15-rc1.
Jay Graber (8):
Add getdeprecationinfo rpc call to return current version and deprecation block height.
Make applicable only on mainnet
Add upgrades field to RPC call getblockchaininfo
Implement transaction expiry for Overwinter
Add -txexpirydelta cli option
Add mempool_tx_expiry.py test
Add expiry to z_mergetoaddress
Change rpc_tests to 21
Jonas Nick (1):
Reduce unnecessary hashing in signrawtransaction
Jorge Timón (3):
Chainparams: Introduce CreateGenesisBlock() static function
Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
Marius Kjærstad (1):
Changed http:// to https:// on some links
Mark Friedenbach (1):
Explicitly set tx.nVersion for the genesis block and mining tests
Matt Corallo (5):
Add failing test checking timelocked-txn removal during reorg
Fix removal of time-locked transactions during reorg
Fix comment in removeForReorg
Make indentation in ActivateBestChainStep readable
removeForReorg calls once-per-disconnect-> once-per-reorg
Maxwell Gubler (1):
Fix syntax examples for z_importwallet and export
Nicolas DORIER (1):
Unit test for sighash caching
Pavel Vasin (1):
remove unused NOBLKS_VERSION_{START,END} constants
Pieter Wuille (8):
Add rewind logic to deal with post-fork software updates
Support -checkmempool=N, which runs checks on average once every N transactions
Report non-mandatory script failures correctly
Refactor script validation to observe amounts
BIP143: Verification logic
BIP143: Signing logic
Precompute sighashes
Rename to PrecomputedTransactionData
Simon Liu (11):
Fixes #2793. Backport commit f33afd3 to increase dbcache default.
Add documentation about dbcache.
Add note about dbcache to 1.0.15 release notes.
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.
Implementation of Overwinter transaction format ZIP 202.
Add test to check malformed v1 transaction against Overwinter tx parser
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
Closes #2954 and #2959. Fixes Overwinter issues in sighash_tests.
Add field nProtocolVersion to struct NetworkUpgrade.
Overwinter peer management and network handshaking.
Add python qa test overwinter_peer_management.
Suhas Daftuar (3):
Track coinbase spends in CTxMemPoolEntry
Don't call removeForReorg if DisconnectTip fails
Fix removeForReorg to use MedianTimePast
jc (1):
read hashReserved from disk block index
syd (2):
Fix libsnark dependency build.
Remove OSX and Windows files from Makefile + share directory.

209
doc/release-notes/release-notes-1.0.15.md

@ -1,209 +0,0 @@
Notable changes
===============
Overwinter network upgrade
--------------------------
The code preparations for the Overwinter network upgrade, as described in [ZIP
200](https://github.com/zcash/zips/blob/master/zip-0200.rst), [ZIP
201](https://github.com/zcash/zips/blob/master/zip-0201.rst), [ZIP
202](https://github.com/zcash/zips/blob/master/zip-0202.rst), [ZIP
203](https://github.com/zcash/zips/blob/master/zip-0203.rst), and [ZIP
143](https://github.com/zcash/zips/blob/master/zip-0143.rst) are
finished and included in this release. Overwinter will activate on testnet at
height 207500, and can also be activated at a specific height in regtest mode
by setting the config option `-nuparams=5ba81b19:HEIGHT`.
However, because the Overwinter activation height is not yet specified for
mainnet, version 1.0.15 will behave similarly as other pre-Overwinter releases
even after a future activation of Overwinter on the network. Upgrading from
1.0.15 will be required in order to follow the Overwinter network upgrade on
mainnet.
Overwinter transaction format
-----------------------------
Once Overwinter has activated, transactions must use the new v3 format
(including coinbase transactions). All RPC methods that create new transactions
(such as `createrawtransaction` and `getblocktemplate`) will create v3
transactions once the Overwinter activation height has been reached.
Overwinter transaction expiry
-----------------------------
Overwinter transactions created by `zcashd` will also have a default expiry
height set (the block height after which the transaction becomes invalid) of 20
blocks after the height of the next block. This can be configured with the
config option `-txexpirydelta`.
UTXO and note merging
---------------------
In order to simplify the process of combining many small UTXOs and notes into a
few larger ones, a new RPC method `z_mergetoaddress` has been added. It merges
funds from t-addresses, z-addresses, or both, and sends them to a single
t-address or z-address.
Unlike most other RPC methods, `z_mergetoaddress` operates over a particular
quantity of UTXOs and notes, instead of a particular amount of ZEC. By default,
it will merge 50 UTXOs and 10 notes at a time; these limits can be adjusted with
the parameters `transparent_limit` and `shielded_limit`.
`z_mergetoaddress` also returns the number of UTXOs and notes remaining in the
given addresses, which can be used to automate the merging process (for example,
merging until the number of UTXOs falls below some value).
UTXO memory accounting
----------------------
The default `-dbcache` has been changed in this release to 450MiB. Users can set
`-dbcache` to a higher value (e.g. to keep the UTXO set more fully cached in
memory). Users on low-memory systems (such as systems with 1GB or less) should
consider specifying a lower value for this parameter.
Additional information relating to running on low-memory systems can be found
here: [reducing-memory-usage.md](https://github.com/zcash/zcash/blob/master/doc/reducing-memory-usage.md).
Changelog
=========
21E14 (1):
Remove obsolete reference to CValidationState from UpdateCoins.
Alex Morcos (1):
Implement helper class for CTxMemPoolEntry constructor
Ariel (2):
add blake2b writer
update SignatureHash according to Overwinter spec
Ashley Holman (1):
TxMemPool: Change mapTx to a boost::multi_index_container
Cory Fields (2):
chainparams: move CCheckpointData into chainparams.h
chainparams: don't use std namespace
Daniel Kraft (1):
Clean up chainparams some more.
Jack Grigg (43):
Scope the ECDSA constant sizes to CPubKey / CKey classes
Enable Bash completion for -exportdir
Check chainValueZat when checking value pool monitoring
Add missing namespace for boost::get
Add viewing key prefix to regtest parameters
zkey_import_export: Synchronize mempools before mining
Use JoinSplitTestingSetup for Boost sighash tests
Network upgrade activation mechanism
Allow changing network upgrade parameters on regtest
Test network upgrade logic
Adjust rewind logic to use the network upgrade mechanism
Add Overwinter to upgrade list
Add method for fetching the next activation height after a given block height
Use a boost::optional for nCachedBranchId
Change UI/log status message for block rewinding
Update quote from ZIP 200
Update SignatureHash tests for transaction format changes
Implement roll-back limit for reorganisation
Add rollback limit to block index rewinding
Remove mempool transactions which commit to an unmineable branch ID
Remove P2WPKH and P2WSH from signing logic
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
Cleanup: Wrap function arguments
Regenerate SignatureHash tests
Make number of inputs configurable in validatelargetx test
Use v3 transactions with caching for validatelargetx benchmark
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
Add branch IDs for current and next block to getblockchaininfo
Check Equihash solution when loading block index
Implement z_mergetoaddress for combining UTXOs and notes
Gate z_mergetoaddress as an experimental feature
Add z_mergetoaddress to release notes
Check upgrade status in wallet_overwintertx RPC test
Document that consensus.chaintip != consensus.nextblock just before an upgrade
Regenerate sighash tests
wallet_mergetoaddress: Add additional syncs to prevent race conditions
make-release.py: Versioning changes for 1.0.15-rc1.
make-release.py: Updated manpages for 1.0.15-rc1.
make-release.py: Updated release notes and changelog for 1.0.15-rc1.
Use block hash comparison for consistency check when loading block index
Overwinter release notes and testnet activation height
make-release.py: Versioning changes for 1.0.15.
make-release.py: Updated manpages for 1.0.15.
Jay Graber (8):
Add getdeprecationinfo rpc call to return current version and deprecation block height.
Make applicable only on mainnet
Add upgrades field to RPC call getblockchaininfo
Implement transaction expiry for Overwinter
Add -txexpirydelta cli option
Add mempool_tx_expiry.py test
Add expiry to z_mergetoaddress
Change rpc_tests to 21
Jonas Nick (1):
Reduce unnecessary hashing in signrawtransaction
Jorge Timón (3):
Chainparams: Introduce CreateGenesisBlock() static function
Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
Marius Kjærstad (1):
Changed http:// to https:// on some links
Mark Friedenbach (1):
Explicitly set tx.nVersion for the genesis block and mining tests
Matt Corallo (5):
Add failing test checking timelocked-txn removal during reorg
Fix removal of time-locked transactions during reorg
Fix comment in removeForReorg
Make indentation in ActivateBestChainStep readable
removeForReorg calls once-per-disconnect-> once-per-reorg
Maxwell Gubler (1):
Fix syntax examples for z_importwallet and export
Nicolas DORIER (1):
Unit test for sighash caching
Pavel Vasin (1):
remove unused NOBLKS_VERSION_{START,END} constants
Pieter Wuille (8):
Add rewind logic to deal with post-fork software updates
Support -checkmempool=N, which runs checks on average once every N transactions
Report non-mandatory script failures correctly
Refactor script validation to observe amounts
BIP143: Verification logic
BIP143: Signing logic
Precompute sighashes
Rename to PrecomputedTransactionData
Simon Liu (11):
Fixes #2793. Backport commit f33afd3 to increase dbcache default.
Add documentation about dbcache.
Add note about dbcache to 1.0.15 release notes.
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.
Implementation of Overwinter transaction format ZIP 202.
Add test to check malformed v1 transaction against Overwinter tx parser
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
Closes #2954 and #2959. Fixes Overwinter issues in sighash_tests.
Add field nProtocolVersion to struct NetworkUpgrade.
Overwinter peer management and network handshaking.
Add python qa test overwinter_peer_management.
Suhas Daftuar (3):
Track coinbase spends in CTxMemPoolEntry
Don't call removeForReorg if DisconnectTip fails
Fix removeForReorg to use MedianTimePast
jc (1):
read hashReserved from disk block index
syd (2):
Fix libsnark dependency build.
Remove OSX and Windows files from Makefile + share directory.

16
doc/release-notes/release-notes-1.0.2.md

@ -1,16 +0,0 @@
ITH4Coinomia (2):
Update security-warnings.md
Update init.cpp
S. Matthew English (1):
enforcing consistency 'tor' to 'Tor'
Sean Bowe (1):
Write R1CS output to file in GenerateParams.
Simon (4):
Fixes #1762 segfault when miner is interrupted.
Fixes #1779 so that sending to multiple zaddrs no longer fails.
Add GenIdentity, an identity function for MappedShuffle.
Add transaction size and zaddr output limit checks to z_sendmany.

35
doc/release-notes/release-notes-1.0.3.md

@ -1,35 +0,0 @@
Jack Grigg (5):
Add --disable-tests flag to zcutils/build.sh
Correctly set CNoteData::witnessHeight when decrementing witness caches
Copy over CNoteData::witnessHeight when updating wallet tx
Add code comments about CNoteData::witnessHeight
Clear witnessHeight and nWitnessCacheSize in ClearNoteWitnessCache
Jay Graber (4):
Document z_sendmany error code messages in payment-api.md
s/Bitcoin/Zcash in JSONRPCError
Change format of z_sendmany error code documentation.
Release-notes.py script to generate release notes and add contributors to authors.md
Sean Bowe (7):
Regression test for constraint system violation.
Improve accuracy of constraint system violation diagnostics.
Add tests for witness `element` and tree `last` methods. Strengthen testing by inserting a different commitment into the tree at each step.
Initialize after profiling messages are suppressed.
Process verification keys to perform online verification.
Add test that `last` and `element` will throw exception when the tree is blank.
Anchors and nullifiers should always be inherited from the parent cache.
Simon (8):
Closes #1833. Format currency amounts in z_sendmany error message.
Closes #1680, temporary fix for rpc deadlock inherited from upstream.
Set default minrelaytxfee to 1000 zatoshis to match upstream.
Mempool will accept tx with joinsplits and the default z_sendmany fee.
Track the correct change witness across chained joinsplits
Closes #1854. z_sendmany selects more utxos to avoid dust change output.
Partial revert of bd87e8c: file release-notes-1.0.2.md to 343b0d6.
Fix threading issue when initializing public params.
ayleph (1):
Correct spelling error in z_sendmany error output

75
doc/release-notes/release-notes-1.0.4.md

@ -1,75 +0,0 @@
Bitcoin Error Log (1):
Edit for grammar: "block chain"
Christian von Roques (1):
bash-completion: Adapt for 0.12 and 0.13
Jack Grigg (32):
Add getlocalsolps and getnetworksolps RPC calls, show them in getmininginfo
Add benchmark for attempting decryption of notes
Add benchmark for incrementing note witnesses
Add -metricsui flag to toggle between persistent screen and rolling metrics
Add -metricsrefreshtime option
Only show metrics by default if stdout is a TTY
Document metrics screen options
Clarify that metrics options are only useful without -daemon and -printtoconsole
Increase length of metrics divider
Write witness caches when writing the best block
Apply miniupnpc patches to enable compilation on Solaris 11
Add an upstream miniupnpc patch revision
Address review comments, tweak strings
Change function names to not clash with Bitcoin, apply to correct binaries
Add bash completion files to Debian package
Always bash-complete the default account
Add Zcash RPC commands to CLI argument completion
Document behaviour of CWallet::SetBestChain
Fix indentation
Generate JS for trydecryptnotes, make number of addresses a variable
Add JS to second block to ensure witnesses are incremented
Skip JoinSplit verification before the last checkpoint
Add a reindex test that fails because of a bug in decrementing witness caches
Make the test pass by fixing the bug!
Only check cache validity for witnesses being incremented or decremented
Fix bug in wallet tests
Extract block-generation wallet test code into a function
Rewrite reindex test to check beyond the max witness cache size
Fix bug in IncrementNoteWitness()
Update payment API docs to recommend -rescan for fixing witness errors
Update version to 1.0.4
Update man pages
Jay Graber (2):
Replace bitcoin with zcash in rpcprotocol.cpp
Gather release notes from previous release to HEAD
Jeffrey Walton (1):
Add porter dev overrides for CC, CXX, MAKE, BUILD, HOST
Scott (1):
Metrics - Don't exclaim unless > 1
Sean Bowe (8):
Isolate verification to a `ProofVerifier` context object that allows verification behavior to be tuned by the caller.
Regression test.
Ensure cache contains valid entry when anchor is popped.
Ensure ProofVerifier cannot be accidentally copied.
Rename Dummy to Disabled.
Add more tests for ProofVerifier.
ASSERT_TRUE -> ASSERT_FALSE
Check that E' points are actually in G2 by ensuring they are of order r.
Simon Liu (8):
Fix stale comment referencing upstream block interval
Add checkpoint at block height 15000
Closes #1857. Fixes bug where tx spending only notes had priority of 0.
Closes #1901. Increase default settings for the max block size when mining and the amount of space available for priority transactions.
Closes #1903. Add fee parameter to z_sendmany.
Fixes #1823. Witness anchors for input notes no longer cross block boundaries.
Increase timeout as laptops on battery power have cpu throttling.
WitnessAnchorData only needs to store one witness per JSOutPoint.
lpescher (3):
Make command line option to show all debugging consistent with similar options
Update documentation to match the #4219 change
Update help message to match the #4219 change

58
doc/release-notes/release-notes-1.0.5.md

@ -1,58 +0,0 @@
Eran Tromer (1):
CreateJoinSplit: add start_profiling() call
Jack Grigg (22):
Extend createjoinsplit to benchmark parallel JoinSplits
Add total number of commitments to getblockchaininfo
Only enable getblocktemplate when wallet is enabled
Only run wallet tests when wallet is enabled
Add a tool for profiling the creation of JoinSplits
Exclude test binaries from make install
Scan the whole chain whenever a z-key is imported
Instruct users to run zcash-fetch-params if network params aren't available
Trigger metrics UI refresh on new messages
Strip out the SECURE flag in metrics UI so message style is detected
Handle newlines in UI messages
Suggest ./zcutil/fetch-params.sh as well
Update debug categories
Rename build-aux/m4/bitcoin_find_bdb48.m4 to remove version
Throw an error if zcash.conf is missing
Show a friendly message explaining why zcashd needs a zcash.conf
Fix gtest ordering broken by #1949
Debian package lint
Generate Debian control file to fix shlibs lint
Create empty zcash.conf during performance measurements
Create empty zcash.conf during coverage checks
Coverage build system tweaks
Jay Graber (1):
Update release process to check in with users who opened resolved issues
Paige Peterson (2):
Create ISSUE_TEMPLATE.md
move template to subdirectory, fix typo, include prompt under describing issue section, include uploading file directly to github ticket as option for sharing logs
Sean Bowe (4):
Add test for IncrementalMerkleTree::size().
Add 'CreateJoinSplit' standalone utility to gitignore.
Add test for z_importkey rescanning from beginning of chain.
Bump version to 1.0.5.
Simon Liu (13):
Fixes #1964 to catch general exception in z_sendmany and catch exceptions as reference-to-const.
Fixes #1967 by adding age of note to z_sendmany logging.
Fixes a bug where the unsigned transaction was logged by z_sendmany after a successful sign and send, meaning that the logged hash fragment would be different from the txid logged by "AddToWallet". This issue occured when sending from transparent addresses, as utxo inputs must be signed. It did not occur when sending from shielded addresses.
Bump COPYRIGHT_YEAR from 2016 to 2017.
Closes #1780. Result of z_getoperationstatus now sorted by creation time of operation
Remove UTF-8 BOM efbbbf from zcash.conf to avoid problems with command line tools
Closes #1097 so zcash-cli now displays license info like zcashd.
Fixes #1497 ZCA-009 by restricting data exporting to user defined folder.
Closes #1957 by adding tx serialization size to listtransactions output.
Fixes #1960: z_getoperationstatus/result now includes operation details.
Update walletbackup.py qa test to use -exportdir option
Add missing header required by std::accumulate
Increase timeout for z_sendmany transaction in wallet.py qa test
Wladimir J. van der Laan (1):
rpc: Implement random-cookie based authentication

148
doc/release-notes/release-notes-1.0.6.md

@ -1,148 +0,0 @@
Cory Fields (4):
Depends: Add ZeroMQ package
travis: install a recent libzmq and pyzmq for tests
build: Make use of ZMQ_CFLAGS
build: match upstream build change
Daira Hopwood (2):
Better error reporting for the !ENABLE_WALLET && ENABLE_MINING case.
Address @str4d's comment about the case where -gen is not set. Also avoid shadowing mineToLocalWallet variable.
Daniel Cousens (3):
init: amend ZMQ flag names
init: add zmq to debug categories
zmq: prepend zmq to debug messages
Jack Grigg (33):
Update comment
Remove OpenSSL PRNG reseeding
Address review comments
Fix linking error in CreateJoinSplit
Add compile flag to disable compilation of mining code
Upgrade OpenSSL to 1.1.0d
Show all JoinSplit components in getrawtransaction and decoderawtransaction
Use a more specific exception class for note decryption failure
Switch miner to P2PKH, add -mineraddress option
Update help text for mining options
Correct #ifdef nesting of miner headers and helper functions
Add ZMQ libs to zcash-gtest
Fix python syntax in ZMQ RPC test
[qa] py2: Unfiddle strings into bytes explicitly in ZMQ RPC test
Bitcoin -> Zcash in ZMQ docs
Add ZeroMQ license to contrib/debian/copyright
[depends] ZeroMQ 4.2.1
Clarify that user only needs libzmq if not using depends system
Bump suggested ZMQ Debian package to 4.1 series
Add -minetolocalwallet flag, enforced on -mineraddress
Add test to check for presence of vpub_old & vpub_new in getrawtransaction
Add a flag for enabling experimental features
Require -experimentalmode for wallet encryption
Migrate Zcash-specific code to UniValue
Manually iterate over UniValue arrays in tests
Remove JSON Spirit from contrib/debian/copyright
unsigned int -> size_t for comparing with UniValue.size()
[cleanup] Remove unused import
[cleanup] Simplify test code
Squashed 'src/univalue/' content from commit 9ef5b78
Update UniValue includes in Zcash-specific code
UniValue::getValues const reference
Get rid of fPlus argument to FormatMoney in Zcash-specific code
Jeff Garzik (4):
Add ZeroMQ support. Notify blocks and transactions via ZeroMQ
UniValue: prefer .size() to .count(), to harmonize w/ existing tree
UniValue: export NullUniValue global constant
Convert tree to using univalue. Eliminate all json_spirit uses.
Johnathan Corgan (5):
zmq: require version 4.x or newer of libzmq
zmq: update and cleanup build-unix, release-notes, and zmq docs
autotools: move checking for zmq library to common area in configure.ac
zmq: update docs to reflect feature is compiled in automatically if possible
zmq: point API link to 4.0 as that is what we are conforming to [Trivial]
Jonas Schnelli (24):
QA: Add ZeroMQ RPC test
depends: fix platform specific packages variable
[travis] add zmq python module
use CBlockIndex* insted of uint256 for UpdatedBlockTip signal
[ZMQ] refactor message string
[ZMQ] append a message sequence number to every ZMQ notification
fix rpc-tests.sh
extend conversion to UniValue
expicit set UniValue type to avoid empty values
special threatment for null,true,false because they are non valid json
univalue: add support for real, fix percision and make it json_spirit compatible
univalue: correct bool support
fix rpc unit test, plain numbers are not JSON compatible object
remove JSON Spirit UniValue wrapper
Remove JSON Spirit wrapper, remove JSON Spirit leftovers
fix rpc batching univalue issue
fix missing univalue types during constructing
fix univalue json parse tests
univalue: add type check unit tests
fix util_tests.cpp clang warnings
fix rpcmining/getblocktemplate univalue transition logic error
remove univalue, prepare for subtree
[Univalue] add univalue over subtree
remove $(@F) and subdirs from univalue make
João Barbosa (2):
Add UpdatedBlockTip signal to CMainSignals and CValidationInterface
Fix ZMQ Notification initialization and shutdown
Paragon Initiative Enterprises, LLC (1):
Use libsodium's CSPRNG instead of OpenSSL's
Scott (1):
Update random.h
Sean Bowe (3):
Bump protocol version in release process if necessary.
Fix use after free in transaction_tests.
Update libsnark.
Simon Liu (16):
Closes #2057 by adding extra zrpcunsafe logging
Update z_sendmany logging
Add test to verify z_sendmany logging
Update test to verify order of zrpcunsafe log messages
Closes #2045 by allowing z_sendmany with 0 fee
Closes #2024 by documenting and testing method field in z_getoperationstatus
Add parameter interaction, where zrpcunsafe implies zrpc
Update zrpc vs zrpcunsafe logging in z_sendmany operation
Add test for z_sendmany with fee of 0
Update test to check for more joinsplit related fields in getrawtransaction
Add comment about fix for #2026.
Update test to check for updated error messages in AmountFromValue().
Bump version to 1.0.6 as part of release process
Debian man pages updated as part of release process
Update release notes as part of release process
Update debian changelog as part of release process
Wladimir J. van der Laan (10):
Simplify RPCclient, adapt json_parse_error test
util: Add ParseInt64 and ParseDouble functions
univalue: add strict type checking
Don't go through double in AmountFromValue and ValueFromAmount
Get rid of fPlus argument to FormatMoney
Changes necessary now that zero values accepted in AmountFromValue
rpc: Accept scientific notation for monetary amounts in JSON
rpc: Make ValueFromAmount always return 8 decimals
univalue: Avoid unnecessary roundtrip through double for numbers
util: use locale-independent parsing in ParseDouble
fanquake (3):
[depends] zeromq 4.0.7
[depends] ZeroMQ 4.1.4
[depends] ZeroMQ 4.1.5
isle2983 (1):
[copyright] add MIT License copyright header to zmq_sub.py
mrbandrews (1):
Fixes ZMQ startup with bad arguments.
paveljanik (1):
[Trivial] start the help texts with lowercase

4
doc/release-notes/release-notes-1.0.7-1.md

@ -1,4 +0,0 @@
Jay Graber (3):
Add -t to git fetch for release-notes.py
Update version to 1.0.7-1
Update auto-generated manpages to 1.0.7-1

165
doc/release-notes/release-notes-1.0.7.md

@ -1,165 +0,0 @@
Adam Weiss (1):
Buffer log messages and explicitly open logs
Alex van der Peet (1):
New RPC command disconnectnode
Allan Niemerg (1):
Pause mining during joinsplit creation
Casey Rodarmor (1):
Don't share objects between TestInstances
Cory Fields (2):
locking: teach Clang's -Wthread-safety to cope with our scoped lock macros
locking: add a quick example of GUARDED_BY
Daira Hopwood (1):
Don't assume sizes of unsigned short and unsigned int in GetSizeOfCompactSize and WriteCompactSize. Fixes #2137
Daniel Kraft (1):
Fix univalue handling of \u0000 characters.
Florian Schmaus (1):
Add BITCOIND_SIGTERM_TIMEOUT to OpenRC init scripts
Forrest Voight (1):
When processing RPC commands during warmup phase, parse the request object before returning an error so that id value can be used in the response.
Gavin Andresen (2):
configure --enable-debug changes
Testing infrastructure: mocktime fixes
Jack Grigg (11):
Remove reference to -reindex-chainstate
Treat metrics screen as non-interactive for now
Adjust gen-manpages.sh for Zcash, use in Debian builds
Regenerate and collate Zcash manpages, delete Bitcoin ones
Update release process with gen-manpages.sh
Adjust blockheaderToJSON() for Zcash block header
Adjust fundrawtransaction RPC test for Zcash
Re-encode t-addrs in disablewallet.py with Zcash prefixes
BTC -> ZEC in paytxfee RPC docs
Update default RPC port in help strings
Fix typo in listbanned RPC keys
Jay Graber (4):
Add rpc test for prioritisetransaction
Inc num of txs in test mempool
Update release to 1.0.7, generate manpages
Add 1.0.7 release notes and update authors.md
Jonas Schnelli (23):
[net] extend core functionallity for ban/unban/listban
[RPC] add setban/listbanned/clearbanned RPC commands
[QA] add setban/listbanned/clearbanned tests
[net] remove unused return type bool from CNode::Ban()
[RPC] extend setban to allow subnets
rename json field "bannedtill" to "banned_until"
setban: rewrite to UniValue, allow absolute bantime
fix CSubNet comparison operator
setban: add RPCErrorCode
add RPC tests for setban & disconnectnode
fix missing lock in CNode::ClearBanned()
setban: add IPv6 tests
fix lock issue for QT node diconnect and RPC disconnectnode
fundrawtransaction tests
UniValue: don't escape solidus, keep espacing of reverse solidus
[REST] add JSON support for /rest/headers/
[QA] fix possible reorg issue in rawtransaction.py/fundrawtransaction.py RPC test
[QA] remove rawtransactions.py from the extended test list
[QA] add testcases for parsing strings as values
[bitcoin-cli] improve error output
fix and extend CBitcoinExtKeyBase template
extend bip32 tests to cover Base58c/CExtKey decode
don't try to decode invalid encoded ext keys
Jorge Timón (1):
Consensus: Refactor: Separate Consensus::CheckTxInputs and GetSpendHeight in CheckInputs
Leo Arias (1):
Fix the path to the example configuration
Luke Dashjr (1):
Fix various warnings
Matt Corallo (4):
Small tweaks to CCoinControl for fundrawtransaction
Add FundTransaction method to wallet
Add fundrawtransaction RPC method
Assert on probable deadlocks if the second lock isnt try_lock
Murilo Santana (1):
Fix sha256sum on busybox by using -c instead of --check
Paul Georgiou (1):
Update Linearize tool to support Windows paths
Pavel Vasin (1):
remove unused inv from ConnectTip()
Peter Todd (2):
Add getblockheader RPC call
Improve comment explaining purpose of MAX_MONEY constant
Philip Kaufmann (3):
use const references where appropriate
[init] add -blockversion help and extend -upnp help
make CAddrMan::size() return the correct type of size_t
Pieter Wuille (3):
Do not ask a UI question from bitcoind
Add DummySignatureCreator which just creates zeroed sigs
Reduce checkpoints' effect on consensus.
Simon Liu (14):
Alert 1000
Alert 1001
Add assert to check alert message length is valid
Fix bug where test was generating but not saving keys to wallet on disk.
Update founders reward addresses for testnet
Keep first three original testnet fr addresses so existing coinbase transactions on testnet remain valid during upgrade. New addresses will be used starting from block 53127.
Closes #2083 and #2088. Update release process documentation
Closes #2084. Fix incorrect year in timestamp.
Closes #2112 where z_getoperationresult could return stale status.
Add mainnet checkpoint at block 67500
Add testnet checkpoint at block 38000
Closes #1969. Default fee now sufficient for large shielded tx.
Part of #1969. Changing min fee calculation also changes the dust threshold.
Part of #1969. Update tests to avoid error 'absurdly high fee' from change in min fee calc.
Stephen (1):
Add paytxfee to getwalletinfo, warnings to getnetworkinfo
Wladimir J. van der Laan (10):
rpc: make `gettxoutsettinfo` run lock-free
test: Move reindex test to standard tests
rpc: Remove chain-specific RequireRPCPassword
univalue: Avoid unnecessary roundtrip through double for numbers
rpc: Accept strings in AmountFromValue
Fix crash in validateaddress with -disablewallet
Improve proxy initialization
tests: Extend RPC proxy tests
build: Remove -DBOOST_SPIRIT_THREADSAFE
tests: Fix bitcoin-tx signing testcase
dexX7 (1):
Return all available information via validateaddress
mruddy (1):
add tests for the decodescript rpc. add mention of the rpc regression tests to the testing seciton of the main readme.
nomnombtc (9):
add script to generate manpages with help2man
add gen-manpages.sh description to README.md
add autogenerated manpages by help2man
add doc/man/Makefile.am to include manpages
add doc/man to subdir if configure flag --enable-man is set
add conditional for --enable-man, default is yes
change help string --enable-man to --disable-man
regenerated all manpages with commit tag stripped, also add bitcoin-tx
improved gen-manpages.sh, includes bitcoin-tx and strips commit tag, now also runs binaries from build dir by default, added variables for more control
zathras-crypto (1):
Exempt unspendable transaction outputs from dust checks

16
doc/release-notes/release-notes-1.0.8-1.md

@ -1,16 +0,0 @@
Daira Hopwood (3):
Don't rely on a finite upper bound on fee rate or priority.
Simplify JoinSplit priority calculation. refs 1896
Add check for JoinSplit priority as calculated by CCoinsViewCache::GetPriority.
Jack Grigg (1):
Use a larger -rpcclienttimeout for slow performance measurements
Nathan Wilcox (2):
Bump version numbers for v1.0.8-1.
Commit the changes from gen-manpages.sh, except manually tweak the version strings.
str4d (2):
Update tests to check actual infinity as well as INF_FEERATE
Add unit test for security issue 2017-04-11.a

170
doc/release-notes/release-notes-1.0.8.md

@ -1,170 +0,0 @@
Adam Brown (1):
[doc] Update port in tor.md
Bob McElrath (1):
Add explicit shared_ptr constructor due to C++11 error
Cory Fields (2):
libevent: add depends
libevent: Windows reuseaddr workaround in depends
Daira Hopwood (15):
Remove src/qt.
License updates for removal of src/qt.
Correct license text for LGPL.
Remove QT gunk from Makefiles.
Remove some more QT-related stragglers.
Update documentation for QT removal.
Update which libraries are allowed to be linked to zcashd by symbol-check.py.
Remove NO_QT make option.
.gitignore cache/ and venv-mnf/
Remove unused packages and patches.
Delete -rootcertificates from bash completion script.
Line-wrap privacy notice. Use <> around URL and end sentence with '.'. Include privacy notice in help text for zcashd -help.
Update version numbers.
Improvement to release process doc.
Generate man pages.
Daniel Cousens (1):
torcontrol: only output disconnect if -debug=tor
Gregory Maxwell (3):
Avoid a compile error on hosts with libevent too old for EVENT_LOG_WARN.
Do not absolutely protect local peers from eviction.
Decide eviction group ties based on time.
Ian Kelling (1):
Docs: add details to -rpcclienttimeout doc
Jack Gavigan (2):
Removed markdown from COPYING
Updated the Bitcoin Core copyright statement
Jack Grigg (25):
Add anchor to output of getblock
Migrate IncrementalMerkleTree memory usage calls
Add tests for getmempoolinfo
Usability improvements for z_importkey
Implement an AtomicTimer
Use AtomicTimer for more accurate local solution rate
Metrics: Move local solution rate into stats
Metrics: Improve mining status
Expand on reasons for mining being paused
Simplify z_importkey by making rescan a string
Revert "Closes #1680, temporary fix for rpc deadlock inherited from upstream."
Add libevent to zcash-gtest
[depends] libevent 2.1.8
Test boolean fallback in z_importkey
Require that z_importkey height parameter be in valid range
Update LocalSolPS test
Add AtomicTimer tests
Revert "Revert "rpc-tests: re-enable rpc-tests for Windows""
Wrap error string
Fix typo
torcontrol: Improve comments
torcontrol: Add unit tests for Tor reply parsers
torcontrol: Fix ParseTorReplyMapping
torcontrol: Check for reading errors in ReadBinaryFile
torcontrol: Log invalid parameters in Tor reply strings where meaningful
Jay Graber (5):
Document returned results of submitblock
Edit release-process.md for clarity
Add security warning to zcash-cli --help and --version message output
Add security warning to zcashd metrics display
Add security message to license text, rm url from translation string
Jonas Schnelli (1):
Fix torcontrol.cpp unused private field warning
Karl-Johan Alm (4):
Added std::unique_ptr<> wrappers with deleters for libevent modules.
Switched bitcoin-cli.cpp to use RAII unique pointers with deleters.
Added some simple tests for the RAII-style events.
Added EVENT_CFLAGS to test makefile to explicitly include libevent headers.
Luke Dashjr (1):
Skip RAII event tests if libevent is built without event_set_mem_functions
MarcoFalke (2):
[doc] [tor] Clarify when to use bind
torcontrol debug: Change to a blanket message that covers both cases
Matt Quinn (1):
Consolidate individual references to the current maximum peer connection value of 125 into a single constant declaration.
Nathaniel Mahieu (1):
Clarify documentation for running a tor node
Patrick Strateman (1):
Remove vfReachable and modify IsReachable to only use vfLimited.
Pavel Janík (3):
Implement REST mempool API, add test and documentation.
Prevent -Wshadow warnings with gcc versions 4.8.5, 5.3.1 and 6.2.1.
Make some global variables less-global (static)
Peter Todd (2):
Better error message if Tor version too old
Connect to Tor hidden services by default
Pieter Wuille (3):
Implement accurate memory accounting for mempool
Separate core memory usage computation in core_memusage.h
Fix interrupted HTTP RPC connection workaround for Python 3.5+
Sean Bowe (2):
Introduce librustzcash and Rust to depends system.
Allow Rust-language related assets to be disabled with `--disable-rust`.
Simon Liu (4):
Remove stale Qt comments and dead code
Remove QT translation support files
Remove redundant gui options from build scripts
Closes #2186. RPC getblock now accepts height or hash.
Wladimir J. van der Laan (28):
doc: remove documentation for rpcssl
qa: Remove -rpckeepalive tests from httpbasics
Remove rpc_boostasiotocnetaddr test
build: build-system changes for libevent
tests: GET requests cannot have request body, use POST in rest.py
evhttpd implementation
Implement RPCTimerHandler for Qt RPC console
Document options for new HTTP/RPC server in --help
Fix race condition between starting HTTP server thread and setting EventBase()
Move windows socket init to utility function
Revert "rpc-tests: re-enable rpc-tests for Windows"
init: Ignore SIGPIPE
http: Disable libevent debug logging, if not explicitly enabled
rpc: Split option -rpctimeout into -rpcservertimeout and -rpcclienttimeout
Make RPC tests cope with server-side timeout between requests
chain: define enum used as bit field as uint32_t
auto_ptr → unique_ptr
bitcoin-cli: More detailed error reporting
depends: Add libevent compatibility patch for windows
bitcoin-cli: Make error message less confusing
test: Avoid ConnectionResetErrors during RPC tests
net: Automatically create hidden service, listen on Tor
torcontrol improvements and fixes
doc: update docs for Tor listening
tests: Disable Tor interaction
Fix memleak in TorController [rework]
tor: Change auth order to only use HASHEDPASSWORD if -torpassword
torcontrol: Explicitly request RSA1024 private key
calebogden (1):
Fixing typos on security-check.py and torcontrol.cpp
fanquake (1):
[depends] libevent 2.1.7rc
instagibbs (1):
Add common failure cases for rpc server connection failure
paveljanik (1):
[TRIVIAL] Fix typo: exactmath -> exactmatch
unsystemizer (1):
Clarify `listenonion`

90
doc/release-notes/release-notes-1.0.9.md

@ -1,90 +0,0 @@
Amgad Abdelhafez (2):
Update timedata.cpp
Update timedata.cpp
Daira Hopwood (4):
Fix an error reporting bug due to BrokenPipeError and ConnectionResetError not existing in Python 2. refs #2263
Alert 1002 (versions 1.0.0-1.0.2 inclusive).
Alert 1003 (versions 1.0.3-1.0.8 inclusive).
Disable building Proton by default.
Jack Grigg (14):
Fix prioritisetransaction RPC test
torcontrol: Handle escapes in Tor QuotedStrings
torcontrol: Add missing copyright header
Convert Zcash versions to Debian format
[manpage] Handle build numbers in versions
Address Daira's comments
Address Daira's further comments
Correctly handle three-digit octals with leading digit 4-7
Check that >3-digit octals are truncated.
Implement automatic shutdown of deprecated Zcash versions
Wrap messages nicely on metrics screen
Regenerate miner tests
Add a benchmark for calling ConnectBlock on a block with many inputs
Remove additional sources of determinism from benchmark archive
Jay Graber (2):
Change help text examples to use Zcash addresses
Poll on getblocktemplate result rather than use bare sleep to avoid race condition.
Nathan Wilcox (39):
[Direct master commit] Fix a release snafu in debian version string.
Show toolchain versions in build.sh.
Start on a make-release.py script; currently just arg parsing and unittests [unittests fail].
Update version spec by altering test; also update regex to pass single 0 digits in major/minor/patch.
Add another case from debian-style versions.
Add all of the zcash release tags in my current repo as positive test vector.
Add support for beta/rc release versions.
Add version sorting, assert that RELEASE_PREV is the most recent release.
Make SystemExit errors less redundant in output; verify clean git status on master.
Always run unittests prior to actual runs.
Make --help output clean by not running self-test.
Add an option to run against a different repo directory.
Make sure to pull the latest master.
Exit instead of raising an unexpected exception, since it's already logged.
Implement `PathPatcher` abstraction, `clientversion.h` rewrite, and build numbering w/ unittests.
Implement the IS_RELEASE rule for betas.
Generalize buildnum patching for both `clientversion.h` and `configure.ac`.
Modify the `APPROX_RELEASE_HEIGHT`.
Remove portions of `./doc/release-process.md` now implemented in `make-release.py`.
Switch from `sh_out_logged` to `sh_log`.
Shorten the arg log line.
Commit the version changes and build.
Generate manpages; commit that; improve error output in sh_log.
Polish logging a bit more.
Tidy up / systematize logging output a bit more.
First full-release-branch version of script; rewrite large swatch of release-process.md. [Manually tested.]
Enable set -u mode.
Fix a variable name typo.
Reuse zcash_rpc.
Do not use `-rpcwait` on all `zcash_rpc` invocations, only block when starting zcashd.
Fix `release-process.md` doc usage for `make-release.py` to have correct arguments and order.
Include release version in commit comments.
Examine all future versions which are assumed to follow the same Version parser schema.
Consider both beta and rc versions to be `IS_RELEASE == false`.
Add a few more version strings to positive parser test.
Define the deprecation policy for 1.0.9.
Clarify that the feature is automated *shutdown*.
make-release.py: Versioning changes for 1.0.9.
make-release.py: Updated manpages for 1.0.9.
Paige Peterson (4):
wallet backup instructions
typo and rewording edits
str4d and Ariel's suggestions
specify exportdir being within homedirectory
Sean Bowe (1):
Check that pairings work properly when the G1 point is at infinity.
Simon Liu (5):
Add AMQP 1.0 support via Apache Qpid Proton C++ API 0.17.0
Add --disable-proton flag to build.sh. Proton has build/linker issues with gcc 4.9.2 and requires gcc 5.x.
Fix proton build issue with debian jessie, as used on CI servers.
Change regtest port to 18344. Closes #2269.
Patch to build Proton with minimal dependencies.
emilrus (1):
Replace bitcoind with zcashd

180
doc/release-notes/release-notes-1.1.0-rc1.md

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

193
doc/release-notes/release-notes-1.1.0.md

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

286
doc/release-notes/release-notes-1.1.1-rc1.md

@ -1,286 +0,0 @@
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.

290
doc/release-notes/release-notes-1.1.1-rc2.md

@ -1,290 +0,0 @@
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.

336
doc/release-notes/release-notes-1.1.1.md

@ -1,336 +0,0 @@
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.

96
doc/release-notes/release-notes-1.1.2-rc1.md

@ -1,96 +0,0 @@
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.

99
doc/release-notes/release-notes-1.1.2.md

@ -1,99 +0,0 @@
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.

176
doc/release-notes/release-notes-2.0.0-rc1.md

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

199
doc/release-notes/release-notes-2.0.0.md

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

244
doc/release-notes/release-notes-2.0.1-rc1.md

@ -1,244 +0,0 @@
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)
Changelog
=========
David Mercer (2):
libsnark: convert long long and unsigned long to C++11 fixed-width types
libsnark: convert 0ul to UINT64_C(0)
Eirik Ogilvie-Wigley (22):
Rename map to include sprout
Add sapling spending keys to z_exportwallet
Rename AddZKey to include sprout
Move AddSpendingKeyToWallet
Return more information when adding a spending key
Add sapling support to z_importwallet
Export comment on HDSeed and fingerprint with wallet
Export zip32 metadata with sapling keys
Don't export empty zip32 metadata
Allow more information to be returned when an async rpc fails
Use utility method to wait for async operations
Remove unneeded semicolons
Remove unused imports
Allow passing timeout parameter to wait_and_assert_operationid_status
Add test for signing raw transactions offline
Incorporate APPROX_RELEASE_HEIGHT when determining what consensus branch to sign with
Allow passing branchId when calling signrawtransaction
Remove unused import
Address need not be optional when adding sapling keys
Use max priority for all shielded transfers
Move FIXME comment to where the fix should happen
Add newly discovered sapling addresses to the wallet
George Tankersley (2):
Refactor ContextualCheckBlock tests (#3187)
Refactor ContextualCheckBlock tests
Jack Grigg (83):
[ci-workers] Install Python modules in a virtualenv
[ci-workers] Handle user home directories outside /home
[ci-workers] Handle ansible_processor being either a string or a list
[ci-workers] Add support for MacOSX
[ci-workers] Add a tag for updating dependencies
[ci-workers] Add curl and cmake to dependencies
[ci-workers] README cleanups
[ci-workers] Add pkg-config to general dependencies
depends: Correctly configure Rust when cross-compiling
depends: Configure librustzcash for cross-compiling
depends: Fix BDB naming issue when cross-compiling
zcutil/build.sh: Use $HOST to specify the depends prefix
configure: Don't require RELRO and BIND_NOW when cross-compiling
Measure Windows console size for metrics UI
Use -O1 for darwin and mingw32 release builds
Clean up libzcash CPPFLAGS, CXXFLAGS, and LDFLAGS
zcutil/build.sh: Use config.site to set default ./configure settings
zcutil/build.sh: Remove --enable-werror from default configuration
Pass correct compiler, linker, and flags into libsnark
Use boost::filesystem::path::string() instead of path::native()
Metrics UI: Enable virtual terminal sequence processing on Windows
Metrics UI: Tell Windows users how to stop zcashd
depends: Pass correct compiler, linker, and flags into googletest
configure: Don't add -ldl to RUST_LIBS for mingw32
test: Fix comment in WalletTests.FindMySaplingNotes
Add Sapling support to GetFilteredNotes() and GetUnspentFilteredNotes()
Add Sapling support to z_getbalance and z_gettotalbalance
Metrics UI: Fall back to 80 cols if GetConsoleScreenBufferInfo() fails
libsnark: Adjust SHA256 K value type to match the constant
libsnark: Use mp_limb_t cast instead of uint64_t when masking bigint.data
libsnark: Fix stale comment
rpc: Clarify Sprout shielded addresses in help text
rpc: Clarify ivk balance issues in help text
Move GetSpendingKeyForPaymentAddress visitor into wallet.h
wallet: Add HaveSpendingKeyForPaymentAddress visitor
rpcwallet: Add TransactionBuilder argument to AsyncRPCOperation_sendmany
rpcwallet: Prevent use of both Sprout and Sapling addresses in z_sendmany
rpcwallet: Add Sapling support to z_sendmany
Define additional booleans for readability
Ensure SCOPED_TRACE falls out of scope when necessary
Revert NU activation heights in reverse order
Fix test after refactor to check bacd-cb-height rule on a genesis block
Rename GetFirstBlockTransaction() to GetFirstBlockCoinbaseTx()
libsnark: Force constants used in test comparisons to be unsigned
libsnark: Use format macro constants for printing fixed-width values
Rename z_inputs_ to z_sprout_inputs_
Minor cleanups
Fix RPC test that checks exact wording of cleaned-up error message
Fix file permissions of wallet_sapling RPC test
Update librustzcash with ZIP 32 APIs
ZIP 32 Sapling structs
Store HDSeed in CBasicKeyStore
Store HDSeed in CCryptoKeyStore
wallet: Store HDSeed and chain data
wallet: Store Sapling key metadata indexed by ivk
wallet: Switch from SaplingSpendingKey to SaplingExtendedSpendingKey
init: Generate a new HD seed on startup
wallet: Comment out HDSeed and CHDChain persistence to disk
Add ZIP 32 usage to release notes
wallet: Don't allow an HDSeed to be overwritten
Bugfix: Use time instead of block height for Sapling key metadata
net: Check against the current epoch's version when rejecting nodes
Extract a helper method for finding the next epoch
net: Check against the next epoch's version when evicting peers
net: Check against the current epoch's version when disconnecting peers
qa: Test both Overwinter and Sapling peer management
Use ovk directly in the TransactionBuilder API instead of fvk
Generate an ovk to encrypt outCiphertext for t-addr senders
Revert "Disable Sapling features on mainnet"
Use the correct empty memo for Sapling outputs
Add Sapling support to z_shieldcoinbase
Revert "Get rid of consensus.fPowAllowMinDifficultyBlocks."
Revert "Remove testnet-only difficulty rules"
Allow minimum-difficulty blocks on testnet and regtest
Only enable min-difficulty blocks on testnet from a particular height
Update wallet_listreceived test for now-correct empty Sapling memos
Rename min-difficulty flag to remove off-by-one in the name
Explicitly check the min-difficulty flag against boost::none
Position PoW.MinDifficultyRules test after rule activates
Fix pyflakes warnings
Store ExtFVK with encrypted Sapling spending key instead of FVK
Persist Sapling payment address to IVK map
Ignore decoding errors during -zapwallettxes
Jay Graber (5):
s/jsoutindex/outindex for sapling outputs
z_listunspent sapling support - needs refactor
Add rpc test for sprout txs z_listunspent
Modify comments
Modify GetNullifiersForAddresses for Sapling
Jonas Schnelli (3):
[Wallet] extend CKeyMetadata with HD keypath Zcash: modified for zip32
[Wallet] print hd masterkeyid in getwalletinfo Zcash: modified for zip32
[Wallet] ensure CKeyMetadata.hdMasterKeyID will be cleared during SetNull() Zcash: modified for zip32
Larry Ruane (5):
generalize mininode.py protocol versioning
Test peer banning logic in both pre- and post-initial block download states
Sapling support for z_listreceivedbyaddress
z_listunspent rpc unit test: add testing for Sapling
fix z_listunspent includeWatchonly logic
Marius Kjærstad (3):
Fix for license not being valid
Update debian package copyright license
Missing comma in debian package copyright license
Sean Bowe (1):
Check commitment validity within the decryption API for Sapling note plaintexts.
Simon Liu (59):
Rename FindMyNotes to FindMySproutNotes.
Rename GetNoteNullifier to GetSproutNoteNullifier.
Rename mapNullifiersToNotes to mapSproutNullifiersToNotes.
Rename CWallet::AddToSpends methods for clarity.
Rename mapTxNullifiers to mapTxSproutNullifiers.
Add ivk member variable and equality comparators to SaplingNoteData class.
Update CWallet::MarkAffectedTransactionsDirty() for Sapling.
Update CWallet::UpdatedNoteData() for Sapling.
Create CWallet::AddToSaplingSpends() to track Sapling nullifiers.
Update test to pass in required cm to SaplingNotePlaintext::decrypt().
Create CWallet::FindMySaplingNotes()
Rename IsFromMe(nullifier) to IsSproutNullifierFromMe(nullifier).
Create CWallet::IsSaplingNullifierFromMe()
Remove dead code in CWalletTx::GetAmounts() as filed in issue #3434.
Cleanup CWalletTx::GetAmounts() for clarity. No-op.
Update CWalletTx::GetAmounts() to return COutputEntry for Sapling valueBalance.
Add caching and updating of Sapling note nullifier.
Update CWallet::IsSpent() to check Sapling nullifiers.
Clean up names of unit tests in gtest/test_wallet.cpp.
Add test for CWalletTx::SetSaplingNoteData()
Iterate over mapSaplingFullViewingKeys with ivk->fvk mapping (1:1).
Refactor IsSpent(nullifier) for Sprout and Sapling domain separation.
Fix code review nits.
Add two new wallet tests: FindMySaplingNotes, SaplingNullifierIsSpent.
Add new wallet test: NavigateFromSaplingNullifierToNote
Add new wallet test: UpdatedSaplingNoteData.
Add new wallet tests: SpentSaplingNoteIsFromMe.
Rename wallet tests for clarity between Sprout and Sapling.
Fix typo in variable name in test.
Fix inaccurate comments in test.
Fix typo in parameter name.
Update CWallet::GetConflicts for Sapling.
Add new wallet test: SetSaplingNoteAddrsInCWalletTx.
Add new wallet test: GetConflictedSaplingNotes
Add new wallet test: MarkAffectedSaplingTransactionsDirty
Update wallet unit tests to revert upgraded network parameters.
Clean up wallet unit tests: replace .value() with .get() for clarity.
Fix comment in CWallet::SyncMetaData.
Refactor: rename setLockedNotes -> setLockedSproutNotes
Refactor: rename UnlockAllNotes -> UnlockAllSproutNotes
Refactor: rename ListLockedNotes -> ListLockedSproutNotes
Add methods to store SaplingOutPoint in setLockedSaplingNotes
Add unit test SaplingNoteLocking
Update comment for test ContextualCheckBlockTest.BlockSproutRulesRejectOtherTx
Add Sapling fields to JSON RPC output using TxToJSON.
Update qa test to check for Sapling related JSON fields.
Closes #3534. Do not use APPROX_RELEASE_HEIGHT to get consensus branch id when in regtest mode.
For #3533. Replace asserts with JSON errors.
Update qa test as offline regtest nodes need branch id passed in.
Fix rebasing of CWallet::GetNullifiersForAddresses
Cleanup to address review comments.
Add test that Sapling shielded transactions have MAX_PRIORITY
Closes #3560. Update Sapling note data correctly when importing a key.
For #3546. Shielded tx with missing inputs are not treated as orphans.
For #3546. Improve estimated tx size for Sapling outputs.
Fix deadlock from calling CWallet::AddSaplingIncomingViewingKey instead of CBasicKeyStore::AddSaplingIncomingViewingKey
Fix file permissions of QA test wallet_persistence.py
Update wallet_persistence test to verify wallet txs are persisted across restarts.
Update wallet_persistence test to verify spending notes after restart.
WO (4):
Fix a bug of Windows binary
Add an assert for num_bits function
long -> int64_t
The long data type is replaced with int64_t
Za Wilcox (1):
Revise help output for z_sendmany
mdr0id (8):
Resolve final edits for README
Revert "wallet: Comment out HDSeed and CHDChain persistence to disk"
Persist Sapling key material in the wallet to disk
Serialize Sapling data in CWalletTx
Adding in rpc wallet sap for test_bitcoin
Add gtest coverage of Sapling wallet persistence
make-release.py: Versioning changes for 2.0.1-rc1.
make-release.py: Updated manpages for 2.0.1-rc1.

276
doc/release-notes/release-notes-2.0.1.md

@ -1,276 +0,0 @@
Notable changes
===============
Enabled Sapling features for mainnet
------------------------------------
This release adds significant support for Sapling to the wallet and RPC interface. Sapling will activate at block 419200, which is expected to be mined on the 28th of October 2018. Users running v2.0.0 nodes (which are consensus-compatible with Sapling) will follow the network upgrade, but must upgrade to v2.0.1 in order to send or receive Sapling shielded transactions.
Minimum Difficulty Blocks allowed on testnet
--------------------------------------------
Sapling activated on testnet at block 280000. Users running v2.0.0 nodes should upgrade to v2.0.1 which introduces a consensus rule change to allow minimum difficulty blocks to be mined from block 299188, thereby splitting the chain. In addition, users running v2.0.1 nodes no longer need to specify `-experimentalfeatures` and `-developersapling` to use Sapling functionality on testnet.
[Pull request](https://github.com/zcash/zcash/pull/3559)
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)
Fix Signing Raw Transactions with Unsynced Offline Nodes
--------------------------------------------------------
With v2.0.0, in `signrawtransaction` the consensus branch ID (which is used to construct the transaction) was estimated using the chain height. With v2.0.1 this has been improved by also considering the `APPROX_RELEASE_HEIGHT` of the release, and a new parameter to allow the caller to manually override the consensus branch ID that zcashd will use.
[Pull request](https://github.com/zcash/zcash/pull/3520)
Changelog
=========
David Mercer (2):
libsnark: convert long long and unsigned long to C++11 fixed-width types
libsnark: convert 0ul to UINT64_C(0)
Eirik Ogilvie-Wigley (24):
Rename map to include sprout
Add sapling spending keys to z_exportwallet
Rename AddZKey to include sprout
Move AddSpendingKeyToWallet
Return more information when adding a spending key
Add sapling support to z_importwallet
Export comment on HDSeed and fingerprint with wallet
Export zip32 metadata with sapling keys
Don't export empty zip32 metadata
Allow more information to be returned when an async rpc fails
Use utility method to wait for async operations
Remove unneeded semicolons
Remove unused imports
Allow passing timeout parameter to wait_and_assert_operationid_status
Add test for signing raw transactions offline
Incorporate APPROX_RELEASE_HEIGHT when determining what consensus branch to sign with
Allow passing branchId when calling signrawtransaction
Remove unused import
Address need not be optional when adding sapling keys
Use max priority for all shielded transfers
Move FIXME comment to where the fix should happen
Add newly discovered sapling addresses to the wallet
Fix HDSeed comment
Better error message when sending to both sprout and sapling
George Tankersley (2):
Refactor ContextualCheckBlock tests (#3187)
Refactor ContextualCheckBlock tests
Jack Grigg (83):
[ci-workers] Install Python modules in a virtualenv
[ci-workers] Handle user home directories outside /home
[ci-workers] Handle ansible_processor being either a string or a list
[ci-workers] Add support for MacOSX
[ci-workers] Add a tag for updating dependencies
[ci-workers] Add curl and cmake to dependencies
[ci-workers] README cleanups
[ci-workers] Add pkg-config to general dependencies
depends: Correctly configure Rust when cross-compiling
depends: Configure librustzcash for cross-compiling
depends: Fix BDB naming issue when cross-compiling
zcutil/build.sh: Use $HOST to specify the depends prefix
configure: Don't require RELRO and BIND_NOW when cross-compiling
Measure Windows console size for metrics UI
Use -O1 for darwin and mingw32 release builds
Clean up libzcash CPPFLAGS, CXXFLAGS, and LDFLAGS
zcutil/build.sh: Use config.site to set default ./configure settings
zcutil/build.sh: Remove --enable-werror from default configuration
Pass correct compiler, linker, and flags into libsnark
Use boost::filesystem::path::string() instead of path::native()
Metrics UI: Enable virtual terminal sequence processing on Windows
Metrics UI: Tell Windows users how to stop zcashd
depends: Pass correct compiler, linker, and flags into googletest
configure: Don't add -ldl to RUST_LIBS for mingw32
test: Fix comment in WalletTests.FindMySaplingNotes
Add Sapling support to GetFilteredNotes() and GetUnspentFilteredNotes()
Add Sapling support to z_getbalance and z_gettotalbalance
Metrics UI: Fall back to 80 cols if GetConsoleScreenBufferInfo() fails
libsnark: Adjust SHA256 K value type to match the constant
libsnark: Use mp_limb_t cast instead of uint64_t when masking bigint.data
libsnark: Fix stale comment
rpc: Clarify Sprout shielded addresses in help text
rpc: Clarify ivk balance issues in help text
Move GetSpendingKeyForPaymentAddress visitor into wallet.h
wallet: Add HaveSpendingKeyForPaymentAddress visitor
rpcwallet: Add TransactionBuilder argument to AsyncRPCOperation_sendmany
rpcwallet: Prevent use of both Sprout and Sapling addresses in z_sendmany
rpcwallet: Add Sapling support to z_sendmany
Define additional booleans for readability
Ensure SCOPED_TRACE falls out of scope when necessary
Revert NU activation heights in reverse order
Fix test after refactor to check bacd-cb-height rule on a genesis block
Rename GetFirstBlockTransaction() to GetFirstBlockCoinbaseTx()
libsnark: Force constants used in test comparisons to be unsigned
libsnark: Use format macro constants for printing fixed-width values
Rename z_inputs_ to z_sprout_inputs_
Minor cleanups
Fix RPC test that checks exact wording of cleaned-up error message
Fix file permissions of wallet_sapling RPC test
Update librustzcash with ZIP 32 APIs
ZIP 32 Sapling structs
Store HDSeed in CBasicKeyStore
Store HDSeed in CCryptoKeyStore
wallet: Store HDSeed and chain data
wallet: Store Sapling key metadata indexed by ivk
wallet: Switch from SaplingSpendingKey to SaplingExtendedSpendingKey
init: Generate a new HD seed on startup
wallet: Comment out HDSeed and CHDChain persistence to disk
Add ZIP 32 usage to release notes
wallet: Don't allow an HDSeed to be overwritten
Bugfix: Use time instead of block height for Sapling key metadata
net: Check against the current epoch's version when rejecting nodes
Extract a helper method for finding the next epoch
net: Check against the next epoch's version when evicting peers
net: Check against the current epoch's version when disconnecting peers
qa: Test both Overwinter and Sapling peer management
Use ovk directly in the TransactionBuilder API instead of fvk
Generate an ovk to encrypt outCiphertext for t-addr senders
Revert "Disable Sapling features on mainnet"
Use the correct empty memo for Sapling outputs
Add Sapling support to z_shieldcoinbase
Revert "Get rid of consensus.fPowAllowMinDifficultyBlocks."
Revert "Remove testnet-only difficulty rules"
Allow minimum-difficulty blocks on testnet and regtest
Only enable min-difficulty blocks on testnet from a particular height
Update wallet_listreceived test for now-correct empty Sapling memos
Rename min-difficulty flag to remove off-by-one in the name
Explicitly check the min-difficulty flag against boost::none
Position PoW.MinDifficultyRules test after rule activates
Fix pyflakes warnings
Store ExtFVK with encrypted Sapling spending key instead of FVK
Persist Sapling payment address to IVK map
Ignore decoding errors during -zapwallettxes
Jay Graber (5):
s/jsoutindex/outindex for sapling outputs
z_listunspent sapling support - needs refactor
Add rpc test for sprout txs z_listunspent
Modify comments
Modify GetNullifiersForAddresses for Sapling
Jonas Schnelli (3):
[Wallet] extend CKeyMetadata with HD keypath Zcash: modified for zip32
[Wallet] print hd masterkeyid in getwalletinfo Zcash: modified for zip32
[Wallet] ensure CKeyMetadata.hdMasterKeyID will be cleared during SetNull() Zcash: modified for zip32
Jonathan "Duke" Leto (1):
Fix some typos in rpc-tests readme
Larry Ruane (5):
generalize mininode.py protocol versioning
Test peer banning logic in both pre- and post-initial block download states
Sapling support for z_listreceivedbyaddress
z_listunspent rpc unit test: add testing for Sapling
fix z_listunspent includeWatchonly logic
Marius Kjærstad (3):
Fix for license not being valid
Update debian package copyright license
Missing comma in debian package copyright license
Sean Bowe (1):
Check commitment validity within the decryption API for Sapling note plaintexts.
Simon Liu (68):
Rename FindMyNotes to FindMySproutNotes.
Rename GetNoteNullifier to GetSproutNoteNullifier.
Rename mapNullifiersToNotes to mapSproutNullifiersToNotes.
Rename CWallet::AddToSpends methods for clarity.
Rename mapTxNullifiers to mapTxSproutNullifiers.
Add ivk member variable and equality comparators to SaplingNoteData class.
Update CWallet::MarkAffectedTransactionsDirty() for Sapling.
Update CWallet::UpdatedNoteData() for Sapling.
Create CWallet::AddToSaplingSpends() to track Sapling nullifiers.
Update test to pass in required cm to SaplingNotePlaintext::decrypt().
Create CWallet::FindMySaplingNotes()
Rename IsFromMe(nullifier) to IsSproutNullifierFromMe(nullifier).
Create CWallet::IsSaplingNullifierFromMe()
Remove dead code in CWalletTx::GetAmounts() as filed in issue #3434.
Cleanup CWalletTx::GetAmounts() for clarity. No-op.
Update CWalletTx::GetAmounts() to return COutputEntry for Sapling valueBalance.
Add caching and updating of Sapling note nullifier.
Update CWallet::IsSpent() to check Sapling nullifiers.
Clean up names of unit tests in gtest/test_wallet.cpp.
Add test for CWalletTx::SetSaplingNoteData()
Iterate over mapSaplingFullViewingKeys with ivk->fvk mapping (1:1).
Refactor IsSpent(nullifier) for Sprout and Sapling domain separation.
Fix code review nits.
Add two new wallet tests: FindMySaplingNotes, SaplingNullifierIsSpent.
Add new wallet test: NavigateFromSaplingNullifierToNote
Add new wallet test: UpdatedSaplingNoteData.
Add new wallet tests: SpentSaplingNoteIsFromMe.
Rename wallet tests for clarity between Sprout and Sapling.
Fix typo in variable name in test.
Fix inaccurate comments in test.
Fix typo in parameter name.
Update CWallet::GetConflicts for Sapling.
Add new wallet test: SetSaplingNoteAddrsInCWalletTx.
Add new wallet test: GetConflictedSaplingNotes
Add new wallet test: MarkAffectedSaplingTransactionsDirty
Update wallet unit tests to revert upgraded network parameters.
Clean up wallet unit tests: replace .value() with .get() for clarity.
Fix comment in CWallet::SyncMetaData.
Refactor: rename setLockedNotes -> setLockedSproutNotes
Refactor: rename UnlockAllNotes -> UnlockAllSproutNotes
Refactor: rename ListLockedNotes -> ListLockedSproutNotes
Add methods to store SaplingOutPoint in setLockedSaplingNotes
Add unit test SaplingNoteLocking
Update comment for test ContextualCheckBlockTest.BlockSproutRulesRejectOtherTx
Add Sapling fields to JSON RPC output using TxToJSON.
Update qa test to check for Sapling related JSON fields.
Closes #3534. Do not use APPROX_RELEASE_HEIGHT to get consensus branch id when in regtest mode.
For #3533. Replace asserts with JSON errors.
Update qa test as offline regtest nodes need branch id passed in.
Fix rebasing of CWallet::GetNullifiersForAddresses
Cleanup to address review comments.
Add test that Sapling shielded transactions have MAX_PRIORITY
Closes #3560. Update Sapling note data correctly when importing a key.
For #3546. Shielded tx with missing inputs are not treated as orphans.
For #3546. Improve estimated tx size for Sapling outputs.
Fix deadlock from calling CWallet::AddSaplingIncomingViewingKey instead of CBasicKeyStore::AddSaplingIncomingViewingKey
Fix file permissions of QA test wallet_persistence.py
Update wallet_persistence test to verify wallet txs are persisted across restarts.
Update wallet_persistence test to verify spending notes after restart.
Resolves Sapling nullifier persistence issue when importing a key.
Update test to verify Sapling nullifiers and witnesses persist correctly.
For #3359. RPCs transferring funds return error if Sapling addresses are used before Sapling activation.
For #3359. Return error if Sapling addresses passed to RPC z_mergetoaddress.
Update mainnet checkpoint for block 410100.
Update release notes for v2.0.1
Update release-notes.md for clarity.
make-release.py: Versioning changes for 2.0.1.
make-release.py: Updated manpages for 2.0.1.
WO (4):
Fix a bug of Windows binary
Add an assert for num_bits function
long -> int64_t
The long data type is replaced with int64_t
Za Wilcox (1):
Revise help output for z_sendmany
mdr0id (9):
Resolve final edits for README
Revert "wallet: Comment out HDSeed and CHDChain persistence to disk"
Persist Sapling key material in the wallet to disk
Serialize Sapling data in CWalletTx
Adding in rpc wallet sap for test_bitcoin
Add gtest coverage of Sapling wallet persistence
make-release.py: Versioning changes for 2.0.1-rc1.
make-release.py: Updated manpages for 2.0.1-rc1.
make-release.py: Updated release notes and changelog for 2.0.1-rc1.
Loading…
Cancel
Save