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.19.0.1 is now available from:3<https://bitcoincore.org/bin/bitcoin-core-0.19.0.1/>5This release includes new features, various bug fixes and performance6improvements, 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/>16How to Upgrade17==============19If you are running an older version, shut it down. Wait until it has completely20shut down (which might take a few minutes for older versions), then run the21installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)22or `bitcoind`/`bitcoin-qt` (on Linux).24Upgrading directly from a version of Bitcoin Core that has reached its EOL is25possible, but might take some time if the datadir needs to be migrated. Old26wallet versions of Bitcoin Core are generally supported.28Compatibility29==============31Bitcoin Core is supported and extensively tested on operating systems using32the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended33to use Bitcoin Core on unsupported systems.35Bitcoin Core should also work on most other Unix-like systems but is not36as frequently tested on them.38From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is39built using Qt 5.9.x, which doesn't support versions of macOS older than4010.10. Additionally, Bitcoin Core does not yet change appearance when41macOS "dark mode" is activated.43Users running macOS Catalina may need to "right-click" and then choose "Open"44to open the Bitcoin Core .dmg. This is due to new signing requirements45imposed by Apple, which the Bitcoin Core project does not yet adhere too.47Notable changes48===============50New user documentation51----------------------53- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md)54suggests configuration tweaks for running Bitcoin Core on systems with55limited memory. (#16339)57New RPCs58--------60- `getbalances` returns an object with all balances (`mine`,61`untrusted_pending` and `immature`). Please refer to the RPC help of62`getbalances` for details. The new RPC is intended to replace63`getbalance`, `getunconfirmedbalance`, and the balance fields in64`getwalletinfo`. These old calls and fields may be removed in a65future version. (#15930, #16239)67- `setwalletflag` sets and unsets wallet flags that enable or disable68features specific to that existing wallet, such as the new69`avoid_reuse` feature documented elsewhere in these release notes.70(#13756)72- `getblockfilter` gets the BIP158 filter for the specified block. This73RPC is only enabled if block filters have been created using the74`-blockfilterindex` configuration option. (#14121)76New settings77------------79- `-blockfilterindex` enables the creation of BIP158 block filters for80the entire blockchain. Filters will be created in the background and81currently use about 4 GiB of space. Note: this version of Bitcoin82Core does not serve block filters over the P2P network, although the83local user may obtain block filters using the `getblockfilter` RPC.84(#14121)86Updated settings87----------------89- `whitebind` and `whitelist` now accept a list of permissions to90provide peers connecting using the indicated interfaces or IP91addresses. If no permissions are specified with an address or CIDR92network, the implicit default permissions are the same as previous93releases. See the `bitcoind -help` output for these two options for94details about the available permissions. (#16248)96- Users setting custom `dbcache` values can increase their setting slightly97without using any more real memory. Recent changes reduced the memory use98by about 9% and made chainstate accounting more accurate (it was underestimating99the use of memory before). For example, if you set a value of "450" before, you100may now set a value of "500" to use about the same real amount of memory. (#16957)103Updated RPCs104------------106Note: some low-level RPC changes mainly useful for testing are described in the107Low-level Changes section below.109- `sendmany` no longer has a `minconf` argument. This argument was not110well-specified and would lead to RPC errors even when the wallet's111coin selection succeeded. Users who want to influence coin selection112can use the existing `-spendzeroconfchange`, `-limitancestorcount`,113`-limitdescendantcount` and `-walletrejectlongchains` configuration114arguments. (#15596)116- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and117`createwallet`, now accept an "avoid_reuse" parameter that controls118whether already used addresses should be included in the operation.119Additionally, `sendtoaddress` will avoid partial spends when120`avoid_reuse` is enabled even if this feature is not already enabled121via the `-avoidpartialspends` command line flag because not doing so122would risk using up the "wrong" UTXO for an address reuse case.123(#13756)125- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only126wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`,127`listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383)129- `listunspent` now returns a "reused" bool for each output if the130wallet flag "avoid_reuse" is enabled. (#13756)132- `getblockstats` now uses BlockUndo data instead of the transaction133index, making it much faster, no longer dependent on the `-txindex`134configuration option, and functional for all non-pruned blocks.135(#14802)137- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill138out input and output scripts and keys when known. P2SH-witness inputs139will be filled in from the UTXO set when a descriptor is provided that140shows they're spending segwit outputs. See the RPC help text for full141details. (#15427)143- `sendrawtransaction` and `testmempoolaccept` no longer accept a144`allowhighfees` parameter to fail mempool acceptance if the145transaction fee exceeds the value of the configuration option146`-maxtxfee`. Now there is a hardcoded default maximum feerate that147can be changed when calling either RPC using a `maxfeerate` parameter.148(#15620)150- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and151`getrawmempool` no longer return a `size` field unless the152configuration option `-deprecatedrpc=size` is used. Instead a new153`vsize` field is returned with the transaction's virtual size154(consistent with other RPCs such as `getrawtransaction`). (#15637)156- `getwalletinfo` now includes a `scanning` field that is either `false`157(no scanning) or an object with information about the duration and158progress of the wallet's scanning historical blocks for transactions159affecting its balances. (#15730)161- `gettransaction` now accepts a third (boolean) argument `verbose`. If162set to `true`, a new `decoded` field will be added to the response containing163the decoded transaction. This field is equivalent to RPC `decoderawtransaction`,164or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873)166- `createwallet` accepts a new `passphrase` parameter. If set, this167will create the new wallet encrypted with the given passphrase. If168unset (the default) or set to an empty string, no encryption will be169used. (#16394)171- `getchaintxstats` RPC now returns the additional key of172`window_final_block_height`. (#16695)174- `getmempoolentry` now provides a `weight` field containing the175transaction weight as defined in BIP141. (#16647)177- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786)179- `getdescriptorinfo` now returns an additional `checksum` field180containing the checksum for the unmodified descriptor provided by the181user (that is, before the descriptor is normalized for the182`descriptor` field). (#15986)184- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting185joined PSBT. Previously, inputs and outputs were added in the order PSBTs were186provided. This made it easy to correlate inputs to outputs, representing a187privacy leak. (#16512)189- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the190`-walletrbf` configuration option is set to true. (#15911)192GUI changes193-----------195- The GUI wallet now provides bech32 addresses by default. The user may change the address type196during invoice generation using a GUI toggle, or the default address197type may be changed with the `-addresstype` configuration option.198(#15711, #16497)200- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584)202Deprecated or removed configuration options203-------------------------------------------205- `-mempoolreplacement` is removed, although default node behavior206remains the same. This option previously allowed the user to prevent207the node from accepting or relaying BIP125 transaction replacements.208This is different from the remaining configuration option209`-walletrbf`. (#16171)211Deprecated or removed RPCs212--------------------------214- `bumpfee` no longer accepts a `totalFee` option unless the215configuration parameter `deprecatedrpc=totalFee` is specified. This216parameter will be fully removed in a subsequent release. (#15996)218- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727)220- `generate` is now removed after being deprecated in Bitcoin Core 0.18.221Use the `generatetoaddress` RPC instead. (#15492)223P2P changes224-----------226- BIP 61 reject messages were deprecated in v0.18. They are now disabled227by default, but can be enabled by setting the `-enablebip61` command228line option. BIP 61 reject messages will be removed entirely in a229future version of Bitcoin Core. (#14054)231- To eliminate well-known denial-of-service vectors in Bitcoin Core,232especially for nodes with spinning disks, the default value for the233`-peerbloomfilters` configuration option has been changed to false.234This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service235flag, accepting BIP37 bloom filters, or serving merkle blocks or236transactions matching a bloom filter. Users who still want to provide237bloom filter support may either set the configuration option to true238to re-enable both BIP111 and BIP37 support or enable just BIP37239support for specific peers using the updated `-whitelist` and240`-whitebind` configuration options described elsewhere in these241release notes. For the near future, lightweight clients using public242BIP111/BIP37 nodes should still be able to connect to older versions243of Bitcoin Core and nodes that have manually enabled BIP37 support,244but developers of such software should consider migrating to either245using specific BIP37 nodes or an alternative transaction filtering246system. (#16152)248- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759)250Miscellaneous CLI Changes
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.