Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1Bitcoin Core version 0.10.3 is now available from:3<https://bitcoin.org/bin/bitcoin-core-0.10.3/>5This is a new minor version release, bringing security fixes and translation6updates. It is recommended to upgrade to this version as soon as possible.8Please report bugs using the issue tracker at github:10<https://github.com/bitcoin/bitcoin/issues>12Upgrading and downgrading13=========================15How to Upgrade16--------------18If you are running an older version, shut it down. Wait until it has completely19shut down (which might take a few minutes for older versions), then run the20installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or21bitcoind/bitcoin-qt (on Linux).23Downgrade warning24------------------26Because release 0.10.0 and later makes use of headers-first synchronization and27parallel block download (see further), the block files and databases are not28backwards-compatible with pre-0.10 versions of Bitcoin Core or other software:30* Blocks will be stored on disk out of order (in the order they are31received, really), which makes it incompatible with some tools or32other programs. Reindexing using earlier versions will also not work33anymore as a result of this.35* The block index database will now hold headers for which no block is36stored on disk, which earlier versions won't support.38If you want to be able to downgrade smoothly, make a backup of your entire data39directory. Without this your node will need start syncing (or importing from40bootstrap.dat) anew afterwards. It is possible that the data from a completely41synchronised 0.10 node may be usable in older versions as-is, but this is not42supported and may break as soon as the older version attempts to reindex.44This does not affect wallet forward or backward compatibility.46Notable changes47===============49Fix buffer overflow in bundled upnp50------------------------------------52Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in53the XML parser during initial network discovery.55Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/57This applies to the distributed executables only, not when building from source or58using distribution provided packages.60Additionally, upnp has been disabled by default. This may result in a lower61number of reachable nodes on IPv4, however this prevents future libupnpc62vulnerabilities from being a structural risk to the network63(see https://github.com/bitcoin/bitcoin/pull/6795).65Test for LowS signatures before relaying66-----------------------------------------68Make the node require the canonical 'low-s' encoding for ECDSA signatures when69relaying or mining. This removes a nuisance malleability vector.71Consensus behavior is unchanged.73If widely deployed this change would eliminate the last remaining known vector74for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side75it will block most transactions made by sufficiently out of date software.77Unlike the other avenues to change txids on transactions this78one was randomly violated by all deployed bitcoin software prior to79its discovery. So, while other malleability vectors where made80non-standard as soon as they were discovered, this one has remained81permitted. Even BIP62 did not propose applying this rule to82old version transactions, but conforming implementations have become83much more common since BIP62 was initially written.85Bitcoin Core has produced compatible signatures since a28fb70e in86September 2013, but this didn't make it into a release until 0.987in March 2014; Bitcoinj has done so for a similar span of time.88Bitcoinjs and electrum have been more recently updated.90This does not replace the need for BIP62 or similar, as miners can91still cooperate to break transactions. Nor does it replace the92need for wallet software to handle malleability sanely[1]. This93only eliminates the cheap and irritating DOS attack.95[1] On the Malleability of Bitcoin Transactions96Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek97http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf99Minimum relay fee default increase100-----------------------------------102The default for the `-minrelaytxfee` setting has been increased from `0.00001`103to `0.00005`.105This is necessitated by the current transaction flooding, causing106outrageous memory usage on nodes due to the mempool ballooning. This is a107temporary measure, bridging the time until a dynamic method for determining108this fee is merged (which will be in 0.12).110(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0111release notes, in which this value was suggested)1130.10.3 Change log114=================116Detailed release notes follow. This overview includes changes that affect external117behavior, not code moves, refactors or string updates.119- #6186 `e4a7d51` Fix two problems in CSubnet parsing120- #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set121- #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting122- #6226 `181771b` json: fail read_string if string contains trailing garbage123- #6244 `09334e0` configure: Detect (and reject) LibreSSL124- #6276 `0fd8464` Fix getbalance * 0125- #6274 `be64204` Add option `-alerts` to opt out of alert system126- #6319 `3f55638` doc: update mailing list address127- #6438 `7e66e9c` openssl: avoid config file load/race128- #6439 `255eced` Updated URL location of netinstall for Debian129- #6412 `0739e6e` Test whether created sockets are select()able130- #6694 `f696ea1` [QT] fix thin space word wrap line brake issue131- #6704 `743cc9e` Backport bugfixes to 0.10132- #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector.133- #6789 `093d7b5` Update miniupnpc to 1.9.20151008134- #6795 `f2778e0` net: Disable upnp by default135- #6797 `91ef4d9` Do not store more than 200 timedata samples136- #6793 `842c48d` Bump minrelaytxfee default138Credits139=======141Thanks to everyone who directly contributed to this release:143- Adam Weiss144- Alex Morcos145- Casey Rodarmor146- Cory Fields147- fanquake148- Gregory Maxwell149- Jonas Schnelli150- J Ross Nicoll151- Luke Dashjr152- Pavel Vasin153- Pieter Wuille154- randy-waterhouse155- ฿tcDrak156- Tom Harding157- Veres Lajos158- Wladimir J. van der Laan160And all those who contributed additional code review and/or security research:162- timothy on IRC for reporting the issue163- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos165As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.