BitcoinPrivate-legacy/doc/release-notes.md

172 lines
6.5 KiB
Markdown
Raw Normal View History

2015-10-09 06:18:43 -07:00
Bitcoin Core version 0.11.1 is now available from:
2015-06-01 01:25:26 -07:00
2015-10-09 06:18:43 -07:00
<https://bitcoin.org/bin/bitcoin-core-0.11.1/>
2015-06-01 01:25:26 -07:00
2015-10-09 06:18:43 -07:00
This is a new minor version release, bringing security fixes. It is recommended
to upgrade to this version as soon as possible.
2015-06-01 01:25:26 -07:00
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.
estimatefee / estimatepriority RPC methods New RPC methods: return an estimate of the fee (or priority) a transaction needs to be likely to confirm in a given number of blocks. Mike Hearn created the first version of this method for estimating fees. It works as follows: For transactions that took 1 to N (I picked N=25) blocks to confirm, keep N buckets with at most 100 entries in each recording the fees-per-kilobyte paid by those transactions. (separate buckets are kept for transactions that confirmed because they are high-priority) The buckets are filled as blocks are found, and are saved/restored in a new fee_estiamtes.dat file in the data directory. A few variations on Mike's initial scheme: To estimate the fee needed for a transaction to confirm in X buckets, all of the samples in all of the buckets are used and a median of all of the data is used to make the estimate. For example, imagine 25 buckets each containing the full 100 entries. Those 2,500 samples are sorted, and the estimate of the fee needed to confirm in the very next block is the 50'th-highest-fee-entry in that sorted list; the estimate of the fee needed to confirm in the next two blocks is the 150'th-highest-fee-entry, etc. That algorithm has the nice property that estimates of how much fee you need to pay to get confirmed in block N will always be greater than or equal to the estimate for block N+1. It would clearly be wrong to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay 12 uBTC and it will take LONGER". A single block will not contribute more than 10 entries to any one bucket, so a single miner and a large block cannot overwhelm the estimates.
2014-03-17 05:19:54 -07:00
2015-10-09 06:18:43 -07:00
Notable changes
===============
2015-10-09 06:18:43 -07:00
Fix buffer overflow in bundled upnp
------------------------------------
2015-10-09 06:18:43 -07:00
Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in
the XML parser during initial network discovery.
2015-10-09 06:18:43 -07:00
Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/
2015-10-09 06:18:43 -07:00
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).
2015-10-09 06:18:43 -07:00
Test for LowS signatures before relaying
-----------------------------------------
2015-10-09 06:18:43 -07:00
Make the node require the canonical 'low-s' encoding for ECDSA signatures when
relaying or mining. This removes a nuisance malleability vector.
2015-10-09 06:18:43 -07:00
Consensus behavior is unchanged.
2015-10-09 06:18:43 -07:00
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.
2015-10-09 06:18:43 -07:00
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.
2015-05-26 12:32:25 -07:00
2015-10-09 06:18:43 -07:00
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.
2015-10-09 06:18:43 -07:00
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.
2015-10-09 06:18:43 -07:00
[1] On the Malleability of Bitcoin Transactions
Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek
http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
2015-05-26 12:32:25 -07:00
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)
2015-10-09 06:18:43 -07:00
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.
2015-10-09 06:18:43 -07:00
- #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
2015-06-01 01:25:26 -07:00
Credits
=======
Thanks to everyone who directly contributed to this release:
- Adam Weiss
- Alex Morcos
2015-10-09 06:18:43 -07:00
- Casey Rodarmor
2015-06-01 01:25:26 -07:00
- Cory Fields
2015-10-09 06:18:43 -07:00
- fanquake
2015-06-01 01:25:26 -07:00
- Gregory Maxwell
- Jonas Schnelli
2015-10-09 06:18:43 -07:00
- J Ross Nicoll
2015-06-01 01:25:26 -07:00
- Pavel Janík
- Pavel Vasin
- Peter Todd
- Pieter Wuille
- randy-waterhouse
- Ross Nicoll
- Suhas Daftuar
2015-10-09 06:18:43 -07:00
- tailsjoin
- ฿tcDrak
2015-06-17 00:18:33 -07:00
- Tom Harding
2015-10-09 06:18:43 -07:00
- Veres Lajos
2015-06-01 01:25:26 -07:00
- Wladimir J. van der Laan
2015-10-09 06:18:43 -07:00
And those who contributed additional code review and/or security research:
2015-06-01 01:25:26 -07:00
2015-10-09 06:18:43 -07:00
- timothy on IRC for reporting the issue
- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos
2015-06-01 01:25:26 -07:00
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).