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.14.0 is now available from:3<https://bitcoin.org/bin/bitcoin-core-0.14.0/>5This is a new major version release, including new features, various bugfixes6and performance improvements, as well as updated translations.8Please report bugs using the issue tracker at github:10<https://github.com/bitcoin/bitcoin/issues>12To receive security and update notifications, please subscribe to:14<https://bitcoincore.org/en/list/announcements/join/>16Compatibility17==============19Bitcoin Core is extensively tested on multiple operating systems using20the Linux kernel, macOS 10.8+, and Windows Vista and later.22Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support),23No attempt is made to prevent installing or running the software on Windows XP, you24can still do so at your own risk but be aware that there are known instabilities and issues.25Please do not report issues about Windows XP to the issue tracker.27Bitcoin Core should also work on most other Unix-like systems but is not28frequently tested on them.30Notable changes31===============33Performance Improvements34--------------36Validation speed and network propagation performance have been greatly37improved, leading to much shorter sync and initial block download times.39- The script signature cache has been reimplemented as a "cuckoo cache",40allowing for more signatures to be cached and faster lookups.41- Assumed-valid blocks have been introduced which allows script validation to42be skipped for ancestors of known-good blocks, without changing the security43model. See below for more details.44- In some cases, compact blocks are now relayed before being fully validated as45per BIP152.46- P2P networking has been refactored with a focus on concurrency and47throughput. Network operations are no longer bottlenecked by validation. As a48result, block fetching is several times faster than previous releases in many49cases.50- The UTXO cache now claims unused mempool memory. This speeds up initial block51download as UTXO lookups are a major bottleneck there, and there is no use for52the mempool at that stage.55Manual Pruning56--------------58Bitcoin Core has supported automatically pruning the blockchain since 0.11. Pruning59the blockchain allows for significant storage space savings as the vast majority of60the downloaded data can be discarded after processing so very little of it remains61on the disk.63Manual block pruning can now be enabled by setting `-prune=1`. Once that is set,64the RPC command `pruneblockchain` can be used to prune the blockchain up to the65specified height or timestamp.67`getinfo` Deprecated68--------------------70The `getinfo` RPC command has been deprecated. Each field in the RPC call71has been moved to another command's output with that command also giving72additional information that `getinfo` did not provide. The following table73shows where each field has been moved to:75|`getinfo` field | Moved to |76|------------------|-------------------------------------------|77`"version"` | `getnetworkinfo()["version"]`78`"protocolversion"`| `getnetworkinfo()["protocolversion"]`79`"walletversion"` | `getwalletinfo()["walletversion"]`80`"balance"` | `getwalletinfo()["balance"]`81`"blocks"` | `getblockchaininfo()["blocks"]`82`"timeoffset"` | `getnetworkinfo()["timeoffset"]`83`"connections"` | `getnetworkinfo()["connections"]`84`"proxy"` | `getnetworkinfo()["networks"][0]["proxy"]`85`"difficulty"` | `getblockchaininfo()["difficulty"]`86`"testnet"` | `getblockchaininfo()["chain"] == "test"`87`"keypoololdest"` | `getwalletinfo()["keypoololdest"]`88`"keypoolsize"` | `getwalletinfo()["keypoolsize"]`89`"unlocked_until"` | `getwalletinfo()["unlocked_until"]`90`"paytxfee"` | `getwalletinfo()["paytxfee"]`91`"relayfee"` | `getnetworkinfo()["relayfee"]`92`"errors"` | `getnetworkinfo()["warnings"]`94ZMQ On Windows95--------------97Previously the ZeroMQ notification system was unavailable on Windows98due to various issues with ZMQ. These have been fixed upstream and99now ZMQ can be used on Windows. Please see [this document](https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md) for100help with using ZMQ in general.102Nested RPC Commands in Debug Console103------------------------------------105The ability to nest RPC commands has been added to the debug console. This106allows users to have the output of a command become the input to another107command without running the commands separately.109The nested RPC commands use bracket syntax (i.e. `getwalletinfo()`) and can110be nested (i.e. `getblock(getblockhash(1))`). Simple queries can be111done with square brackets where object values are accessed with either an112array index or a non-quoted string (i.e. `listunspent()[0][txid]`). Both113commas and spaces can be used to separate parameters in both the bracket syntax114and normal RPC command syntax.116Network Activity Toggle117-----------------------119A RPC command and GUI toggle have been added to enable or disable all p2p120network activity. The network status icon in the bottom right hand corner121is now the GUI toggle. Clicking the icon will either enable or disable all122p2p network activity. If network activity is disabled, the icon will123be grayed out with an X on top of it.125Additionally the `setnetworkactive` RPC command has been added which does126the same thing as the GUI icon. The command takes one boolean parameter,127`true` enables networking and `false` disables it.129Out-of-sync Modal Info Layer130----------------------------132When Bitcoin Core is out-of-sync on startup, a semi-transparent information133layer will be shown over top of the normal display. This layer contains134details about the current sync progress and estimates the amount of time135remaining to finish syncing. This layer can also be hidden and subsequently136unhidden by clicking on the progress bar at the bottom of the window.138Support for JSON-RPC Named Arguments139------------------------------------141Commands sent over the JSON-RPC interface and through the `bitcoin-cli` binary142can now use named arguments. This follows the [JSON-RPC specification](http://www.jsonrpc.org/specification)143for passing parameters by-name with an object.145`bitcoin-cli` has been updated to support this by parsing `name=value` arguments146when the `-named` option is given.148Some examples:150src/bitcoin-cli -named help command="help"151src/bitcoin-cli -named getblockhash height=0152src/bitcoin-cli -named getblock blockhash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f153src/bitcoin-cli -named sendtoaddress address="(snip)" amount="1.0" subtractfeefromamount=true155The order of arguments doesn't matter in this case. Named arguments are also156useful to leave out arguments that should stay at their default value. The157rarely-used arguments `comment` and `comment_to` to `sendtoaddress`, for example, can158be left out. However, this is not yet implemented for many RPC calls, this is159expected to land in a later release.161The RPC server remains fully backwards compatible with positional arguments.163Opt into RBF When Sending164-------------------------166A new startup option, `-walletrbf`, has been added to allow users to have all167transactions sent opt into RBF support. The default value for this option is168currently `false`, so transactions will not opt into RBF by default. The new169`bumpfee` RPC can be used to replace transactions that opt into RBF.171Sensitive Data Is No Longer Stored In Debug Console History172-----------------------------------------------------------174The debug console maintains a history of previously entered commands that can be175accessed by pressing the Up-arrow key so that users can easily reuse previously176entered commands. Commands which have sensitive information such as passphrases and177private keys will now have a `(...)` in place of the parameters when accessed through178the history.180Retaining the Mempool Across Restarts181-------------------------------------183The mempool will be saved to the data directory prior to shutdown184to a `mempool.dat` file. This file preserves the mempool so that when the node185restarts the mempool can be filled with transactions without waiting for new transactions186to be created. This will also preserve any changes made to a transaction through187commands such as `prioritisetransaction` so that those changes will not be lost.189Final Alert190-----------192The Alert System was [disabled and deprecated](https://bitcoin.org/en/alert/2016-11-01-alert-retirement) in Bitcoin Core 0.12.1 and removed in 0.13.0.193The Alert System was retired with a maximum sequence final alert which causes any nodes194supporting the Alert System to display a static hard-coded "Alert Key Compromised" message which also195prevents any other alerts from overriding it. This final alert is hard-coded into this release196so that all old nodes receive the final alert.198GUI Changes199-----------201- After resetting the options by clicking the `Reset Options` button202in the options dialog or with the `-resetguioptions` startup option,203the user will be prompted to choose the data directory again. This204is to ensure that custom data directories will be kept after the205option reset which clears the custom data directory set via the choose206datadir dialog.208- Multiple peers can now be selected in the list of peers in the debug209window. This allows for users to ban or disconnect multiple peers210simultaneously instead of banning them one at a time.212- An indicator has been added to the bottom right hand corner of the main213window to indicate whether the wallet being used is a HD wallet. This214icon will be grayed out with an X on top of it if the wallet is not a215HD wallet.217Low-level RPC changes218----------------------220- `importprunedfunds` only accepts two required arguments. Some versions accept221an optional third arg, which was always ignored. Make sure to never pass more222than two arguments.224- The first boolean argument to `getaddednodeinfo` has been removed. This is225an incompatible change.227- RPC command `getmininginfo` loses the "testnet" field in favor of the more228generic "chain" (which has been present for years).230- A new RPC command `preciousblock` has been added which marks a block as231precious. A precious block will be treated as if it were received earlier232than a competing block.234- A new RPC command `importmulti` has been added which receives an array of235JSON objects representing the intention of importing a public key, a236private key, an address and script/p2sh238- Use of `getrawtransaction` for retrieving confirmed transactions with unspent239outputs has been deprecated. For now this will still work, but in the future240it may change to only be able to retrieve information about transactions in241the mempool or if `txindex` is enabled.243- A new RPC command `getmemoryinfo` has been added which will return information244about the memory usage of Bitcoin Core. This was added in conjunction with245optimizations to memory management. See [Pull #8753](https://github.com/bitcoin/bitcoin/pull/8753)246for more information.248- A new RPC command `bumpfee` has been added which allows replacing an249unconfirmed wallet transaction that signaled RBF (see the `-walletrbf`250startup option above) with a new transaction that pays a higher fee, and
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.