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.12.1 is now available from:3<https://bitcoin.org/bin/bitcoin-core-0.12.1/>5This is a new minor version release, including the BIP9, BIP68 and BIP1126softfork, various bugfixes and updated translations.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-----------------26### Downgrade to a version < 0.12.028Because release 0.12.0 and later will obfuscate the chainstate on every29fresh sync or reindex, the chainstate is not backwards-compatible with30pre-0.12 versions of Bitcoin Core or other software.32If you want to downgrade after you have done a reindex with 0.12.0 or later,33you will need to reindex when you first start Bitcoin Core version 0.11 or34earlier.36Notable changes37===============39First version bits BIP9 softfork deployment40-------------------------------------------42This release includes a soft fork deployment to enforce [BIP68][],43[BIP112][] and [BIP113][] using the [BIP9][] deployment mechanism.45The deployment sets the block version number to 0x20000001 between46midnight 1st May 2016 and midnight 1st May 2017 to signal readiness for47deployment. The version number consists of 0x20000000 to indicate version48bits together with setting bit 0 to indicate support for this combined49deployment, shown as "csv" in the `getblockchaininfo` RPC call.51For more information about the soft forking change, please see52<https://github.com/bitcoin/bitcoin/pull/7648>54This specific backport pull-request can be viewed at55<https://github.com/bitcoin/bitcoin/pull/7543>57[BIP9]: https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki58[BIP68]: https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki59[BIP112]: https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki60[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki62BIP68 soft fork to enforce sequence locks for relative locktime63---------------------------------------------------------------65[BIP68][] introduces relative lock-time consensus-enforced semantics of66the sequence number field to enable a signed transaction input to remain67invalid for a defined period of time after confirmation of its corresponding68outpoint.70For more information about the implementation, see71<https://github.com/bitcoin/bitcoin/pull/7184>73BIP112 soft fork to enforce OP_CHECKSEQUENCEVERIFY74--------------------------------------------------76[BIP112][] redefines the existing OP_NOP3 as OP_CHECKSEQUENCEVERIFY (CSV)77for a new opcode in the Bitcoin scripting system that in combination with78[BIP68][] allows execution pathways of a script to be restricted based79on the age of the output being spent.81For more information about the implementation, see82<https://github.com/bitcoin/bitcoin/pull/7524>84BIP113 locktime enforcement soft fork85-------------------------------------87Bitcoin Core 0.11.2 previously introduced mempool-only locktime88enforcement using GetMedianTimePast(). This release seeks to89consensus enforce the rule.91Bitcoin transactions currently may specify a locktime indicating when92they may be added to a valid block. Current consensus rules require93that blocks have a block header time greater than the locktime specified94in any transaction in that block.96Miners get to choose what time they use for their header time, with the97consensus rule being that no node will accept a block whose time is more98than two hours in the future. This creates a incentive for miners to99set their header times to future values in order to include locktimed100transactions which weren't supposed to be included for up to two more101hours.103The consensus rules also specify that valid blocks may have a header104time greater than that of the median of the 11 previous blocks. This105GetMedianTimePast() time has a key feature we generally associate with106time: it can't go backwards.108[BIP113][] specifies a soft fork enforced in this release that109weakens this perverse incentive for individual miners to use a future110time by requiring that valid blocks have a computed GetMedianTimePast()111greater than the locktime specified in any transaction in that block.113Mempool inclusion rules currently require transactions to be valid for114immediate inclusion in a block in order to be accepted into the mempool.115This release begins applying the BIP113 rule to received transactions,116so transaction whose time is greater than the GetMedianTimePast() will117no longer be accepted into the mempool.119**Implication for miners:** you will begin rejecting transactions that120would not be valid under BIP113, which will prevent you from producing121invalid blocks when BIP113 is enforced on the network. Any122transactions which are valid under the current rules but not yet valid123under the BIP113 rules will either be mined by other miners or delayed124until they are valid under BIP113. Note, however, that time-based125locktime transactions are more or less unseen on the network currently.127**Implication for users:** GetMedianTimePast() always trails behind the128current time, so a transaction locktime set to the present time will be129rejected by nodes running this release until the median time moves130forward. To compensate, subtract one hour (3,600 seconds) from your131locktimes to allow those transactions to be included in mempools at132approximately the expected time.134For more information about the implementation, see135<https://github.com/bitcoin/bitcoin/pull/6566>137Miscellaneous138-------------140The p2p alert system is off by default. To turn on, use `-alert` with141startup configuration.1430.12.1 Change log144=================146Detailed release notes follow. This overview includes changes that affect147behavior, not code moves, refactors and string updates. For convenience in locating148the code changes and accompanying discussion, both the pull request and149git merge commit are mentioned.151### RPC and other APIs152- #7739 `7ffc2bd` Add abandoned status to listtransactions (jonasschnelli)154### Block and transaction handling155- #7543 `834aaef` Backport BIP9, BIP68 and BIP112 with softfork (btcdrak)157### P2P protocol and network code158- #7804 `90f1d24` Track block download times per individual block (sipa)159- #7832 `4c3a00d` Reduce block timeout to 10 minutes (laanwj)161### Validation162- #7821 `4226aac` init: allow shutdown during 'Activating best chain...' (laanwj)163- #7835 `46898e7` Version 2 transactions remain non-standard until CSV activates (sdaftuar)165### Build system166- #7487 `00d57b4` Workaround Travis-side CI issues (luke-jr)167- #7606 `a10da9a` No need to set -L and --location for curl (MarcoFalke)168- #7614 `ca8f160` Add curl to packages (now needed for depends) (luke-jr)169- #7776 `a784675` Remove unnecessary executables from gitian release (laanwj)171### Wallet172- #7715 `19866c1` Fix calculation of balances and available coins. (morcos)174### Miscellaneous175- #7617 `f04f4fd` Fix markdown syntax and line terminate LogPrint (MarcoFalke)176- #7747 `4d035bc` added depends cross compile info (accraze)177- #7741 `a0cea89` Mark p2p alert system as deprecated (btcdrak)178- #7780 `c5f94f6` Disable bad-chain alert (btcdrak)180Credits181=======183Thanks to everyone who directly contributed to this release:185- accraze186- Alex Morcos187- BtcDrak188- Jonas Schnelli189- Luke Dashjr190- MarcoFalke191- Mark Friedenbach192- NicolasDorier193- Pieter Wuille194- Suhas Daftuar195- Wladimir J. van der Laan197As 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.