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 28.0 is now available from:3<https://bitcoincore.org/bin/bitcoin-core-28.0/>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 in some cases), then run the21installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)22or `bitcoind`/`bitcoin-qt` (on Linux).24Upgrading directly from a version of Bitcoin Core that has reached its EOL is25possible, but it might take some time if the data directory needs to be migrated. Old26wallet versions of Bitcoin Core are generally supported.28Running Bitcoin Core binaries on macOS requires self signing.29```30cd /path/to/bitcoin-28.0/bin31xattr -d com.apple.quarantine bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin32codesign -s - bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin33```35Compatibility36==============38Bitcoin Core is supported and extensively tested on operating systems39using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin40Core should also work on most other UNIX-like systems but is not as41frequently tested on them. It is not recommended to use Bitcoin Core on42unsupported systems.44Notable changes45===============47Testnet4/BIP94 support48-----50Support for Testnet4 as specified in [BIP94](https://github.com/bitcoin/bips/blob/master/bip-0094.mediawiki)51has been added. The network can be selected with the `-testnet4` option and52the section header is also named `[testnet4]`.54While the intention is to phase out support for Testnet3 in an upcoming55version, support for it is still available via the known options in this56release. (#29775)58Windows Data Directory59----------------------61The default data directory on Windows has been moved from `C:\Users\Username\AppData\Roaming\Bitcoin`62to `C:\Users\Username\AppData\Local\Bitcoin`. Bitcoin Core will check the existence63of the old directory first and continue to use that directory for backwards64compatibility if it is present. (#27064)66JSON-RPC 2.0 Support67--------------------69The JSON-RPC server now recognizes JSON-RPC 2.0 requests and responds with70strict adherence to the [specification](https://www.jsonrpc.org/specification).71See [JSON-RPC-interface.md](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#json-rpc-11-vs-20) for details. (#27101)73JSON-RPC clients may need to be updated to be compatible with the JSON-RPC server.74Please open an issue on GitHub if any compatibility issues are found.76libbitcoinconsensus Removal77---------------------------79The libbitcoin-consensus library was deprecated in 27.0 and is now completely removed. (#29648)81P2P and Network Changes82-----------------------84- Previously if Bitcoin Core was listening for P2P connections, either using85default settings or via `bind=addr:port` it would always also bind to86`127.0.0.1:8334` to listen for Tor connections. It was not possible to switch87this off, even if the node didn't use Tor. This has been changed and now88`bind=addr:port` results in binding on `addr:port` only. The default behavior89of binding to `0.0.0.0:8333` and `127.0.0.1:8334` has not been changed.91If you are using a `bind=...` configuration without `bind=...=onion` and rely92on the previous implied behavior to accept incoming Tor connections at93`127.0.0.1:8334`, you need to now make this explicit by using94`bind=... bind=127.0.0.1:8334=onion`. (#22729)96- Bitcoin Core will now fail to start up if any of its P2P binds fail, rather97than the previous behaviour where it would only abort startup if all P2P98binds had failed. (#22729)100- UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy`101to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`).102(#27375)104- UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with105the format `-zmqpubrawtx=unix:/path/to/file` (#27679)107- Additional "in" and "out" flags have been added to `-whitelist` to control whether108permissions apply to inbound connections and/or manual ones (default: inbound only). (#27114)110- Transactions having a feerate that is too low will be opportunistically paired with111their child transactions and submitted as a package, thus enabling the node to download1121-parent-1-child packages using the existing transaction relay protocol. Combined with113other mempool policies, this change allows limited "package relay" when a parent transaction114is below the mempool minimum feerate. Topologically Restricted Until Confirmation (TRUC)115parents are additionally allowed to be below the minimum relay feerate (i.e., pay 0 fees).116Use the `submitpackage` RPC to submit packages directly to the node. Warning: this P2P117feature is limited (unlike the `submitpackage` interface, a child with multiple unconfirmed118parents is not supported) and not yet reliable under adversarial conditions. (#28970)120Mempool Policy Changes121----------------------123- Transactions with version number set to 3 are now treated as standard on all networks (#29496),124subject to opt-in Topologically Restricted Until Confirmation (TRUC) transaction policy as125described in [BIP 431](https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki). The126policy includes limits on spending unconfirmed outputs (#28948), eviction of a previous descendant127if a more incentive-compatible one is submitted (#29306), and a maximum transaction size of 10,000vB128(#29873). These restrictions simplify the assessment of incentive compatibility of accepting or129replacing TRUC transactions, thus ensuring any replacements are more profitable for the node and130making fee-bumping more reliable.132- Pay To Anchor (P2A) is a new standard witness output type for spending,133a newly recognised output template. This allows for key-less anchor134outputs, with compact spending conditions for additional efficiencies on135top of an equivalent `sh(OP_TRUE)` output, in addition to the txid stability136of the spending transaction.137N.B. propagation of this output spending on the network will be limited138until a sufficient number of nodes on the network adopt this upgrade. (#30352)140- Limited package RBF is now enabled, where the proposed conflicting package would result in141a connected component, aka cluster, of size 2 in the mempool. All clusters being conflicted142against must be of size 2 or lower. (#28984)144- The default value of the `-mempoolfullrbf` configuration option has been changed from 0 to 1,145i.e. `mempoolfullrbf=1`. (#30493)147Updated RPCs148------------150- The `dumptxoutset` RPC now returns the UTXO set dump in a new and151improved format. Correspondingly, the `loadtxoutset` RPC now expects152this new format in the dumps it tries to load. Dumps with the old153format are no longer supported and need to be recreated using the154new format to be usable. (#29612)156- AssumeUTXO mainnet parameters have been added for height 840,000.157This means the `loadtxoutset` RPC can now be used on mainnet with158the matching UTXO set from that height. (#28553)160- The `warnings` field in `getblockchaininfo`, `getmininginfo` and161`getnetworkinfo` now returns all the active node warnings as an array162of strings, instead of a single warning. The current behaviour163can be temporarily restored by running Bitcoin Core with the configuration164option `-deprecatedrpc=warnings`. (#29845)166- Previously when using the `sendrawtransaction` RPC and specifying outputs167that are already in the UTXO set, an RPC error code of `-27` with the168message "Transaction already in block chain" was returned in response.169The error message has been changed to "Transaction outputs already in utxo set"170to more accurately describe the source of the issue. (#30212)172- The default mode for the `estimatesmartfee` RPC has been updated from `conservative` to `economical`,173which is expected to reduce over-estimation for many users, particularly if Replace-by-Fee is an option.174For users that require high confidence in their fee estimates at the cost of potentially over-estimating,175the `conservative` mode remains available. (#30275)177- RPC `scantxoutset` now returns 2 new fields in the "unspents" JSON array: `blockhash` and `confirmations`.178See the scantxoutset help for details. (#30515)180- RPC `submitpackage` now allows 2 new arguments to be passed: `maxfeerate` and `maxburnamount`. See the181subtmitpackage help for details. (#28950)183Changes to wallet-related RPCs can be found in the Wallet section below.185Updated REST APIs186-----------------187- Parameter validation for `/rest/getutxos` has been improved by rejecting188truncated or overly large txids and malformed outpoint indices via raising189an HTTP_BAD_REQUEST "Parse error". These requests were previously handled190silently. (#30482, #30444)192Build System193------------195- GCC 11.1 or later, or Clang 16.0 or later,196are now required to compile Bitcoin Core. (#29091, #30263)198- The minimum required glibc to run Bitcoin Core is now1992.31. This means that RHEL 8 and Ubuntu 18.04 (Bionic)200are no-longer supported. (#29987)202- `--enable-lcov-branch-coverage` has been removed, given203incompatibilities between lcov version 1 & 2. `LCOV_OPTS`204should be used to set any options instead. (#30192)206Updated Settings207----------------209- When running with `-alertnotify`, an alert can now be raised multiple210times instead of just once. Previously, it was only raised when unknown211new consensus rules were activated. Its scope has now been increased to212include all kernel warnings. Specifically, alerts will now also be raised213when an invalid chain with a large amount of work has been detected.214Additional warnings may be added in the future. (#30058)216Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.218Wallet219------221- The wallet now detects when wallet transactions conflict with the mempool. Mempool-conflicting222transactions can be seen in the `"mempoolconflicts"` field of `gettransaction`. The inputs223of mempool-conflicted transactions can now be respent without manually abandoning the224transactions when the parent transaction is dropped from the mempool, which can cause wallet225balances to appear higher. (#27307)227- A new `max_tx_weight` option has been added to the RPCs `fundrawtransaction`, `walletcreatefundedpsbt`, and `send`.228It specifies the maximum transaction weight. If the limit is exceeded during funding, the transaction will not be built.229The default value is 4,000,000 WU. (#29523)231- A new `createwalletdescriptor` RPC allows users to add new automatically generated232descriptors to their wallet. This can be used to upgrade wallets created prior to the233introduction of a new standard descriptor, such as taproot. (#29130)235- A new RPC `gethdkeys` lists all of the BIP32 HD keys in use by all of the descriptors in the wallet.236These keys can be used in conjunction with `createwalletdescriptor` to create and add single key237descriptors to the wallet for a particular key that the wallet already knows. (#29130)239- The `sendall` RPC can now spend unconfirmed change and will include additional fees as necessary240for the resulting transaction to bump the unconfirmed transactions' feerates to the specified feerate. (#28979)242- In RPC `bumpfee`, if a `fee_rate` is specified, the feerate is no longer restricted243to following the wallet's incremental feerate of 5 sat/vb. The feerate must still be244at least the sum of the original fee and the mempool's incremental feerate. (#27969)246GUI Changes247-----------249- The "Migrate Wallet" menu allows users to migrate any legacy wallet in their wallet250directory, regardless of the wallets loaded. (gui#824)
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.