Inside Bitcoin
Opening the selected file…
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 29.1 is now available from:3<https://bitcoincore.org/bin/bitcoin-core-29.1/>5This release includes 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.28Compatibility29==============31Bitcoin Core is supported and tested on operating systems using the32Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin33Core should also work on most other Unix-like systems but is not as34frequently tested on them. It is not recommended to use Bitcoin Core on35unsupported systems.37Notable changes38===============40### Mempool Policy42- The maximum number of potentially executed legacy signature operations in a43single standard transaction is now limited to 2500. Signature operations in all44previous output scripts, in all input scripts, as well as all P2SH redeem45scripts (if there are any) are counted toward the limit. The new limit is46assumed to not affect any known typically formed standard transactions. The47change was done to prepare for a possible BIP54 deployment in the future.49- #32521 policy: make pathological transactions packed with legacy sigops non-standard51- The minimum block feerate (`-blockmintxfee`) has been changed to 1 satoshi per kvB. It can still be changed using the52configuration option.54- The default minimum relay feerate (`-minrelaytxfee`) and incremental relay feerate (`-incrementalrelayfee`) have been55changed to 100 satoshis per kvB. They can still be changed using their respective configuration options, but it is56recommended to change both together if you decide to do so.57- Other minimum feerates (e.g. the dust feerate, the minimum returned by the fee estimator, and all feerates used by58the wallet) remain unchanged. The mempool minimum feerate still changes in response to high volume.59- Note that unless these lower defaults are widely adopted across the network, transactions created with lower fee60rates are not guaranteed to propagate or confirm. The wallet feerates remain unchanged; `-mintxfee` must be changed61before attempting to create transactions with lower feerates using the wallet.63- #33106 policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee65### Logging67Unconditional logging to disk is now rate limited by giving each source location68a quota of 1MiB per hour. Unconditional logging is any logging with a log level69higher than debug, that is `info`, `warning`, and `error`. All logs will be70prefixed with `[*]` if there is at least one source location that is currently71being suppressed. (#32604)73When `-logsourcelocations` is enabled, the log output now contains the entire74function signature instead of just the function name. (#32604)76### RPC78- The `dumptxoutset` RPC now requires a `type` parameter to be specified. To maintain pre79v29.0 behavior, use the `latest` parameter. Documenting this change was missed in the v29.080release notes. (#30808)82### Updated Settings84- The `-maxmempool` and `-dbcache` startup parameters are now capped on8532-bit systems to 500MB and 1GiB respectively.87- #32530 node: cap -maxmempool and -dbcache values for 32-bit89### Wallet91- #31757 wallet: fix crash on double block disconnection92- #32553 wallet: Fix logging of wallet version94### P2P96- #32826 p2p: add more bad ports98### Test100- #32069 test: fix intermittent failure in wallet_reorgsrestore.py101- #32286 test: Handle empty string returned by CLI as None in RPC tests102- #32312 test: Fix feature_pruning test after nTime typo fix103- #32336 test: Suppress upstream -Wduplicate-decl-specifier in bpfcc104- #32463 test: fix an incorrect feature_fee_estimation.py subtest105- #32483 test: fix two intermittent failures in wallet_basic.py106- #32630 test: fix sync function in rpc_psbt.py107- #32765 test: Fix list index out of range error in feature_bip68_sequence.py108- #32742 test: fix catchup loop in outbound eviction functional test109- #32823 test: Fix wait_for_getheaders() call in test_outbound_eviction_blocks_relay_only()110- #32833 test: Add msgtype to msg_generic slots111- #32841 feature_taproot: sample tx version border values more112- #32850 test: check P2SH sigop count for coinbase tx113- #32859 test: correctly detect nonstd TRUC tx vsize in feature_taproot114- #33001 test: Do not pass tests on unhandled exceptions116### Indexes118- #33212 index: Don't commit state in BaseIndex::Rewind120### Util122- #32248 Remove support for RNDR/RNDRRS for aarch64124### Build126- #32356 cmake: Respect user-provided configuration-specific flags127- #32437 crypto: disable ASan for sha256_sse4 with Clang128- #32469 cmake: Allow WITH_DBUS on all Unix-like systems129- #32439 guix: accomodate migration to codeberg130- #32551 cmake: Add missed SSE41_CXXFLAGS131- #32568 depends: use "mkdir -p" when installing xproto132- #32678 guix: warn and abort when SOURCE_DATE_EPOCH is set133- #32690 depends: fix SHA256SUM command on OpenBSD (use GNU mode output)134- #32716 depends: Override host compilers for FreeBSD and OpenBSD135- #32760 depends: capnp 1.2.0136- #32798 build: add root dir to CMAKE_PREFIX_PATH in toolchain137- #32805 cmake: Use HINTS instead of PATHS in find_* commands138- #32814 cmake: Explicitly specify Boost_ROOT for Homebrew's package139- #32837 depends: fix libevent _WIN32_WINNT usage140- #32943 depends: Force CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE141- #32954 cmake: Drop no longer necessary "cmakeMinimumRequired" object142- #33073 guix: warn SOURCE_DATE_EPOCH set in guix-codesign144### Gui146- #864 Crash fix, disconnect numBlocksChanged() signal during shutdown147- #868 Replace stray tfm::format to cerr with qWarning149### Doc151- #32333 doc: Add missing top-level description to pruneblockchain RPC152- #32353 doc: Fix fuzz test_runner.py path153- #32389 doc: Fix test_bitcoin path154- #32607 rpc: Note in fundrawtransaction doc, fee rate is for package155- #32679 doc: update tor docs to use bitcoind binary from path156- #32693 depends: fix cmake compatibility error for freetype157- #32696 doc: make -DWITH_ZMQ=ON explicit on build-unix.md158- #32708 rpc, doc: update listdescriptors RCP help159- #32711 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md160- #32719 doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"161- #32776 doc: taproot became always active in v24.0162- #32777 doc: fix Transifex 404s163- #32846 doc: clarify that the "-j N" goes after the "--build build" part164- #32858 doc: Add workaround for vcpkg issue with paths with embedded spaces165- #33070 doc/zmq: fix unix socket path example166- #33088 doc: move cmake -B build -LH up in Unix build docs167- #33133 rpc: fix getpeerinfo ping duration unit docs168- #33119 rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix169- #33236 doc: Remove wrong and redundant doxygen tag171### CI173- #32184 ci: Add workaround for vcpkg's libevent package174- #33261 ci: return to using dash in CentOS job176### Misc178- #32187 refactor: Remove spurious virtual from final ~CZMQNotificationInterface179- #32454 tracing: fix invalid argument in mempool_monitor180- #32771 contrib: tracing: Fix read of pmsg_type in p2p_monitor.py181- #33086 contrib: [tracing] fix pointer argument handling in mempool_monitor.py183Credits184=======186Thanks to everyone who directly contributed to this release:188- 0xB10C189- achow101190- Antoine Poinsot191- benthecarman192- bigspider193- Brandon Odiwuor194- brunoerg195- Bufo196- Christewart197- Crypt-iQ198- davidgumberg199- deadmanoz200- dergoegge201- enirox001202- fanquake203- furszy204- glozow205- instagibbs206- Hennadii Stepanov207- hodlinator208- ismaelsadeeq209- jb55210- jlopp211- josibake212- laanwj213- luisschwab214- MarcoFalke215- Martin Zumsande216- monlovesmango217- nervana21218- pablomartin4btc219- rkrux220- romanz221- ryanofsky222- Sjors223- theStack224- willcl-ark225- zaidmstrr227As well as to everyone that helped with translations on228[Transifex](https://explore.transifex.com/bitcoin/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.