/ doc / release-notes / release-notes-0.10.3.md
release-notes-0.10.3.md
  1  Bitcoin Core version 0.10.3 is now available from:
  2  
  3    <https://bitcoin.org/bin/bitcoin-core-0.10.3/>
  4  
  5  This is a new minor version release, bringing security fixes and translation 
  6  updates. It is recommended to upgrade to this version as soon as possible.
  7  
  8  Please report bugs using the issue tracker at github:
  9  
 10    <https://github.com/bitcoin/bitcoin/issues>
 11  
 12  Upgrading and downgrading
 13  =========================
 14  
 15  How to Upgrade
 16  --------------
 17  
 18  If you are running an older version, shut it down. Wait until it has completely
 19  shut down (which might take a few minutes for older versions), then run the
 20  installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
 21  bitcoind/bitcoin-qt (on Linux).
 22  
 23  Downgrade warning
 24  ------------------
 25  
 26  Because release 0.10.0 and later makes use of headers-first synchronization and
 27  parallel block download (see further), the block files and databases are not
 28  backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:
 29  
 30  * Blocks will be stored on disk out of order (in the order they are
 31  received, really), which makes it incompatible with some tools or
 32  other programs. Reindexing using earlier versions will also not work
 33  anymore as a result of this.
 34  
 35  * The block index database will now hold headers for which no block is
 36  stored on disk, which earlier versions won't support.
 37  
 38  If you want to be able to downgrade smoothly, make a backup of your entire data
 39  directory. Without this your node will need start syncing (or importing from
 40  bootstrap.dat) anew afterwards. It is possible that the data from a completely
 41  synchronised 0.10 node may be usable in older versions as-is, but this is not
 42  supported and may break as soon as the older version attempts to reindex.
 43  
 44  This does not affect wallet forward or backward compatibility.
 45  
 46  Notable changes
 47  ===============
 48  
 49  Fix buffer overflow in bundled upnp
 50  ------------------------------------
 51  
 52  Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in
 53  the XML parser during initial network discovery.
 54  
 55  Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/
 56  
 57  This applies to the distributed executables only, not when building from source or
 58  using distribution provided packages.
 59  
 60  Additionally, upnp has been disabled by default. This may result in a lower
 61  number of reachable nodes on IPv4, however this prevents future libupnpc
 62  vulnerabilities from being a structural risk to the network
 63  (see https://github.com/bitcoin/bitcoin/pull/6795).
 64  
 65  Test for LowS signatures before relaying
 66  -----------------------------------------
 67  
 68  Make the node require the canonical 'low-s' encoding for ECDSA signatures when
 69  relaying or mining.  This removes a nuisance malleability vector.
 70  
 71  Consensus behavior is unchanged.
 72  
 73  If widely deployed this change would eliminate the last remaining known vector
 74  for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side
 75  it will block most transactions made by sufficiently out of date software.
 76  
 77  Unlike the other avenues to change txids on transactions this
 78  one was randomly violated by all deployed bitcoin software prior to
 79  its discovery. So, while other malleability vectors where made
 80  non-standard as soon as they were discovered, this one has remained
 81  permitted. Even BIP62 did not propose applying this rule to
 82  old version transactions, but conforming implementations have become
 83  much more common since BIP62 was initially written.
 84  
 85  Bitcoin Core has produced compatible signatures since a28fb70e in
 86  September 2013, but this didn't make it into a release until 0.9
 87  in March 2014; Bitcoinj has done so for a similar span of time.
 88  Bitcoinjs and electrum have been more recently updated.
 89  
 90  This does not replace the need for BIP62 or similar, as miners can
 91  still cooperate to break transactions.  Nor does it replace the
 92  need for wallet software to handle malleability sanely[1]. This
 93  only eliminates the cheap and irritating DOS attack.
 94  
 95  [1] On the Malleability of Bitcoin Transactions
 96  Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek
 97  http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
 98  
 99  Minimum relay fee default increase
100  -----------------------------------
101  
102  The default for the `-minrelaytxfee` setting has been increased from `0.00001`
103  to `0.00005`.
104  
105  This is necessitated by the current transaction flooding, causing
106  outrageous memory usage on nodes due to the mempool ballooning. This is a
107  temporary measure, bridging the time until a dynamic method for determining
108  this fee is merged (which will be in 0.12).
109  
110  (see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0
111  release notes, in which this value was suggested)
112  
113  0.10.3 Change log
114  =================
115  
116  Detailed release notes follow. This overview includes changes that affect external
117  behavior, not code moves, refactors or string updates.
118  
119  - #6186 `e4a7d51` Fix two problems in CSubnet parsing
120  - #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set
121  - #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting
122  - #6226 `181771b` json: fail read_string if string contains trailing garbage
123  - #6244 `09334e0` configure: Detect (and reject) LibreSSL
124  - #6276 `0fd8464` Fix getbalance * 0
125  - #6274 `be64204` Add option `-alerts` to opt out of alert system
126  - #6319 `3f55638` doc: update mailing list address
127  - #6438 `7e66e9c` openssl: avoid config file load/race
128  - #6439 `255eced` Updated URL location of netinstall for Debian
129  - #6412 `0739e6e` Test whether created sockets are select()able
130  - #6694 `f696ea1` [QT] fix thin space word wrap line brake issue
131  - #6704 `743cc9e` Backport bugfixes to 0.10
132  - #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector.
133  - #6789 `093d7b5` Update miniupnpc to 1.9.20151008
134  - #6795 `f2778e0` net: Disable upnp by default
135  - #6797 `91ef4d9` Do not store more than 200 timedata samples
136  - #6793 `842c48d` Bump minrelaytxfee default
137  
138  Credits
139  =======
140  
141  Thanks to everyone who directly contributed to this release:
142  
143  - Adam Weiss
144  - Alex Morcos
145  - Casey Rodarmor
146  - Cory Fields
147  - fanquake
148  - Gregory Maxwell
149  - Jonas Schnelli
150  - J Ross Nicoll
151  - Luke Dashjr
152  - Pavel Vasin
153  - Pieter Wuille
154  - randy-waterhouse
155  - ฿tcDrak
156  - Tom Harding
157  - Veres Lajos
158  - Wladimir J. van der Laan
159  
160  And all those who contributed additional code review and/or security research:
161  
162  - timothy on IRC for reporting the issue
163  - Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos
164  
165  As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).