v31.0 Release NotesBitcoin Core version 31.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-31.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/With the release of this new major version, versions 28.x and older are at "End of Life" and will no longer receive updates. In accordance with the security policy, we will in two weeks disclose: - Medium and high severity vulnerabilities fixed in 29.0. There is one of these.
- Low severity vulnerabilities fixed in 31.0. There are none of these.
How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and tested on the following operating systems or newer: Linux Kernel 3.17, macOS 14, and Windows 10 (version 1903). Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesThe default -dbcache value has been increased to 1024 MiB from 450 MiB on systems where at least 4096 MiB of RAM is detected. This improves performance but increases memory usage. On some systems (for example when running in containers), the detected RAM may exceed the memory actually available, which can lead to out-of-memory conditions. To maintain the previous behavior, set -dbcache=450. See reduce-memory.mdfor further guidance on low-memory systems. ( #34692) MempoolThe mempool has been reimplemented with a new design ("cluster mempool"), to facilitate better decision-making when constructing block templates, evicting transactions, relaying transactions, and validating replacement transactions (RBF). Most changes should be transparent to users, but some behavior changes are noted: - The mempool no longer enforces ancestor or descendant size/count limits.
Instead, two new default policy limits are introduced governing connected components, or clusters, in the mempool, limiting clusters to 64 transactions and up to 101 kB in virtual size. Transactions are considered to be in the same cluster if they are connected to each other via any combination of parent/child relationships in the mempool. These limits can be overridden using command-line arguments; see the extended help (-help-debug) for more information.
- Within the mempool, transactions are ordered based on the feerate at which
they are expected to be mined, which takes into account the full set, or "chunk", of transactions that would be included together (e.g., a parent and its child, or more complicated subsets of transactions). This ordering is utilized by the algorithms that implement transaction selection for constructing block templates; eviction from the mempool when it is full; and transaction relay announcements to peers.
- The replace-by-fee validation logic has been updated so that transaction
replacements are only accepted if the resulting mempool's feerate diagram is strictly better than before the replacement. This eliminates all known cases of replacements occurring that make the mempool worse off, which was possible under previous RBF rules. For singleton transactions (that are in clusters by themselves) it's sufficient for a replacement to have a higher fee and feerate than the original. See delvingbitcoin.org post for more information.
- Two new RPCs have been added: getmempoolcluster will provide the set of
transactions in the same cluster as the given transaction, along with the ordering of those transactions and grouping into chunks; and getmempoolfeeratediagram will return the feerate diagram of the entire mempool.
- Chunk size and chunk fees are now also included in the output of
getmempoolentry.
- The "CPFP Carveout" has been removed from the mempool logic. The CPFP carveout
allowed one additional child transaction to be added to a package that's already at its descendant limit, but only if that child has exactly one ancestor (the package's root) and is small (no larger than 10kvB). Nothing is allowed to bypass the cluster count limit. It is expected that smart contracting use-cases requiring similar functionality employ TRUC transactions and sibling eviction instead going forward.
- Some additional discussion can be found at
doc/policy/mempool-terminology.md and doc/policy/mempool-replacements.md.
P2P and network changes- Normally local transactions are broadcast to all connected peers with which we
do transaction relay. Now, for the sendrawtransaction RPC this behavior can be changed to only do the broadcast via the Tor or I2P networks. A new boolean option -privatebroadcast has been added to enable this behavior. This improves the privacy of the transaction originator in two aspects: <ol>
- Their IP address (and thus geolocation) is never known to the recipients.
- If the originator sends two otherwise unrelated transactions, they will not
be linkable. This is because a separate connection is used for broadcasting each transaction. (#29415) </ol>
- New RPCs have been added to introspect and control private broadcast:
getprivatebroadcastinfo reports transactions currently being privately broadcast, and abortprivatebroadcast removes matching transactions from the private broadcast queue. (#34329)
- Transactions participating in one-parent-one-child package relay can now have
the parent with a feerate lower than the -minrelaytxfee feerate, even 0 fee. This expands the change from 28.0 to also cover packages of non-TRUC transactions. Note that in general the package child can have additional unconfirmed parents, but they must already be in-mempool for the new package to be relayed. (#33892)
- The release has asmap data embedded for the first time, allowing the asmap
feature to be used without any externally sourced file. The embedded map was created on 2026-03-05. Despite the data being available, the option remains off-by-default. Users still need to set -asmap or -asmap=1 explicitly to make it possible to use a peer's ASN (ISP/hoster identifier) in netgroup bucketing in order to ensure a higher diversity in their peer set.
Updated RPCs- gettxspendingprevout has 2 new optional arguments: mempool_only and
return_spending_tx. If mempool_only is true it will limit scans to the mempool even if txospenderindex is available. If return_spending_tx is true, the full spending tx will be returned. In addition if txospenderindex is available and a confirmed spending transaction is found, its block hash will be returned. (#24539)
- The getpeerinfo RPC no longer returns the startingheight field unless the
configuration option -deprecatedrpc=startingheight is used. The startingheight field will be fully removed in the next major release. (#34197)
- The getblock RPC now returns a coinbase_tx object at verbosity levels 1,
2, and 3. It contains version, locktime, sequence, coinbase and witness. This allows for efficiently querying coinbase transaction properties without fetching the full transaction data at verbosity 2+. (#34512)
REST API- A new REST API endpoint
(/rest/blockpart/<BLOCK-HASH>.<bin|hex>?offset=<OFFSET>&size=<SIZE>) has been introduced for efficiently fetching a range of bytes from block <BLOCK-HASH>. (#33657) Build System- The minimum supported Clang compiler version has been raised to 17.0 (#33555).
- The minimum supported GCC compiler version has been raised to 12.1 (#33842).
Updated settings- The -paytxfee startup option and the settxfee RPC are now deleted after
being deprecated in Bitcoin Core 30.0. They used to allow the user to set a static fee rate for wallet transactions, which could potentially lead to overpaying or underpaying. Users should instead rely on fee estimation or specify a fee rate per transaction using the fee_rate argument in RPCs such as fundrawtransaction, sendtoaddress, send, sendall, and sendmany. (#32138)
- Specifying -asmap or -asmap=1 will load the embedded asmap data instead of
an external file. In previous releases, if -asmap was specified without a filename, this would try to load an ip_asn.map data file. Now loading an external asmap file always requires an explicit filename like -asmap=ip_asn.map.
- The -maxorphantx startup option has been removed. It was previously
deprecated and has no effect anymore since v30.0. (#33872)
- tor has been removed as a network specification. It was deprecated in favour
of onion in v0.17.0. (#34031)
- When -logsourcelocations is enabled, the log output now contains just the
function name instead of the entire function signature. (#34088)
- The default -dbcache value has been increased to 1024 MiB from 450 MiB
on systems where at least 4096 MiB of RAM is detected. This is a performance increase, but will use more memory. To maintain the previous behaviour, set -dbcache=450. (#34692)
- -privatebroadcast is added to enable private broadcast behavior for
sendrawtransaction.
New settings- -txospenderindex enables the creation of a transaction output spender index
that, if present, will be scanned by gettxspendingprevout if a spending transaction was not found in the mempool. (#24539) GUI changes- The GUI has been updated to Qt 6.8. (#34650)
- The createwallet, createwalletdescriptor and migratewallet commands are
filtered from the console history to improve security and privacy. (gui#901)
- The Restore Wallet dialog shows an error message if the restored wallet name
is empty. (gui#924)
Fee EstimationThe Bitcoin Core fee estimator minimum fee rate bucket was updated from <strong>1 sat/vB</strong> to <strong>0.1 sat/vB</strong>, which matches the node’s default minrelaytxfee. This means that for a given confirmation target, if a sub-1 sat/vB fee rate bucket is the minimum tracked with sufficient data, its average value will be returned as the fee rate estimate. Restarting a node with this change invalidates previously saved estimates in fee_estimates.dat, the fee estimator will start tracking fresh stats. IPC Interface- The IPC mining interface now requires mining clients to use the latest
mining.capnp schema. Clients built against older schemas will fail when calling Init.makeMining and receive an RPC error indicating the old mining interface is no longer supported. Mining clients must update to the latest schema and regenerate bindings to continue working. (#34568) - Mining.createNewBlock now has a cooldown behavior (enabled by default)
that waits for IBD to finish and for the tip to catch up. This usually prevents a flood of templates during startup, but is not guaranteed. (#34184) - Mining.interrupt() can be used to interrupt Mining.waitTipChanged and
Mining.createNewBlock. (#34184) - Mining.createNewBlock and Mining.checkBlock now require a context
parameter. - Mining.waitTipChanged now has a default timeout (effectively infinite /
maxDouble) if the client omits it. - BlockTemplate.getCoinbaseTx() now returns a structured CoinbaseTx instead
of raw bytes. - Removed BlockTemplate.getCoinbaseCommitment() and
BlockTemplate.getWitnessCommitmentIndex(). - Cap’n Proto default values were updated to match the corresponding C++
defaults for mining-related option structs (e.g. BlockCreateOptions, BlockWaitOptions, BlockCheckOptions). CreditsThanks to everyone who directly contributed to this release: - 0xb10c
- Alexander Wiederin
- Alfonso Roman Zubeldia
- amisha
- ANAVHEOBA
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- ANtutov
- Anurag chavan
- Ava Chow
- bensig
- Ben Westgate
- billymcbip
- b-l-u-e
- Brandon Odiwuor
- brunoerg
- Bruno Garcia
- Calin Culianu
- Carl Dong
- Chandra Pratap
- Chris Stewart
- Coder
- Cory Fields
- da1sychain
- Daniela Brozzoni
- Daniel Pfeifer
- David Gumberg
- dergoegge
- Dmitry Goncharov
- Enoch Azariah
- Eugene Siegel
- Fabian Jahr
- fanquake
- Fibonacci747
- flack
- frankomosh
- furszy
- glozow
- Greg Sanders
- Hao Xu
- Hennadii Stepanov
- Henry Romp
- Hodlinator
- ismaelsadeeq
- janb84
- jayvaliya
- joaonevess
- John Moffett
- Josh Doman
- kevkevinpal
- l0rinc
- Luke Dashjr
- Mara van der Laan
- MarcoFalke
- marcofleon
- Martin Zumsande
- Matthew Zipkin
- Max Edwards
- Murch
- Musa Haruna
- naiyoma
- nervana21
- Novo
- optout
- pablomartin4btc
- Padraic Slattery
- Pieter Wuille
- Pol Espinasa
- pythcoiner
- rkrux
- Robin David
- Roman Zeyde
- rustaceanrob
- Ryan Ofsky
- SatsAndSports
- scgbckbone
- Sebastian Falbesoner
- sedited
- seduless
- Sergi Delgado Segura
- Sjors Provoost
- SomberNight
- sstone
- stickies-v
- stratospher
- stringintech
- Suhas Daftuar
- tboy1337
- TheCharlatan
- Tim Ruffing
- Vasil Dimov
- w0xlt
- WakeTrainDev
- Weixie Cui
- willcl-ark
- Woolfgm
- yancy
- Yash Bhutwala
- yuvicc
- zaidmstrr
As well as to everyone that helped with translations on Transifex.
SHA256SUMS: 91917647aaf50965fc834e048256fce17e8f5590658c7e8de2879fb66cdc9a73 bitcoin-31.0-aarch64-linux-gnu-debug.tar.gz 4de1d568dedd48604f75132421bc0abeca432639589b49a3909c81db3a813112 bitcoin-31.0-aarch64-linux-gnu.tar.gz fc17562b66707d0c8d1863af0cd40d7c6818a8d7d7b360b8d43276b1593924d9 bitcoin-31.0-arm-linux-gnueabihf-debug.tar.gz 8c19d007bfc73502625095ea4073af3a98ceb722d500556ab173bac5bcadd0d6 bitcoin-31.0-arm-linux-gnueabihf.tar.gz a2d7a13b4da53d4a3e4c517f3a0269e2429813417bb320d3b268993cfdc545d0 bitcoin-31.0-arm64-apple-darwin.tar.gz fc119a34915daac57e5fbdf181c9295d862d6843d52a9380e39dc0d0ac69cf20 bitcoin-31.0-arm64-apple-darwin.zip 955563c720b4d5fc22a11d4b102940d605f1cb9eb0b564f50deb606412c631e5 bitcoin-31.0-arm64-apple-darwin-codesigning.tar.gz 48d34a140aeaacd63a4bd37c24ed1876df4b077c98a7e0dd9a4483d1032839f4 bitcoin-31.0-arm64-apple-darwin-unsigned.tar.gz b639946d343114cca5d87b218aaece04d0d111374b725d90dffc7e2d1d3b99f5 bitcoin-31.0-arm64-apple-darwin-unsigned.zip 7e45bab1787af974307fc077e6688d3eaab6788f3ad0e3a65d8cc9e428c41219 bitcoin-31.0-codesignatures-31.0.tar.gz 0ba0ef5eea3aefd96cc1774be274c3d594812cfac0988809d706738bb067b3e3 bitcoin-31.0.tar.gz efe3e7d0383d54e5d79ac47911be0100b99872fa5205510a2a22d1194a0212d8 bitcoin-31.0-powerpc64-linux-gnu-debug.tar.gz 1d9c865aa0ccf675fc068e79d9fa57a5a70b59132fca38bb322a7d44ce2f0ff2 bitcoin-31.0-powerpc64-linux-gnu.tar.gz acd0e38f4bb99c7c3024e494ca218d3ae67ec4a8b3b7ae556a8292353fe308b5 bitcoin-31.0-riscv64-linux-gnu-debug.tar.gz 7ece4ea365bba9b2008b27f0717ef6a518598a572edaa2815e775faadc53c136 bitcoin-31.0-riscv64-linux-gnu.tar.gz 56824dd705bc2a3b22d42e8aa02ed53498d491ff7c2c8aa96831333871887ead bitcoin-31.0-x86_64-apple-darwin.tar.gz 8e230f36a2020072763adf742b20d95348cb20aaa0b0a918ca44ecdc83ac4efd bitcoin-31.0-x86_64-apple-darwin.zip fccf54f31bd58a3f834add05fa5df36520313d936445c556be8f71ccf314b658 bitcoin-31.0-x86_64-apple-darwin-codesigning.tar.gz d1d0174f07cf87d9af4318f7072350510fa0f1bf8d3d3b1ee7143ad5967b6bdf bitcoin-31.0-x86_64-apple-darwin-unsigned.tar.gz b8d9b9915a1871ee12a3a9883fd47860028454fcd192864735f2e0d3a88b4735 bitcoin-31.0-x86_64-apple-darwin-unsigned.zip 96e3506195c5cc2ea9ca72fb2ddcbcf5246dd0db0d21d726f3c98eaf0c6b9078 bitcoin-31.0-x86_64-linux-gnu-debug.tar.gz d3e4c58a35b1d0a97a457462c94f55501ad167c660c245cb1ffa565641c65074 bitcoin-31.0-x86_64-linux-gnu.tar.gz 1893e819d7554ca43e6e812dc642bd1fb4570a4077b07a03180ad1041e74e223 bitcoin-31.0-win64-setup.exe 82fd2c504a0f20a31d4d13bd407783d6fc7bf17622d0ce85228a9b92694e03f0 bitcoin-31.0-win64.zip 62baf547357029ac557d6fbbe91742c4ba6c1461c19ed4fab5131d4300b74d93 bitcoin-31.0-win64-codesigning.tar.gz df3f8c2f6ce8fde8d2661d3c01f5265f90f938019d52e2f94acf2a9001af70ae bitcoin-31.0-win64-debug.zip ad31d4d82a0ddcf1340a447575ca958ee664656ca2e77282737898e1b8209ec8 bitcoin-31.0-win64-setup-unsigned.exe 5ecd365b53a2896850178f90302375480933e6c85ef81bb8abe8675fd44e1d9c bitcoin-31.0-win64-unsigned.zip
SHA256SUMS.asc -----BEGIN PGP SIGNATURE-----
iIcEABYIAC8WIQToauc0OWJbvuMGqua2bUJ/hzyxowUCaeJtlhEcbWVAbWF4ZWR3 YXJkcy5tZQAKCRC2bUJ/hzyxo5DLAP9YcudE9gVqBWb8j8mcaucIq7zkNXLvvdT3 FvPw1JeMgwEA3ZVfLbliZcjPYlUDLruSHfEexm+AJMVNgOVYuB1aQQ8= =I0S+ -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEY32x4jNw+Er/iMzgMVI0fQfaYnwFAmnijxoACgkQMVI0fQfa YnyOrxAAp9ytMQCk8p6fbe/7pY9BQy2k0mH1RsEZO6rjct2rzKv0yOjfNpQnbmac rpJfj20D5jRRB+aK8J88KUrcI6+IjdS55tLjr+bx0X9ExwtIVfhLqKJoDDuES8gM ObbxMgIeSmYXlV6w4lV43TA6Uic2NNNNVnYlBWMwzFZ9Gx+VZNKo7gp7o0b/4+cf KVl/FxVIO4eK465QJJ46fkNYhngSq9evcxX51hhmdHFxQ4YgYWYfmKwCjM04Mnrs DyJL65BotnDiaPN9ktxDlQkTuK+qi5m/UQNfwNCl4Nh27qxBGz1uSbOpg37p8ZK6 AC93A2xUbmpwCuRk1KDyGhC7KoiUb5zy58vk4O7wvuXSkafjjdtNL/XFWtjzgTQy wUHAnVSLFX/ttkYiJC2ffjU1HJr7cqH/iOhW79okCYWBv66g6i8Lg90ZmuSP+b/q nuFlF1rlqnKH1BtaWsaKi7m8c1Hp8vI6wjae7Q0Y52L5nEs6Mp1rWoK+r+JU6BDs qayzvb1TQG2BSK+aLx6cBBO7ulfu3qumx8axrEJgxUQPTxoAq9RveAsPpLj+bZjn W832lOm/ixpJI2m0z8qAOTi9PUwhGYpQoT7ctuvmsGdbNqfS+KMV98yk1Oi3Sr4D ARMq3MwH7uzpUd1VyYRWe9vHDama9/QPjoFCKF8Nzlnc7MDi4dk= =2hZp -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJTBAABCAA9FiEEao+cJmUo4lrrHXcxwjcdkctxbqcFAmnifM4fHHNlYmFzdGlh bi5mYWxiZXNvbmVyQGdtYWlsLmNvbQAKCRDCNx2Ry3FupyPDD/0Qvzue71ihGBSP NPuVPda8mDot0sfi8Re/H6NSfPbJVtMecaGXseWOADOaaQmEhfPEKhU1GbjH7brJ jLod8aezWTELEQYtiPDmOPkMtSv6tZkpNxyPY9JN0kGxFHXHeLP/eI4IQiqPIcxJ xkW/0evBEV0vBAMfNn/k/G5OzL+cL6doZ9KhdZEJ03zDMUZmf1kelYSRqX3CQZ1P hn4ge/VDNDb4eeZZNFmT9RoYRiZOmHXqQmx57n+/p8UAoGpy37njn3cxO9FnVuh8 Bcn0LyxFIVxazYK9z0SOH7XTRNnXXk85oimVf8SOzu60fwsXlGNk4Cggd2pmp9F6 Kh/tC07k0m88/sgV7UsV0qfY/wKvaf4vjTt8A01hgD+qWk0nia6QHFLb1Zrv3XlP w+OUk0BkLPRA3MV+8fHqoLHK5TrzdOQMgwoMI8nNuWsk88sgISosfUDQTK021Tt5 vdrr80HfJH3Fd169lE0ZydAQuPcupAv0wrc2PRT+AyFHEX+P4jtmhSlhgvIOtb8Q Q5hbYvWnUyNLuGeWi8JpvJ2lix1BL5x3Pp6a3+2IUj5AxLEMUmlYginVm8JgO0j3 /0mW0j5C5LcOnIG7uIGpSmzrYYBPd7vjqsJQ+ev78/Nqji04b+sXT/MQi2A8uJ18 6mdsX1EjmuPTqLq8VF1cZjWIBkLOhw== =hxbk -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEM8EDtLJ5QXBUbM97z7LIPGbNeSoFAmnikTQACgkQz7LIPGbN eSoxjw/+KPzuZ2zSoN601WPCPhHIsB14qXJ9JV980h9irPZQPldPUBAxLRkEl4Tx OGFik0ushGXHRteVLF2McPJwlsaXXFpW3sCA132P56NgpnHHufE9Q8srGNi23o7S Iih5u8fraRSvtuq/6aYFiivbt69fdDtoaUkdpAVBhJzlkjmbMDo15kf+hF7wWgK+ X9Wq5OcN7pbqKCgHV/HEnqvyLmvK1wt3RiqslyVclSM8lSZa0JTzLEsO9nQToayz QrxZiAsu6MIOAVVlbuZ37bvSISD/hq+G62w016hklnUnRTgRpnKDMw8Diwa8So+E OFYjjnHeQTyAsES0D2QU0MbTvO5PXJlK85UEfCppZli324CAsc/1M/E1/0KSDNpC BCdRPfzbtdp1Mv6Rmjidey+rfFggAOQIrDL3kAq9aAGDOZRcbY19bzh609RoX/z+ 7DCX3701XnWpB9BPuoE51uyI7nNpOX9//3eXuugHaX7YHFY4E7y8Q1LeS+ktUf+j 1I5yWoYHSlSBNKzBq7q+imax6jy+uw9zUjNRtzUb6M3wZ9Rq8a85v7TG1Szm5AVT kBr4dCL6tqSW78R8hkbdZ9igGjsSFi3fv4kQrXyH9oM6TA12jC3CGcwABNmp1GOI rXbnWn2qoSulHHD7SdWztxpZ1uP1rpaTbWdcnL9l5uwC9T6eVKw= =5gXM -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE9Pxw8HMQAoQk78IKjkJWWT8XdyAFAmnik/kRHGd1Z2dlckBn bWFpbC5jb20ACgkQjkJWWT8XdyCvMg/8DUzL+zKNxbkUBno1SsQ8N4YmgLwUiuj5 mHj9A3LhB4sg7araJSXuvaBgP6R+xjDErY89vVjdw+3ZUMPYIT15m/kCeayiCAXE NW2/YjxL9tzjigjARH6vVbI2NpiLec9Ue+O8H3mZMMGc5wAt2J9V5HVscPeiJsy8 G92W3VNMMuhIv70dotr/VFa0zKYAl21u/zT0ksOYuYHzASLfLUJ6OBVAWRwcS8LW mGEztGQQftvL27sIlY6F5fHTQvLJ16NUg6hPciHqkkG/v06cw0+9oryX23+GtcDC 8hkm93StDcf0shLVM65zvlVvbQgtWGeuXeHHDFjvS7SMd31JuQmUpP6NTPg0CPrx ol0DBBLkBEdmLh+LgFek6JwNvq6FJmrcq8L/Ih0oPdR5KmiJGCyhY/4lNu5h9CYv gj8clDaAyPuSpq40OUJG9B/rvlrURfhEDDvMvopsSuWTBGLvxVe1BEN3/LnSZiGG xmDtn44McNPa9hPdtSECMuDV3FjKVfjrJFDuWJVITTnENWeATGiEGT9X5zT2ad2X 8O0ZYfRFkRCglMchNXLIJhSWByY/Ny6VwDRV9qye+uCfPja9BxU0sRAamrSNlbFf JyVbt8JQMn/ei6/EdJusvdvKc72j8mdtNyNevUjHxmqaqfDRbAQeEaM0QfiuyPAm lUoQRADVpE0= =kiqq -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEoAg2YPI1onAAzTyBzm7EmUXBfqYFAmnkwbkACgkQzm7EmUXB fqYpXA/+IkmTQtBnNg3lzjmbaHt8208ROUgwXMqGW/pnum+rxD5beXzExc+kC1Da ABwB+E5A8PQOIcMPjQIi0o3+K1wB5VCDte2dB+Tz17BjGXSrqSheMnSu5Lk0S7Yp CYkBPapkIWMg6OIC7OSe0GZouV3Lnem1SIUPI9MAJ53V2Rfmb+zKmZHo56TAda+R vBYbz4yRoEjIMDPNbQGZfdn64k5bm2HxksK7UZqQ2/qmqw8/wG88ERAFEDD3P2CE kIPon4M+QNzjjhxd2GKvs5dpZ/7C/sT5Ft7wzUZz+tXdoXTbJ1fqctENFrIXnA0H JkTWHOop4k39kZ+qzCG1vHatl6rDtgnRR6Ce80eLVkxbc1w/MSU7TlKvxCnraVXi S9NVjwvDL/diY/oTt0pRzXimBNGhN2A9JjwiM36P0WJ3vwW4izeye3/UOCqnzB62 m9leE0KX4fbHb5O1XWYsHs6pjoTsO4LiTS62tcXIYYyXQfvLKZc4B1KbaSaOFo9e tVboF/OjV1dTFk79ZxtAwYHm0YlCbfS0g1iDTl/ZXU3vGcMNMI1pHe/R+cNvwTIG NNJW7Kqy/yr+wFNqL7AHDlnIVCcsHDGhCC6jitFZCue9wA1lQgQJOLQE7nQO+oLX gqn/+Xpr+haTj9Lk/wErHdgpxXdWeBf5MH/QLG8hkPZgN3yt1kM= =ZyJI -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJPBAABCAA5FiEEDMuq/Xai7OLM0xQd4v/VsdiMqX0FAmnipLcbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzAAoJEOL/1bHYjKl9NwsP/1FBZX79KU8Jtie8HvAT 6wI4wZdYYfnDfk3QmqpM8P1qnjw38hpXimNjj3Zienjna6HbB+WEk1f7aMq6CSGi s/mE0GN8Z5AHiCF4Vuhpf1HCXEz0nWbatvIzE9NvVMC4Q9hyzbgxHggG39+q+J4b wcpEzbuxAbG8HzKZYvxaaJMNPWCKoqB5pas8THnm8mgNQgRSmM2shHBHxYgsR1A1 YMlPAhjre3kSI/ziJ+C4Fpj15fTtZQQ+2Oa80NBpdMmMFTal0OowaHHiggZpmlR0 vk5BWeEQbrFY/+assv0tmAUgaoER50CAOIYYzZgCiE+B8eWmeexoaDP5IbeN8Nli VBmaQ8YG6Zhx5mU78Cx1HwooN8qQ+iSVkeNfHvErx4pMa6F0nGvNj4iVaMlOFlOJ vXOfpYaoN58r2u/ebyNHfUq81CsofDm6RBZ3gmLHPejJCTrV/gkwRckvLEgrbvuM HF60k/Wv2EyeNti6yRRRlH3Ufbz+7JcGPL3n651GLSSu4urxaaRtzYEKInyGSVbd gA//O8jJOPC3yG+VFEYBEbxIuIuExeIQeLM5qZsXhj2h5/HlGBYy7Lgbi6oC2RP7 t0z5YMZWApUTRuTCWzhj3qSK0/9RaOZuKxcnSZgMx8dOWLnFjqm30sbAYCIxH24Q oDE6va0QAC0/wouJDlSjMjUW =301Y -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJjBAABCABNFiEEz7FuIclQ9n+pXlWPLuufXMCVJsEFAmnkxMUbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzExxmYW5xdWFrZUBnbWFpbC5jb20ACgkQLuufXMCV JsFMeA//UICUvduTbiqp3E5Bx2k5m6mw3FihyrV8xXa0vYrt1qfL2x4TqjWPiajH prjhxeUeSQ6GQX8huRippvbdxm8cc4+wGngRxE0hRTCW6mjERPLeugEEhjjRn0d9 Aw2YVWF1vYnXSiGZVwcL7J1BO1K38w1sXzAQnUbo6OmwRJonQoL71Vc32EdsghDs xuVhLB22+RFFnW3WWfQAeUsZjQ+ZlVbX49Z9JON01B1bVHnF+ktHWiTwNVfCZEG6 8CV7xRArztQtiKAyAmMG0R0o8Z5ZwdR+b5FVQUXOe5x4JYaziMicZI1FLzv12zLx 1YsiTQxT/AFfh/P7w35N+D6Z3ghrfUOlxl6GFt55mTgsVOmzrXfK3pvCZqZ+2eIL cYNcIynfCPPBD5O43iu4XNYTjMQG0VVCyOyn+ccWunw2HqrCyYMQzHfA8hxht1jR PYdQXXW+iJ+FNQkbEXDopZNq3XnJLdJZFdoSgsOFpXnelFTBmvIdgGeRkkcJeQcc 7etccKidctoRUvvlEp8qnbbTLebjU622mBJVomL7bKcdPNqGIERtRajH+ITXKyav k8hfuF4Ys5ZFkOMiJ9qqMtGo7hy+v1v7M1Y+Ww7GvtfkOXkKQ7NLpMnQHrYYO9SC yhTr72ixu+qVe6GJ/JSjHC0m28zL2HjmNu/iuUTpMSJ6lMaG48w= =xdJC -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJkBAABCABOFiEE5hdzzW4BBA4vG9eM5+KYS2KJyToFAmniZUobFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzFBxwaW5oZWFkbXpAZ21haWwuY29tAAoJEOfimEti ick6cV0QAMuCv6INTZDjddL76muuTFPXqC1TrND44V30U2EoS7E4Fy6XeMTDfjB9 yoioNhzPZC0ci/JQGldY4g+mZyhtnZ56iprvWumyL3sIjHFnpv2Xj7JI4lV52hTj YJXh4SkUqVXGY+7XYiSNY57M2p6yqDUVfMtDf2gU88Els3OHXzImduBHOSyR9zIo lPrAa3sPgAtTFHxXGguJXf83O5bKeG49KhNXMzjMaDG/DN57CcW3/dnLKfFDMZKo iOuXGNU11giL1lmruEvFoTaGAtyh8K6isddjEPShMY7iVCHa/pndAWARm5A1SZbs K45gMuN0I3a7UxlM9ZeDyupKY5bsIatLLye6FU5mtG8r4e65SDycEdkgs+K9iSqE +Fentk/J49CXClQEXExqAA/26BV+WtMOgGt/i3aGS17YJqbqOlBj1Ok3RV7gnhPf xU2UV45GT1s+fPysyU7bgM2Mf93TAm71yQGTcruOLXoVC28s/kHBgls6MJW8kBQ+ nlMcVhdelKA+fbWuVQrMTZFN35kT/Q3ZRtGDKWp7QGPA/NUEL50hBveb2768EVZp jTJoV+NtYkfCzJubgkmaafAUBFhqyQ1jv2UGIPL0YiAMcpcigY3vi4Nk1gxHV0vZ grZ8vGZ0M4FYALho9JgQIBL3laqXvq5xmfxNi0nbTTka5W4O+T1r =nHu3 -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJGBAABCAAwFiEE0dvyxLlvLev0wWZUQQEIES5+qB8FAmnjVsQSHGhlYmFzdG9A Z21haWwuY29tAAoJEEEBCBEufqgfSJ4QAJxzjEYljp09rnuPkacjFxjEDaH0gQI/ uaP81rBlyKzV2IhBpus46KVB9qVkS03euYG8iQwNHnXu2mRe8n4b/Y5CQcJg0PWa nR8lHXPgqq8evZqhbrnEbwayH/39dsGtwUACx4GUbDB4H+lExJbijfWw7bW9UiTB 6do+aXB2n+KxIqaMajC3n0MqY49jbfgKUGllTrD/xY35LJflBR1RWxwJka4Z2Die y9GgDB5c4T57ecD/a0VQkk2NTN7Nvq0vVkQGivABJtFOavL/Dm3g8y9jzXCZMNsA IOMrot3e6FJBT0b70ufIDDHb2YaF2CdOAnqwsNDwZ0MFVqZeD1kdhQSujb0tD/A8 D9HQ8b61PyxXmHFsK0LgYjIeF2QAPn+VBtthsjPi6w7Gmq1MY8L+pFkAiD/B+oUZ SO+tWdtKCL5wd6PGHUhT4jsb8VrxeaSvZHthcSQqw+Am3OiuGBQJoHWvokF7kakT Er0bH+YbxIOxjq1fmIap8/93tJiQMd9hz2gkD835PzQOsq80BsE7m2SaV+4eQ+23 5BvB/oJSw3ybAbGic3JnSnF+UyiYrQkHOlHGpz2WcIU7b/pPVLZ0cXru2LF3RBAn +9qKMl4B3sHRfcITFjK6tbLsjZijIbjEqP05vEh34O2wmJ7hsKhpCi8mM4mid7kK xRxnVReX+3hb =/+3r -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEFSgSMAeFyWRE0zNNF1ZXMuCOXkEFAmnibngQHG1lQGFjaG93 MTAxLmNvbQAKCRAXVlcy4I5eQbvUEACEQe21NsLuIsGABv7k8si3XRQUacmQ88kP Zf0TDmziIECATf7FzFZqlsbu/dyUMYI/UQbIunp0tNcu+SCX8zF1h0MtlO75NS3E 8b+yjcyGw5BUSXgG4Bw4ojCTSGxT7XcBJNTuVu7SpcxXUCZucQhGposDre3NgW7l 1beIZmm2rlyVHoazvn+a+Ra9TBkha8vTSnsm0YjQjuabb/xuK2zMf1gmnlDQYgmA PClzJW4Xpb5vB3gbPitQT3NYGeezkQkhCea6BR2LlzyXJyIz/nY5gcmprdwA6J/c 9tZF84dLwWAYZbfqL3wFxbO3Z4sTYrZa+2T0/5rQdLXZhnEfPP5gw3GpHfXTyY4K IqBHBop9ajz115OXNe9OI8hNTRTxdTfD48dm7W8N4kY1FWcgQ+6y8mbLJnPlxG7U gfJf05oL+7WOBa0RQQa5GmuBUN6SXYJn1CEaPckBygaGYVj215smYV29mShiNMKW AqWlYYLqok10uyvszmOHE1fmTXnKG6PqxyQJowQavS22kTB02pNhtF662Ne9Weqc V4UmunEQCjpaz9t3zvlF/uHZAW3sXtM1Hd9u3sIS0b20SJ9qJoMGjJw3vM7+BUtF yK0jwZDBwbGYp7rRH3rpKcuCbO14vk3IlFEUKy6DusheIedjYQyTRfLNCM/q0kGw +qwG/hTk3Q== =6A8Y -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJPBAABCAA5FiEE7ZvfetalXiMuhFJCV/+b28wwEAkFAmnjb7gbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzAAoJEFf/m9vMMBAJ+J0P/2V/oWfOAM/Ozy1+E3zr Isy4KaNs52p8SM+MNrYNlSvZj/qcq55BF32BJfDduOkfw70pKCwGT+0SGLdAcAvP T/cLfDirs4Q9ICWaGE0rp9YJ1USZl9HfA38kCGmb9ciwGWBpNe80P2p6EhGQXpwY XR114mFpVYHjE35xqrjdqHN0GeafsEpDdzSD5KWTUnimj0LEgZCGVyt10FnUs62n Fw0WR3ZhCq1LFDrQGCqNQE/kZhRiyRwSdjyFk7YvkJcUcegya+A3CrtXCTmyBVNl uCH6xzVdAMQrRRlM4WxMult4RuxrxCjhqLq4gyF9B0b1GWKuQd3HFVvTQ366yBbX AONmtmuqPvk4sT2dANwCs1vuPRv0jj7vuNoYUmFcv3acmOtP+NSQ+5D2gyzvT1eE IR9KFD428c4003KTkuddeV6mY3XErz+YB+SBg+P4A+3uBuiS4ktnrbGdfpi/I5T3 4w+4YYjfp8GFT3kpM3jkIeY9GgCZDDx2RNopS/TdmCBn0riO08ViQZORrQPjUndn OTTNbdvCSBI0l10d4a5sk2jYZL2o4OqkDj30nxuwF3LWs3sokaVJtmEvuNaUCNiB +lQidMspA9irO7K9mduIpEHwK13YOVraeaeWH3+0oIkcJsSltfrtEzxm0LNJzIFq BXpOQo0jrRvW074o/u4bnW0j =8qVm -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJJBAABCAAzFiEEnTzIanL4SUNC6l/RCkG9w/T6/xwFAmnib4IVHGFhcm9uQHNp cHNvcmNlcnkuY29tAAoJEApBvcP0+v8cNdYQAIEaZzpdzje3kRB8lS7r5e9NPD2W iphsHxNfQ50+oklWUWafVzp2QakiX1kOLYl2KZnfkifHZMGnUvNbNpQDYAJ2pOAD ewI9mq/X5KVrwneF3Upkso/GP9idz7jIRcfffjhma+W9lsFi2psBbjDFqPmfnKbN o/FHbh0zAIeZzR+CLd0jFXa8hH9dg/EI2dfatlPAxhcBIKk8IOMdYsmfS1l/tYOG E9+GG4M1sNKymo/GAp7eD6QUmPGPmfl4waLNNcIfs4rbH+LoXBIe1yfnO1SCRY1t fJtRPJ6zuN7JtfxlDmaOhQpd134dDV0/SMLeIOAAOibrZ/E2NCJYIOc/o39A5HTO c7RMSynu/1bX8Pc0SFtMx0kSsCvuA2n0inG4HOYGX+2jBIQN5wIOxNawzfrK/nUT Ds4aW50ptI/8LTo3gyv0rVS3kPC7WSxBFfkWRLLKi6hQD4qSjm5GR0i1ZWa7p65A ueSUB8WXHzBtvQ1NeQX1rypv4dYKzcOPJ6tn7etLgk+Y06q0OqWPj7wHdPD6LEN4 6gZy9LfNnj4GKfSr/K0j7Dh4qEuu9YAhflYoV4Zl5LTBqD2ik+QnuMwvwgYBlZvA 6hPKesXeLAMtWSQKsBR9Q3piaejbffUgRS01Vo1W2bP9c6VLWGGJrTeAfzy5VAX+ K3JKJlAi+EuCtitS =MNmq -----END PGP SIGNATURE-----
|
|
|
|
v30.2 Release NotesBitcoin Core version v30.2 is now available from: https://bitcoincore.org/bin/bitcoin-core-30.2/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and tested on operating systems using the Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesWallet- #34156 wallet: fix unnamed legacy wallet migration failure
- #34215 wallettool: fix unnamed createfromdump failure walletsdir deletion
- #34221 test: migration, avoid backup name mismatch in default_wallet_failure
IPC- #33511 init: Fix Ctrl-C shutdown hangs during wait calls
Build- #33950 guix: reduce allowed exported symbols
- #34107 build: Update minimum required Boost version
- #34227 guix: Fix osslsigncode tests
Test- #34137 test: Avoid hard time.sleep(1) in feature_init.py
- #34226 wallet: test: Relative wallet failed migration cleanup
Fuzz- #34091 fuzz: doc: remove any mention to address_deserialize_v2
Doc- #34182 doc: Update OpenBSD Build Guide
Misc- #34174 doc: update copyright year to 2026
CreditsThanks to everyone who directly contributed to this release: - Ava Chow
- brunoerg
- davidgumberg
- fanquake
- furszy
- Hennadii Stepanov
- MarcoFalke
- Ryan Ofsky
As well as to everyone that helped with translations on Transifex.
|
|
|
|
NOTICE: Wallet Migration bug present in Bitcoin Core wallet 30.0 & 30.1.We have become aware of a wallet migration bug introduced in Bitcoin Core 30.0 and 30.1. Under rare circumstances, when the migration of a wallet.dat file fails, all files in the wallet directory may be deleted in the process, potentially resulting in a loss of funds. A fix is forthcoming and will be released as 30.2, but out of an abundance of caution we have removed the binaries for affected releases from bitcoincore.org. At this time, we ask users to not attempt wallet migrations using the GUI or RPC until v30.2 is released. All other users, including existing wallet users, are unaffected and can keep using existing installations. Specifically, it requires the presence of a default (unnamed) wallet.dat file, which has not been created by default since 0.21 (released 5 years ago), that fails to be migrated or loaded. One condition that may trigger this is when pruning is enabled, and the wallet was unloaded while pruning happened. v30.0 Release NotesBitcoin Core version v30.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-30.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and tested on operating systems using the Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesPolicy- The maximum number of potentially executed legacy signature operations in a
single standard transaction is now limited to 2500. Signature operations in all previous output scripts, in all input scripts, as well as all P2SH redeem scripts (if there are any) are counted toward the limit. The new limit is assumed to not affect any known typically formed standard transactions. The change was done to prepare for a possible BIP54 deployment in the future. (#32521)
- -datacarriersize is increased to 100,000 by default, which effectively uncaps
the limit (as the maximum transaction size limit will be hit first). It can be overridden with -datacarriersize=83 to revert to the limit enforced in previous versions. (#32406)
- Multiple data carrier (OP_RETURN) outputs in a transaction are now permitted for
relay and mining. The -datacarriersize limit applies to the aggregate size of the scriptPubKeys across all such outputs in a transaction, not including the scriptPubKey size itself. (#32406)
- The minimum block feerate (-blockmintxfee) has been changed to 0.001 satoshi per
vB. It can still be changed using the configuration option. This option can be used by miners to set a minimum feerate on packages added to block templates. (#33106)
- The default minimum relay feerate (-minrelaytxfee) and incremental relay feerate
(-incrementalrelayfee) have been changed to 0.1 satoshis per vB. They can still be changed using their respective configuration options, but it is recommended to change both together if you decide to do so. (#33106)
Other minimum feerates (e.g. the dust feerate, the minimum returned by the fee estimator, and all feerates used by the wallet) remain unchanged. The mempool minimum feerate still changes in response to high volume.
Note that unless these lower defaults are widely adopted across the network, transactions created with lower fee rates are not guaranteed to propagate or confirm. The wallet feerates remain unchanged; -mintxfee must be changed before attempting to create transactions with lower feerates using the wallet. (#33106)
P2P and network changes- Opportunistic 1-parent-1-child package relay has been improved to handle
situations when the child already has unconfirmed parent(s) in the mempool. This means that 1p1c packages can be accepted and propagate, even if they are connected to broader topologies: multi-parent-1-child (where only 1 parent requires fee-bumping), grandparent-parent-child (where only parent requires fee-bumping) etc. (#31385)
- The transaction orphanage, which holds transactions with missing inputs temporarily
while the node attempts to fetch its parents, now has improved Denial of Service protections. Previously, it enforced a maximum number of unique transactions (default 100, configurable using -maxorphantx). Now, its limits are as follows: the number of entries (unique by wtxid and peer), plus each unique transaction's input count divided by 10, must not exceed 3,000. The total weight of unique transactions must not exceed 404,000 Wu multiplied by the number of peers. (#31829)
- The -maxorphantx option no longer has any effect, since the orphanage no longer
limits the number of unique transactions. Users should remove this configuration option if they were using it, as the setting will cause an error in future versions when it is no longer recognized. (#31829)
New bitcoin command- A new bitcoin command line tool has been added to make features more discoverable
and convenient to use. The bitcoin tool just calls other executables and does not implement any functionality on its own. Specifically bitcoin node is a synonym for bitcoind, bitcoin gui is a synonym for bitcoin-qt, and bitcoin rpc is a synonym for bitcoin-cli -named. Other commands and options can be listed with bitcoin help. The new bitcoin command is an alternative to calling other commands directly, but it doesn't replace them, and there are no plans to deprecate existing commands. (#31375) External Signing- Support for external signing on Windows has been re-enabled. (#29868)
IPC Mining Interface- The new bitcoin command does support one new feature: an (experimental) IPC Mining
Interface that allows the node to work with Stratum v2 or other mining client software, see (#31098). When the node is started with bitcoin -m node -ipcbind=unix it will listen on a unix socket for IPC client connections, allowing clients to request block templates and submit mined blocks. The -m option launches a new internal binary (bitcoin-node instead of bitcoind) and is currently required but will become optional in the future (with [#33229](https://github.com/bitcoin/bitcoin/pull/33229)).
- IPC connectivity introduces new dependencies (see multiprocess.md),
which can be turned off with the -DENABLE_IPC=OFF build option if you do not intend to use IPC. (#31802)
Install changes- The test_bitcoin executable is now installed in libexec/ instead of bin/.
It can still be executed directly, or accessed through the new bitcoin command as bitcoin test. The libexec/ directory also contains new bitcoin-node and bitcoin-gui binaries which support IPC features and are called through the bitcoin tool. In source builds only, test_bitcoin-qt, bench_bitcoin, and bitcoin-chainstate are also now installed to libexec/ instead of bin/ and can be accessed through the new bitcoin command. See bitcoin help output for details. (#31679)
- On Windows, the installer no longer adds a “(64-bit)” suffix to entries in the
Start Menu (#32132), and it now automatically removes obsolete artifacts during upgrades (#33422).
Indexes- The implementation of coinstatsindex was changed to prevent an overflow bug that
could already be observed on the default Signet. The new version of the index will need to be synced from scratch when starting the upgraded node for the first time.
The new version is stored in /indexes/coinstatsindex/ in contrast to the old version which was stored at /indexes/coinstats/. The old version of the index is not deleted by the upgraded node in case the user chooses to downgrade their node in the future. If the user does not plan to downgrade it is safe for them to remove /indexes/coinstats/ from their datadir. A future release of Bitcoin Core may remove the old version of the index automatically. (#30469)
Logging- Unconditional logging to disk is now rate limited by giving each source location
a quota of 1MiB per hour. Unconditional logging is any logging with a log level higher than debug, that is info, warning, and error. All logs will be prefixed with - [/tt] if there is at least one source location that is currently
being suppressed. (#32604)
- When -logsourcelocations is enabled, the log output now contains the entire
function signature instead of just the function name. (#32604)
Updated RPCs- The -paytxfee startup option and the settxfee RPC are now deprecated and
will be removed in Bitcoin Core 31.0. They allowed the user to set a static fee rate for wallet transactions, which could potentially lead to overpaying or underpaying. Users should instead rely on fee estimation or specify a fee rate per transaction using the fee_rate argument in RPCs such as fundrawtransaction, sendtoaddress, send, sendall, and sendmany. (#31278)
- Any RPC in which one of the parameters is a descriptor will throw an error
if the provided descriptor contains a whitespace at the beginning or the end of the public key within a fragment - e.g. pk( KEY) or pk(KEY ). (#31603)
- The submitpackage RPC, which allows submissions of child-with-parents
packages, no longer requires that all unconfirmed parents be present. The package may contain other in-mempool ancestors as well. (#31385)
- The waitfornewblock RPC now takes an optional current_tip argument. It
is also no longer hidden. (#30635)
- The waitforblock and waitforblockheight RPCs are no longer hidden. (#30635)
- The psbtbumpfee and bumpfee RPCs allow a replacement under fullrbf and no
longer require BIP-125 signalling. (#31953)
- Transaction Script validation errors used to return the reason for the error
prefixed by either mandatory-script-verify-flag-failed if it was a consensus error, or non-mandatory-script-verify-flag (without "-failed") if it was a standardness error. This has been changed to block-script-verify-flag-failed and mempool-script-verify-flag-failed for all block and mempool errors respectively. (#33183)
- The getmininginfo RPC now returns "blockmintxfee" result specifying the value of
-blockmintxfee configuration. (#33189)
- The getmempoolinfo RPC now returns an additional "permitbaremultisig" and
"maxdatacarriersize" field, reflecting the -permitbaremultisig and -datacarriersize config values. (#29954)
Changes to wallet-related RPCs can be found in the Wallet section below. New RPCs- A new REST API endpoint (/rest/spenttxouts/BLOCKHASH) has been introduced for
efficiently fetching spent transaction outputs using the block's undo data (#32540). Build SystemUpdated settings- The -maxmempool and -dbcache startup parameters are now capped on 32-bit systems
to 500MB and 1GiB respectively. (#32530)
- The -natpmp option is now set to 1 by default. This means nodes with -listen
enabled (the default) but running behind a firewall, such as a local network router, will be reachable if the firewall/router supports any of the PCP or NAT-PMP protocols. (#33004)
- The -upnp setting has now been fully removed. Use -natpmp instead. (#32500)
- Previously, -proxy specified the proxy for all networks (except I2P which
uses -i2psam) and only the Tor proxy could have been specified separately via -onion. Now, the syntax of -proxy has been extended and it is possible to specify separately the proxy for IPv4, IPv6, Tor and CJDNS by appending = followed by the network name, for example -proxy=127.0.0.1:5555=ipv6 configures a proxy only for IPv6. The -proxy option can be used multiple times to define different proxies for different networks, such as -proxy=127.0.0.1:4444=ipv4 -proxy=10.0.0.1:6666=ipv6. Later settings override earlier ones for the same network; this can be used to remove an earlier all-networks proxy and use direct connections only for a given network, for example -proxy=127.0.0.1:5555 -proxy=0=cjdns. (#32425)
- The -blockmaxweight startup option has been updated to be debug-only.
It is still available to users, but now hidden from the default -help text and shown only in -help-debug (#32654).
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. Wallet- BDB legacy wallets can no longer be created or loaded. They can be migrated
to the new descriptor wallet format. Refer to the migratewallet RPC for more details.
- The legacy wallet removal drops redundant options in the bitcoin-wallet tool,
such as -withinternalbdb, -legacy, and -descriptors. Moreover, the legacy-only RPCs addmultisigaddress, dumpprivkey, dumpwallet, importaddress, importmulti, importprivkey, importpubkey, importwallet, newkeypool, sethdseed, and upgradewallet, are removed. (#32944, #28710, #32438, #31250)
- Support has been added for spending TRUC transactions received by the
wallet, as well as creating TRUC transactions. The wallet ensures that TRUC policy rules are being met. The wallet will throw an error if the user is trying to spend TRUC utxos with utxos of other versions. Additionally, the wallet will treat unconfirmed TRUC sibling transactions as mempool conflicts. The wallet will also ensure that transactions spending TRUC utxos meet the required size restrictions. (#32896)
- Since descriptor wallets do not allow mixing watchonly and non-watchonly descriptors,
the include_watchonly option (and its variants in naming) are removed from all RPCs that had it. (#32618)
- The iswatchonly field is removed from any RPCs that returned it. (#32618)
- unloadwallet - Return RPC_INVALID_PARAMETER when both the RPC wallet endpoint
and wallet_name parameters are unspecified. Previously the RPC failed with a JSON parsing error. (#32845)
- getdescriptoractivity - Mark blockhashes and scanobjects arguments as required,
so the user receives a clear help message when either is missing. As in unloadwallet, previously the RPC failed with a JSON parsing error. (#32845)
- getwalletinfo - Removes the fields balance, immature_balance and
unconfirmed_balance. (#32721)
- getunconfirmedbalance - Removes this RPC command. You can query the getbalances
RPC and inspect the ["mine"]["untrusted_pending"] entry within the JSON response. (#32721)
- The following RPCs now contain a version parameter that allows
the user to create transactions of any standard version number (1-3):
- createrawtransaction
- createpsbt
- send
- sendall
- walletcreatefundedpsbt
(#32896)
GUI changes- The GUI has been migrated from Qt 5 to Qt 6. On Windows, dark mode is now supported.
On macOS, the Metal backend is now used. (#30997)
- A transaction's fee bump is allowed under fullrbf and no longer requires
BIP-125 signalling. (#31953)
- Custom column widths in the Transactions tab are reset as a side-effect of legacy
wallet removal. (#32459)
Low-level changes- Logs now include which peer sent us a header. Additionally there are fewer
redundant header log messages. A side-effect of this change is that for some untypical cases new headers aren't logged anymore, e.g. a direct BLOCK message with a previously unknown header and submitheader RPC. (#27826) CreditsThanks to everyone who directly contributed to this release: - 0xb10c
- amisha
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Ava Chow
- benthecarman
- Brandon Odiwuor
- brunoerg
- Bue-von-hon
- Bufo
- Chandra Pratap
- Chris Stewart
- Cory Fields
- Daniel Pfeifer
- Daniela Brozzoni
- David Gumberg
- deadmanoz
- dennsikl
- dergoegge
- enoch
- Ethan Heilman
- Eugene Siegel
- Eunovo
- Eval EXEC
- Fabian Jahr
- fanquake
- Florian Schmaus
- fuder.eth
- furszy
- glozow
- Greg Sanders
- Hao Xu
- Haoran Peng
- Haowen Liu
- Hennadii Stepanov
- Hodlinator
- hoffman
- ishaanam
- ismaelsadeeq
- Jameson Lopp
- janb84
- Jiri Jakes
- John Bampton
- Jon Atack
- josibake
- jurraca
- kevkevin
- kevkevinpal
- kilavvy
- Kristaps Kaupe
- l0rinc
- laanwj
- leopardracer
- Lőrinc
- Luis Schwab
- Luke Dashjr
- MarcoFalke
- marcofleon
- Martin Zumsande
- Matt Corallo
- Matthew Zipkin
- Max Edwards
- monlovesmango
- Murch
- naiyoma
- nervana21
- Nicola Leonardo Susca
- Novo
- pablomartin4btc
- Peter Todd
- Pieter Wuille
- Pol Espinasa
- Prabhat Verma
- rkrux
- Roman Zeyde
- Ryan Ofsky
- Saikiran
- Salvatore Ingala
- Sebastian Falbesoner
- Sergi Delgado Segura
- Shunsuke Shimizu
- Sjors Provoost
- stickies-v
- stratospher
- stringintech
- strmfos
- stutxo
- tdb3
- TheCharlatan
- Tomás Andróil
- UdjinM6
- Vasil Dimov
- VolodymyrBg
- w0xlt
- will
- willcl-ark
- William Casarin
- woltx
- yancy
- zaidmstrr
As well as to everyone that helped with translations on Transifex.
|
|
|
|
Bitcoin Core version 29.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-29.1/This release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and tested on operating systems using the Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesMempool Policy- The maximum number of potentially executed legacy signature operations in a
single standard transaction is now limited to 2500. Signature operations in all previous output scripts, in all input scripts, as well as all P2SH redeem scripts (if there are any) are counted toward the limit. The new limit is assumed to not affect any known typically formed standard transactions. The change was done to prepare for a possible BIP54 deployment in the future.
- #32521 policy: make pathological transactions packed with legacy sigops non-standard
- The minimum block feerate (-blockmintxfee) has been changed to 1 satoshi per kvB. It can still be changed using the
configuration option.
- The default minimum relay feerate (-minrelaytxfee) and incremental relay feerate (-incrementalrelayfee) have been
changed to 100 satoshis per kvB. They can still be changed using their respective configuration options, but it is recommended to change both together if you decide to do so.
- Other minimum feerates (e.g. the dust feerate, the minimum returned by the fee estimator, and all feerates used by
the wallet) remain unchanged. The mempool minimum feerate still changes in response to high volume. - Note that unless these lower defaults are widely adopted across the network, transactions created with lower fee
rates are not guaranteed to propagate or confirm. The wallet feerates remain unchanged; -mintxfee must be changed before attempting to create transactions with lower feerates using the wallet.
- #33106 policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee
LoggingUnconditional logging to disk is now rate limited by giving each source location a quota of 1MiB per hour. Unconditional logging is any logging with a log level higher than debug, that is info, warning, and error. All logs will be prefixed with [*] if there is at least one source location that is currently being suppressed. ( #32604) When -logsourcelocations is enabled, the log output now contains the entire function signature instead of just the function name. ( #32604) RPC- The dumptxoutset RPC now requires a type parameter to be specified. To maintain pre
v29.0 behavior, use the latest parameter. Documenting this change was missed in the v29.0 release notes. (#30808) Updated Settings- The -maxmempool and -dbcache startup parameters are now capped on
32-bit systems to 500MB and 1GiB respectively.
- #32530 node: cap -maxmempool and -dbcache values for 32-bit
Wallet- #31757 wallet: fix crash on double block disconnection
- #32553 wallet: Fix logging of wallet version
P2P- #32826 p2p: add more bad ports
Test- #32069 test: fix intermittent failure in wallet_reorgsrestore.py
- #32286 test: Handle empty string returned by CLI as None in RPC tests
- #32312 test: Fix feature_pruning test after nTime typo fix
- #32336 test: Suppress upstream -Wduplicate-decl-specifier in bpfcc
- #32463 test: fix an incorrect feature_fee_estimation.py subtest
- #32483 test: fix two intermittent failures in wallet_basic.py
- #32630 test: fix sync function in rpc_psbt.py
- #32765 test: Fix list index out of range error in feature_bip68_sequence.py
- #32742 test: fix catchup loop in outbound eviction functional test
- #32823 test: Fix wait_for_getheaders() call in test_outbound_eviction_blocks_relay_only()
- #32833 test: Add msgtype to msg_generic slots
- #32841 feature_taproot: sample tx version border values more
- #32850 test: check P2SH sigop count for coinbase tx
- #32859 test: correctly detect nonstd TRUC tx vsize in feature_taproot
- #33001 test: Do not pass tests on unhandled exceptions
Indexes- #33212 index: Don't commit state in BaseIndex::Rewind
Util- #32248 Remove support for RNDR/RNDRRS for aarch64
Build- #32356 cmake: Respect user-provided configuration-specific flags
- #32437 crypto: disable ASan for sha256_sse4 with Clang
- #32469 cmake: Allow WITH_DBUS on all Unix-like systems
- #32439 guix: accomodate migration to codeberg
- #32551 cmake: Add missed SSE41_CXXFLAGS
- #32568 depends: use "mkdir -p" when installing xproto
- #32678 guix: warn and abort when SOURCE_DATE_EPOCH is set
- #32690 depends: fix SHA256SUM command on OpenBSD (use GNU mode output)
- #32716 depends: Override host compilers for FreeBSD and OpenBSD
- #32760 depends: capnp 1.2.0
- #32798 build: add root dir to CMAKE_PREFIX_PATH in toolchain
- #32805 cmake: Use HINTS instead of PATHS in find_* commands
- #32814 cmake: Explicitly specify Boost_ROOT for Homebrew's package
- #32837 depends: fix libevent _WIN32_WINNT usage
- #32943 depends: Force CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE
- #32954 cmake: Drop no longer necessary "cmakeMinimumRequired" object
- #33073 guix: warn SOURCE_DATE_EPOCH set in guix-codesign
Gui- #864 Crash fix, disconnect numBlocksChanged() signal during shutdown
- #868 Replace stray tfm::format to cerr with qWarning
Doc- #32333 doc: Add missing top-level description to pruneblockchain RPC
- #32353 doc: Fix fuzz test_runner.py path
- #32389 doc: Fix test_bitcoin path
- #32607 rpc: Note in fundrawtransaction doc, fee rate is for package
- #32679 doc: update tor docs to use bitcoind binary from path
- #32693 depends: fix cmake compatibility error for freetype
- #32696 doc: make -DWITH_ZMQ=ON explicit on build-unix.md
- #32708 rpc, doc: update listdescriptors RCP help
- #32711 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
- #32719 doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
- #32776 doc: taproot became always active in v24.0
- #32777 doc: fix Transifex 404s
- #32846 doc: clarify that the "-j N" goes after the "--build build" part
- #32858 doc: Add workaround for vcpkg issue with paths with embedded spaces
- #33070 doc/zmq: fix unix socket path example
- #33088 doc: move cmake -B build -LH up in Unix build docs
- #33133 rpc: fix getpeerinfo ping duration unit docs
- #33119 rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix
- #33236 doc: Remove wrong and redundant doxygen tag
CI- #32184 ci: Add workaround for vcpkg's libevent package
- #33261 ci: return to using dash in CentOS job
Misc- #32187 refactor: Remove spurious virtual from final ~CZMQNotificationInterface
- #32454 tracing: fix invalid argument in mempool_monitor
- #32771 contrib: tracing: Fix read of pmsg_type in p2p_monitor.py
- #33086 contrib: [tracing] fix pointer argument handling in mempool_monitor.py
CreditsThanks to everyone who directly contributed to this release: - 0xB10C
- achow101
- Antoine Poinsot
- benthecarman
- bigspider
- Brandon Odiwuor
- brunoerg
- Bufo
- Christewart
- Crypt-iQ
- davidgumberg
- deadmanoz
- dergoegge
- enirox001
- fanquake
- furszy
- glozow
- instagibbs
- Hennadii Stepanov
- hodlinator
- ismaelsadeeq
- jb55
- jlopp
- josibake
- laanwj
- luisschwab
- MarcoFalke
- Martin Zumsande
- monlovesmango
- nervana21
- pablomartin4btc
- rkrux
- romanz
- ryanofsky
- Sjors
- theStack
- willcl-ark
- zaidmstrr
As well as to everyone that helped with translations on Transifex.
|
|
|
|
Bitcoin Core version 29.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-29.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and tested on operating systems using the Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesP2P and Network Changes- Support for UPnP was dropped. If you want to open a port automatically, consider using the -natpmp
option instead, which uses PCP or NAT-PMP depending on router support. (#31130)
- libnatpmp was replaced with a built-in implementation of PCP and NAT-PMP (still enabled using the -natpmp option). This supports automatic IPv4 port forwarding as well as IPv6 pinholing. (#30043)
- When the -port configuration option is used, the default onion listening port will now
be derived to be that port + 1 instead of being set to a fixed value (8334 on mainnet). This re-allows setups with multiple local nodes using different -port and not using -bind, which would lead to a startup failure in v28.0 due to a port collision. Note that a HiddenServicePort manually configured in torrc may need adjustment if used in connection with the -port option. For example, if you are using -port=5555 with a non-standard value and not using -bind=...=onion, previously Bitcoin Core would listen for incoming Tor connections on 127.0.0.1:8334. Now it would listen on 127.0.0.1:5556 (-port plus one). If you configured the hidden service manually in torrc now you have to change it from HiddenServicePort 8333 127.0.0.1:8334 to HiddenServicePort 8333 127.0.0.1:5556, or configure bitcoind with -bind=127.0.0.1:8334=onion to get the previous behavior. (#31223)
- Upon receiving an orphan transaction (an unconfirmed transaction that spends unknown inputs), the node will attempt to download missing parents from all peers who announced the orphan. This change may increase bandwidth usage but make orphan-handling more reliable. (#31397)
Mempool Policy and Mining Changes- Ephemeral dust is a new concept that allows a single
dust output in a transaction, provided the transaction is zero fee. In order to spend any unconfirmed outputs from this transaction, the spender must also spend this dust in addition to any other desired outputs. In other words, this type of transaction should be created in a transaction package where the dust is both created and spent simultaneously. (#30239)
- Due to a bug, the default block reserved weight (4,000 WU) for fixed-size block header, transactions count, and coinbase transaction was reserved twice and could not be lowered. As a result the total reserved weight was always 8,000 WU, meaning that even when specifying a -blockmaxweight higher than the default (even to the max of 4,000,000 WU), the actual block size will never exceed 3,992,000 WU.
The fix consolidates the reservation into a single place and introduces a new startup option, -blockreservedweight which specifies the reserved weight directly. The default value of -blockreservedweight is set to 8,000 WU to ensure backward compatibility for users who relied on the previous behavior of -blockmaxweight. The minimum value of -blockreservedweight is set to 2,000 WU. Users setting -blockreservedweight below the default should ensure that the total weight of their block header, transaction count, and coinbase transaction does not exceed the reduced value or they may risk mining an invalid block. (#31384)
Updated RPCs- The RPC testmempoolaccept response now includes a reject-details field in some cases,
similar to the complete error messages returned by sendrawtransaction (#28121)
- Duplicate blocks submitted with submitblock will now persist their block data
even if it was previously pruned. If pruning is activated, the data will be pruned again eventually once the block file it is persisted in is selected for pruning. This is consistent with the behaviour of getblockfrompeer where the block is persisted as well even when pruning. (#31175)
- getmininginfo now returns nBits and the current target in the target field. It also returns a next object which specifies the height, nBits, difficulty, and target for the next block. (#31583)
- getblock and getblockheader now return the current target in the target field (#31583)
- getblockchaininfo and getchainstates now return nBits and the current target in the target field (#31583)
- the getblocktemplate RPC curtime (BIP22) and mintime (BIP23) fields now
account for the timewarp fix proposed in BIP94 on all networks. This ensures that, in the event a timewarp fix softfork activates on mainnet, un-upgraded miners will not accidentally violate the timewarp rule. (#31376, #31600) As a reminder, it's important that any software which uses the getblocktemplate RPC takes these values into account (either curtime or mintime is fine). Relying only on a clock can lead to invalid blocks under some circumstances, especially once a timewarp fix is deployed. (#31600)
New RPCs- getdescriptoractivity can be used to find all spend/receive activity relevant to
a given set of descriptors within a set of specified blocks. This call can be used with scanblocks to lessen the need for additional indexing programs. (#30708) Updated REST APIs- GET /rest/block/<BLOCK-HASH>.json and GET /rest/headers/<BLOCK-HASH>.json now return the current target in the target field
Updated Settings- The maximum allowed value for the -dbcache configuration option has been
dropped due to recent UTXO set growth. Note that before this change, large -dbcache values were automatically reduced to 16 GiB (1 GiB on 32 bit systems). (#28358)
- Handling of negated -noseednode, -nobind, -nowhitebind, -norpcbind, -norpcallowip, -norpcwhitelist, -notest, -noasmap, -norpcwallet, -noonlynet, and -noexternalip options has changed. Previously negating these options had various confusing and undocumented side effects. Now negating them just resets the settings and restores default behaviors, as if the options were not specified.
- Starting with v28.0, the -mempoolfullrbf startup option was set to
default to 1. With widespread adoption of this policy, users no longer benefit from disabling it, so the option has been removed, making full replace-by-fee the standard behavior. (#30592)
- Setting -upnp will now log a warning and be interpreted as -natpmp. Consider using -natpmp directly instead. (#31130, #31916)
- As a safety check, Bitcoin core will <strong>fail to start</strong> when -blockreservedweight init parameter value is lower than 2000 weight units. Bitcoin Core will also <strong>fail to start</strong> if the -blockmaxweight or -blockreservedweight init parameter exceeds consensus limit of 4,000,000 WU.
- Passing -debug=0 or -debug=none now behaves like -nodebug: previously set debug categories will be cleared, but subsequent -debug options will still be applied.
- The default for -rpcthreads has been changed from 4 to 16, and the default for -rpcworkqueue has been changed from 16 to 64. (#31215).
Build SystemThe build system has been migrated from Autotools to CMake: - The minimum required CMake version is 3.22.
- In-source builds are not allowed. When using a subdirectory within the root source tree as a build directory, it is recommended that its name includes the substring "build".
- CMake variables may be used to configure the build system. <strong>Some defaults have changed.</strong> For example, you will now need to add -DWITH_ZMQ=ON to build with zmq and -DBUILD_GUI=ON to build bitcoin-qt. See Autotools to CMake Options Mapping for details.
- For single-configuration generators, the default build configuration (CMAKE_BUILD_TYPE) is "RelWithDebInfo". However, for the "Release" configuration, CMake defaults to the compiler optimization flag -O3, which has not been extensively tested with Bitcoin Core. Therefore, the build system replaces it with -O2.
- By default, the built executables and libraries are located in the bin/ and lib/ subdirectories of the build directory.
- The build system supports component‐based installation. The names of the installable components coincide with the build target names. For example:
cmake -B build cmake --build build --target bitcoind cmake --install build --component bitcoind
- If any of the CPPFLAGS, CFLAGS, CXXFLAGS or LDFLAGS environment variables were used in your Autotools-based build process, you should instead use the corresponding CMake variables (APPEND_CPPFLAGS, APPEND_CFLAGS, APPEND_CXXFLAGS and APPEND_LDFLAGS). Alternatively, if you opt to use the dedicated CMAKE_<...>_FLAGS variables, you must ensure that the resulting compiler or linker invocations are as expected.
For more detailed guidance on configuring and using CMake, please refer to the official CMake documentation and CMake’s User Interaction Guide. Additionally, consult platform-specific doc/build-*.md build guides for instructions tailored to your operating system. Low-Level ChangesTools and Utilities- A new tool utxo_to_sqlite.py
converts a compact-serialized UTXO snapshot (as created with the dumptxoutset RPC) to a SQLite3 database. Refer to the script's --help output for more details. (#27432) Tests- The BIP94 timewarp attack mitigation (designed for testnet4) is no longer active on the regtest network. (#31156)
Dependencies- MiniUPnPc and libnatpmp have been removed as dependencies (#31130, #30043).
CreditsThanks to everyone who directly contributed to this release: - 0xb10c
- Adlai Chandrasekhar
- Afanti
- Alfonso Roman Zubeldia
- am-sq
- Andre
- Andre Alves
- Anthony Towns
- Antoine Poinsot
- Ash Manning
- Ava Chow
- Boris Nagaev
- Brandon Odiwuor
- brunoerg
- Chris Stewart
- Cory Fields
- costcould
- Daniel Pfeifer
- Daniela Brozzoni
- David Gumberg
- dergoegge
- epysqyli
- espi3
- Eval EXEC
- Fabian Jahr
- fanquake
- furszy
- Gabriele Bocchi
- glozow
- Greg Sanders
- Gutflo
- Hennadii Stepanov
- Hodlinator
- i-am-yuvi
- ion-
- ismaelsadeeq
- Jadi
- James O'Beirne
- Jeremy Rand
- Jon Atack
- jurraca
- Kay
- kevkevinpal
- l0rinc
- laanwj
- Larry Ruane
- Lőrinc
- Maciej S. Szmigiero
- Mackain
- MarcoFalke
- marcofleon
- Marnix
- Martin Leitner-Ankerl
- Martin Saposnic
- Martin Zumsande
- Matthew Zipkin
- Max Edwards
- Michael Dietz
- naiyoma
- Nicola Leonardo Susca
- omahs
- pablomartin4btc
- Pieter Wuille
- Randall Naar
- RiceChuan
- rkrux
- Roman Zeyde
- Ryan Ofsky
- Sebastian Falbesoner
- secp512k2
- Sergi Delgado Segura
- Simon
- Sjors Provoost
- stickies-v
- Suhas Daftuar
- tdb3
- TheCharlatan
- tianzedavid
- Torkel Rogstad
- Vasil Dimov
- wgyt
- willcl-ark
- yancy
As well as to everyone that helped with translations on Transifex.
|
|
|
|
Bitcoin Core version 28.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-28.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. Running Bitcoin Core binaries on macOS requires self signing. <pre> cd /path/to/bitcoin-28.0/bin xattr -d com.apple.quarantine bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin codesign -s - bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin
</pre> CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin Core should also work on most other UNIX-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesTestnet4/BIP94 supportSupport for Testnet4 as specified in BIP94has been added. The network can be selected with the -testnet4 option and the section header is also named [testnet4]. While the intention is to phase out support for Testnet3 in an upcoming version, support for it is still available via the known options in this release. ( #29775) Windows Data DirectoryThe default data directory on Windows has been moved from C:\Users\Username\AppData\Roaming\Bitcointo C:\Users\Username\AppData\Local\Bitcoin. Bitcoin Core will check the existence of the old directory first and continue to use that directory for backwards compatibility if it is present. ( #27064) JSON-RPC 2.0 SupportThe JSON-RPC server now recognizes JSON-RPC 2.0 requests and responds with strict adherence to the specification. See JSON-RPC-interface.md for details. ( #27101) JSON-RPC clients may need to be updated to be compatible with the JSON-RPC server. Please open an issue on GitHub if any compatibility issues are found. libbitcoinconsensus RemovalThe libbitcoin-consensus library was deprecated in 27.0 and is now completely removed. ( #29648) P2P and Network Changes- Previously if Bitcoin Core was listening for P2P connections, either using
default settings or via bind=addr:port it would always also bind to 127.0.0.1:8334 to listen for Tor connections. It was not possible to switch this off, even if the node didn't use Tor. This has been changed and now bind=addr:port results in binding on addr:port only. The default behavior of binding to 0.0.0.0:8333 and 127.0.0.1:8334 has not been changed.
If you are using a bind=... configuration without bind=...=onion and rely on the previous implied behavior to accept incoming Tor connections at 127.0.0.1:8334, you need to now make this explicit by using bind=... bind=127.0.0.1:8334=onion. (#22729)
- Bitcoin Core will now fail to start up if any of its P2P binds fail, rather
than the previous behaviour where it would only abort startup if all P2P binds had failed. (#22729)
- UNIX domain sockets can now be used for proxy connections. Set -onion or -proxy
to the local socket path with the prefix unix: (e.g. -onion=unix:/home/me/torsocket). (#27375)
- UNIX socket paths are now accepted for -zmqpubrawblock and -zmqpubrawtx with
the format -zmqpubrawtx=unix:/path/to/file (#27679)
- Additional "in" and "out" flags have been added to -whitelist to control whether
permissions apply to inbound connections and/or manual ones (default: inbound only). (#27114)
- Transactions having a feerate that is too low will be opportunistically paired with
their child transactions and submitted as a package, thus enabling the node to download 1-parent-1-child packages using the existing transaction relay protocol. Combined with other mempool policies, this change allows limited "package relay" when a parent transaction is below the mempool minimum feerate. Topologically Restricted Until Confirmation (TRUC) parents are additionally allowed to be below the minimum relay feerate (i.e., pay 0 fees). Use the submitpackage RPC to submit packages directly to the node. Warning: this P2P feature is limited (unlike the submitpackage interface, a child with multiple unconfirmed parents is not supported) and not yet reliable under adversarial conditions. (#28970)
Mempool Policy Changes- Transactions with version number set to 3 are now treated as standard on all networks (#29496),
subject to opt-in Topologically Restricted Until Confirmation (TRUC) transaction policy as described in BIP 431. The policy includes limits on spending unconfirmed outputs (#28948), eviction of a previous descendant if a more incentive-compatible one is submitted (#29306), and a maximum transaction size of 10,000vB (#29873). These restrictions simplify the assessment of incentive compatibility of accepting or replacing TRUC transactions, thus ensuring any replacements are more profitable for the node and making fee-bumping more reliable.
- Pay To Anchor (P2A) is a new standard witness output type for spending,
a newly recognised output template. This allows for key-less anchor outputs, with compact spending conditions for additional efficiencies on top of an equivalent sh(OP_TRUE) output, in addition to the txid stability of the spending transaction. N.B. propagation of this output spending on the network will be limited until a sufficient number of nodes on the network adopt this upgrade. (#30352)
- Limited package RBF is now enabled, where the proposed conflicting package would result in
a connected component, aka cluster, of size 2 in the mempool. All clusters being conflicted against must be of size 2 or lower. (#28984)
- The default value of the -mempoolfullrbf configuration option has been changed from 0 to 1,
i.e. mempoolfullrbf=1. (#30493)
Updated RPCs- The dumptxoutset RPC now returns the UTXO set dump in a new and
improved format. Correspondingly, the loadtxoutset RPC now expects this new format in the dumps it tries to load. Dumps with the old format are no longer supported and need to be recreated using the new format to be usable. (#29612)
- AssumeUTXO mainnet parameters have been added for height 840,000.
This means the loadtxoutset RPC can now be used on mainnet with the matching UTXO set from that height. (#28553)
- The warnings field in getblockchaininfo, getmininginfo and
getnetworkinfo now returns all the active node warnings as an array of strings, instead of a single warning. The current behaviour can be temporarily restored by running Bitcoin Core with the configuration option -deprecatedrpc=warnings. (#29845)
- Previously when using the sendrawtransaction RPC and specifying outputs
that are already in the UTXO set, an RPC error code of -27 with the message "Transaction already in block chain" was returned in response. The error message has been changed to "Transaction outputs already in utxo set" to more accurately describe the source of the issue. (#30212)
- The default mode for the estimatesmartfee RPC has been updated from conservative to economical,
which is expected to reduce over-estimation for many users, particularly if Replace-by-Fee is an option. For users that require high confidence in their fee estimates at the cost of potentially over-estimating, the conservative mode remains available. (#30275)
- RPC scantxoutset now returns 2 new fields in the "unspents" JSON array: blockhash and confirmations.
See the scantxoutset help for details. (#30515)
- RPC submitpackage now allows 2 new arguments to be passed: maxfeerate and maxburnamount. See the
subtmitpackage help for details. (#28950)
Changes to wallet-related RPCs can be found in the Wallet section below. Updated REST APIs- Parameter validation for /rest/getutxos has been improved by rejecting
truncated or overly large txids and malformed outpoint indices via raising an HTTP_BAD_REQUEST "Parse error". These requests were previously handled silently. (#30482, #30444) Build System- GCC 11.1 or later, or Clang 16.0 or later,
are now required to compile Bitcoin Core. (#29091, #30263)
- The minimum required glibc to run Bitcoin Core is now
2.31. This means that RHEL 8 and Ubuntu 18.04 (Bionic) are no-longer supported. (#29987)
- --enable-lcov-branch-coverage has been removed, given
incompatibilities between lcov version 1 & 2. LCOV_OPTS should be used to set any options instead. (#30192)
Updated Settings- When running with -alertnotify, an alert can now be raised multiple
times instead of just once. Previously, it was only raised when unknown new consensus rules were activated. Its scope has now been increased to include all kernel warnings. Specifically, alerts will now also be raised when an invalid chain with a large amount of work has been detected. Additional warnings may be added in the future. (#30058)
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. Wallet- The wallet now detects when wallet transactions conflict with the mempool. Mempool-conflicting
transactions can be seen in the "mempoolconflicts" field of gettransaction. The inputs of mempool-conflicted transactions can now be respent without manually abandoning the transactions when the parent transaction is dropped from the mempool, which can cause wallet balances to appear higher. (#27307)
- A new max_tx_weight option has been added to the RPCs fundrawtransaction, walletcreatefundedpsbt, and send.
It specifies the maximum transaction weight. If the limit is exceeded during funding, the transaction will not be built. The default value is 4,000,000 WU. (#29523)
- A new createwalletdescriptor RPC allows users to add new automatically generated
descriptors to their wallet. This can be used to upgrade wallets created prior to the introduction of a new standard descriptor, such as taproot. (#29130)
- A new RPC gethdkeys lists all of the BIP32 HD keys in use by all of the descriptors in the wallet.
These keys can be used in conjunction with createwalletdescriptor to create and add single key descriptors to the wallet for a particular key that the wallet already knows. (#29130)
- The sendall RPC can now spend unconfirmed change and will include additional fees as necessary
for the resulting transaction to bump the unconfirmed transactions' feerates to the specified feerate. (#28979)
- In RPC bumpfee, if a fee_rate is specified, the feerate is no longer restricted
to following the wallet's incremental feerate of 5 sat/vb. The feerate must still be at least the sum of the original fee and the mempool's incremental feerate. (#27969)
GUI Changes- The "Migrate Wallet" menu allows users to migrate any legacy wallet in their wallet
directory, regardless of the wallets loaded. (gui#824)
- The "Information" window now displays the maximum mempool size along with the
mempool usage. (gui#825)
Low-level ChangesTests- The BIP94 timewarp attack mitigation is now active on the regtest network. (#30681)
- A new -testdatadir option has been added to test_bitcoin to allow specifying the
location of unit test data directories. (#26564)
Blockstorage- Block files are now XOR'd by default with a key stored in the blocksdir.
Previous releases of Bitcoin Core or previous external software will not be able to read the blocksdir with a non-zero XOR-key. Refer to the -blocksxor help for more details. (#28052) Chainstate- The chainstate database flushes that occur when blocks are pruned will no longer
empty the database cache. The cache will remain populated longer, which significantly reduces the time for initial block download to complete. (#28280) Dependencies- The dependency on Boost.Process has been replaced with cpp-subprocess, which is contained in source.
Builders will no longer need Boost.Process to build with external signer support. (#28981) CreditsThanks to everyone who directly contributed to this release: - 0xb10c
- Alfonso Roman Zubeldia
- Andrew Toth
- AngusP
- Anthony Towns
- Antoine Poinsot
- Anton A
- Ava Chow
- Ayush Singh
- Ben Westgate
- Brandon Odiwuor
- brunoerg
- bstin
- Charlie
- Christopher Bergqvist
- Cory Fields
- crazeteam
- Daniela Brozzoni
- David Gumberg
- dergoegge
- Edil Medeiros
- Epic Curious
- Fabian Jahr
- fanquake
- furszy
- glozow
- Greg Sanders
- hanmz
- Hennadii Stepanov
- Hernan Marino
- Hodlinator
- ishaanam
- ismaelsadeeq
- Jadi
- Jon Atack
- josibake
- jrakibi
- kevkevin
- kevkevinpal
- Konstantin Akimov
- laanwj
- Larry Ruane
- Lőrinc
- Luis Schwab
- Luke Dashjr
- MarcoFalke
- marcofleon
- Marnix
- Martin Saposnic
- Martin Zumsande
- Matt Corallo
- Matthew Zipkin
- Matt Whitlock
- Max Edwards
- Michael Dietz
- Murch
- nanlour
- pablomartin4btc
- Peter Todd
- Pieter Wuille
- @RandyMcMillan
- RoboSchmied
- Roman Zeyde
- Ryan Ofsky
- Sebastian Falbesoner
- Sergi Delgado Segura
- Sjors Provoost
- spicyzboss
- StevenMia
- stickies-v
- stratospher
- Suhas Daftuar
- sunerok
- tdb3
- TheCharlatan
- umiumi
- Vasil Dimov
- virtu
- willcl-ark
As well as to everyone that helped with translations on Transifex.
|
|
|
|
27.1 Release NotesBitcoin Core version 27.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-27.1/or through bittorrentThis release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesMiniscript- #29853 sign: don't assume we are parsing a sane TapMiniscript
RPC- #29869 rpc, bugfix: Enforce maximum value for setmocktime
- #29870 rpc: Reword SighashFromStr error message
- #30094 rpc: move UniValue in blockToJSON
IndexGui- #gui812 Fix create unsigned transaction fee bump
- #gui813 Don't permit port in proxy IP option
Test- #29892 test: Fix failing univalue float test
P2P- #30085 p2p: detect addnode cjdns peers in GetAddedNodeInfo()
Build- #29747 depends: fix mingw-w64 Qt DEBUG=1 build
- #29859 build: Fix false positive CHECK_ATOMIC test
- #29985 depends: Fix build of Qt for 32-bit platforms with recent glibc
- #30097 crypto: disable asan for sha256_sse4 with clang and -O0
- #30151 depends: Fetch miniupnpc sources from an alternative website
- #30216 build: Fix building fuzz binary on on SunOS / illumos
- #30217 depends: Update Boost download link
Doc- #29934 doc: add LLVM instruction for macOS < 13
CI- #29856 ci: Bump s390x to ubuntu:24.04
Misc- #29691 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us
- #30149 contrib: Renew Windows code signing certificate
CreditsThanks to everyone who directly contributed to this release: - Antoine Poinsot
- Ava Chow
- Cory Fields
- dergoegge
- fanquake
- furszy
- Hennadii Stepanov
- Jon Atack
- laanwj
- Luke Dashjr
- MarcoFalke
- nanlour
- Sjors Provoost
- willcl-ark
As well as to everyone that helped with translations on Transifex.
SHA256SUMS: 438bc93fb78b2063036920ca00e85398c31acbf4e7e92f47e8e37facfb62ce8c bitcoin-27.1-aarch64-linux-gnu-debug.tar.gz bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee bitcoin-27.1-aarch64-linux-gnu.tar.gz 2355ba267820ef0e5114fc50658a04766d6bc51aa51a1a339e74afcefce150ca bitcoin-27.1-arm-linux-gnueabihf-debug.tar.gz 83bf6da65ebac189c7e14f1e68a758b32b8f83558b36b53a8cc8037c674ab045 bitcoin-27.1-arm-linux-gnueabihf.tar.gz 06bf5d34aef01f21dac88708efa32d5e673c3ce1c8f17b1ca34b0e517ed8e43f bitcoin-27.1-arm64-apple-darwin.zip 1372fad4fa8b2a5284cf54279cd3bf41399526e59e2e76d88f08423d9587a0f5 bitcoin-27.1-arm64-apple-darwin-unsigned.tar.gz b91767a820ccc3f5149a921249c95a4f06d2a4832db5fa1c02178282c0335b22 bitcoin-27.1-arm64-apple-darwin-unsigned.zip ad4a3fd484077224a82dd56d194efb6e614467f413ab1dfb8776da4d08a4c227 bitcoin-27.1-arm64-apple-darwin.tar.gz bce6f981c198c616dcedd802bfda7693ec5a8a04aa57804edfad94305f7796b0 bitcoin-27.1-codesignatures-27.1.tar.gz 0c1051fd921b8fae912f5c2dfd86b085ab45baa05cd7be4585b10b4d1818f3da bitcoin-27.1.tar.gz 3a058dbefa68439b0c4f54f4c71f135c6ff2bb46469e09550f1d599a64568d96 bitcoin-27.1-powerpc64-linux-gnu-debug.tar.gz 69dbc7ca9a676f1471c88cf078cd559447ce47ad325a965331edaee846685fdb bitcoin-27.1-powerpc64-linux-gnu.tar.gz 418f298ab96599986a3c2abc4e5c73f6c3727b1de11d4e26f539c4fdc57e8973 bitcoin-27.1-powerpc64le-linux-gnu-debug.tar.gz f22157123133da4a91439e7e115191a08087fe71d000aa7c445df588cfcd5113 bitcoin-27.1-powerpc64le-linux-gnu.tar.gz 19ed4f547e7ff67b81feb97a610b56c93c7176674aef661e5e72133f33a7a6ec bitcoin-27.1-riscv64-linux-gnu-debug.tar.gz 192a16de497d52ec15aab95aea0c049b8c485a796dfdee41cec38b0be6926c24 bitcoin-27.1-riscv64-linux-gnu.tar.gz 25445080e2616d7c621f48f51e7a4294698d92016ef27ab88608cbe824f93364 bitcoin-27.1-x86_64-apple-darwin.zip 79eb9d48d9439f3479d1a678e872a23376b35299c28e19a94298ef552e2c1df8 bitcoin-27.1-x86_64-apple-darwin-unsigned.tar.gz 01d6a0159012df214125a2a5f25bd9fe0035074a13ed8d293a854ddd1d2d7176 bitcoin-27.1-x86_64-apple-darwin-unsigned.zip 6d94bde5541a18964c1c36b0f12334004e45e195f244e381fd459827b1fdc395 bitcoin-27.1-x86_64-apple-darwin.tar.gz 8abc5bd792b729097dcd664b6ef814e0bd3f9ae6bf3e8386dab2fb38504fd7fc bitcoin-27.1-x86_64-linux-gnu-debug.tar.gz c9840607d230d65f6938b81deaec0b98fe9cb14c3a41a5b13b2c05d044a48422 bitcoin-27.1-x86_64-linux-gnu.tar.gz e8ab7a8161c5a0846c81275809c9f90302874cc71b4378dee540f0b380a6d049 bitcoin-27.1-win64-setup.exe baa0153e8b08526ed1d1008234a00eea0537dba28bff2d6a7ced451e056ffd05 bitcoin-27.1-win64-debug.zip a598fd0b7740f809fc005aceeccf43f50e04d68f494a1797a38f415975df12da bitcoin-27.1-win64-setup-unsigned.exe db285fcaea11b7e705b4acb3307840e27b68ae8c5a9a2c188c486403db20f6b1 bitcoin-27.1-win64-unsigned.tar.gz 9719871a2c9a45c741e33d670d2319dcd3f8f52a6059e9c435a9a2841188b932 bitcoin-27.1-win64.zip
SHA256SUMS.asc -----BEGIN PGP SIGNATURE-----
iQJHBAABCAAxFiEEz7FuIclQ9n+pXlWPLuufXMCVJsEFAmZqu9cTHGZhbnF1YWtl QGdtYWlsLmNvbQAKCRAu659cwJUmwfJwD/9aNGsUAJoOmr2AKQ5dXdMnlHFpp30E fBsRa94UEHypdcNa5V7SIFgC14zESs7KUnRKOd7oTrteyzekKkeedPIwwj9/1Mk8 UZr0JCXt1/QZCsOycvgIS39GcA7wNaeBASvupRtyBo1qBJJ5WePcBRtLulpx/vFO wscnK+tcHG94K9KuGbiWxAEuT6nWP06tWJqk+Qif56RqAKYXq6+Gj7YhM3nyOtQB r2oI4hSFECbG1mOF2bv2IO5cj36c4aqhTbTFYoQI1GSrD5LYQyxoXzsK0JLu/bP4 ysIuNONQwXKCPL7rRkSgRvgCPSGXsybx3J/91Yl+l/fBw0lWQoKXwjL4qsyY35I6 l22rie8wOG7Cie8eYJNx/lmaLjm/3Z4NxlHQCqAhjbXFnQDXlabf/9tCxtT9798B zPBBgqen0ulWvXj6Ok0Oy1BtDjSDUF/4GffqidbEnvN/9CB9DBCQhTVogo5if0ko Nz4kCk/v9/a0p8COn8QISdap3I29u98rCQku6JeUD0MdWS3o1P0De1Epst7nsbOE IzCvexf2MMCaJ0pJW8DPMBgtZvHoh9+FLp7Sq6TeA1pYHPSoOzr+ZOYtjPIU5vwy SQKEMUx8mULt/qm7oT7sRpzlyPU5Yfya1jcWAqOqIMUaO8NDh6k7ati0l2/nZkjg qZl5nzZPs7uY0w== =fj9Z -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEFSgSMAeFyWRE0zNNF1ZXMuCOXkEFAmZrBzIQHG1lQGFjaG93 MTAxLmNvbQAKCRAXVlcy4I5eQVHoD/9HJ1D6j+S/iBt5SiWZwQDhSVA73UREJeXn nb/p3HONcUW6lV/E06e1JXgJl3Ijm2ItCpkc5jygM9j+/7fRrNMe/wVh9MuPHt/E gda/dV1OzubsM6V8qB6kWEk37EH3Mcxv1GFl2+TTNPgmONTyHnqcjf083BalxIhj 5bb0D6C54HL+pxfXBYplCVeXy37M83b5+vy58nl3gwgH5aFG4ZGGpWbrQjg3uWsb vYIo+m9udHoODhyLkyIa8d7dvknsIr9RhJuGfEAlnr+Tob0mpNaAEXDJJhtP2isq g0F2F0tyiZzknDncUM+p6rrQNvtwrE1DH6C3HSDxz8BeCNKPpo8zjCGi/Uxz9gEC pvwfz5r0rkSS2XerEsmJONKw3316VgdhOMt6Z2ZlXpqdUWVHQZOQLZTpRzD9fThZ fCZHin+b/OQxXNpn3rDDJ1AhuuS7iC0AOzJISh6eQBDqhiXdEVtN7tVfQXCCi3KE T54OHPEsYbXgJzVqVIvANOUdJfwtJt/dvUB9xXFPtmBAIM+Q5+3ZOdJYlGa9+ded LldZQDwQegnkB9Vx+JnGcwqb8G24LajjINIMrPMsNiDmvSF3W7I553Aj2+1hEWgM zU6R3AuT+PEjZWZaRm6KSXlVy7x9PZFzdSutqVPc9QIU8qEaBqflDXuUZi1UqQEl f3USo+XJtw== =6CZy -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iI4EABMIADYWIQTDiPaWH7lyqVZ44yf2JxHb3KiuVgUCZmxEABgca3ZhY2lyYWxA cHJvdG9ubWFpbC5jb20ACgkQ9icR29yorlZZ0QEA800r3DfHseNuE223eN5doq68 KyNGxLWMKf0ZReEBoJIBAJJbitJWdy1mi/EbEGmFCt8VbT08Ycp/zdQ7GMdSG5BD =PRap -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEEnerg3HBjJJ+wVHRoHkrtYphs0l0FAmZsRCYACgkQHkrtYphs 0l0oCQf/feVfX3z8pjTUONfU3veekgvKYMzb12nw8MrNefqA2Hl9lBmupMh/DHAG J+q3RGEWmvlnslQhylhauya75Y8go7S4MWr4Vv47AEceYKCnUdXgeeVIYddgHwLD 8Kp8NM6t7QHpB6J9zlP9Z37a2Rus5pu9bWdwh3T/BrMX/kWMVcHsc6FHN0r99TI9 j6G72gOsXOzZwQ+QIOZOg5ZPjFmmF1zpneUaVHB1kgXYwiRs5jIt+PJfhaDApPc/ 32VCwqhS6lm7eP/BgsxWxOdHZkAg4j9xQIZmhStI2lIpfhUeOiumaWs6ZGNtMpHW e3ZHMEOR37AaNT7uVvNxRRRKLzHNEg== =sxAM -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJGBAABCAAwFiEE0dvyxLlvLev0wWZUQQEIES5+qB8FAmZwL4ASHGhlYmFzdG9A Z21haWwuY29tAAoJEEEBCBEufqgfQPEP/0pOa9M5Jjvb3cEveKsz68e08yEK1Y5r dFLvOVyJGgfwnA2Xtz2TbNI/Yn/Sr/4fD476sHXnjFPCX4OO4CYHjKTNYPNzU5zn 6DtGkDfeJW0sf5TybLwfEUWMKb+So9al1NV4xDxOgiWVU81faJ8l6mkOzaUbRJlr 2clIEnN3cjuxnfKTe+umM9/Rhq17y7rl7z6MiqhOZIUAP9Rc5YCoCepPhi1k+xPk bMgRsL2rkn0uqu6lKPQH1zuBTtw14yqlq9NQwEf3BLNSYu8wnftBj3/hZTW1raha 50LMRcCNx7GpbRVVhqHlYDwTY6ITXTErn5dNngQD5OnjkaYFImUTf+f6ArOTRnck C4hxTVcr7OcRFmIRzlGHT+o8D/F6XJoPM7ABsz9OW97u3j2wCat34ZT86sbckCHC uTK964y0cOKkWMNu/RNnKOStFKkxWxOt3C3WakfOZnh4ejIOnaLlpaXXvdYjQHaJ xVlQhVBuwTcAwgGGLgaKyvDfXDrqHRJ72ukiiBPqohsa1W8iWvTKGU6HJXJfj/NZ oyYTmBmTBeauj7Vz8B+cveadobiBQAvrpLeV6isJJ8cLmw14lCOoYdi531Uuyl9e cGMD/UurH3/ei8iIXVP/TzhxcZU0pnocABYgkUNzsxYbC1dq62KToN3/ZQX0chCF SDZBQM/1nmQX =lYlR -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJHBAABCAAxFiEE8s/Eq9C5nYN+67fQm3m0VpHbQXMFAmZqwHoTHHNlYi5rdW5n QGdtYWlsLmNvbQAKCRCbebRWkdtBc831D/4vcEvAUpr6BHLl243O86qmI9ZN3ST1 LKW8CXUiM8vfIlJhcoXKtSMX+jpM3QRonXYCGYZG//5/JzzhMFqjHmBXhF9+BVGx 2LGhRngnUXuzMmCGwdtibATfs3Aiy9yQWW3bkHmOFpeX/0ax4RTYHL0QUw4PK5F3 nbiHfEGK9eb3LgsvT+83eLGCY2NHSubsQWgjbb1in/bbIUMndjCvQ85EcA7vhbFR syv6WnUCoNeJl2Jm0JuhFQpDV49uaIY911yzzh1l+RfdApy0AGf3KUoQMxG+9IIN tEoblFQsN3eV1t0j5/gdnK5AO+iyynWKL1sK/S+1BjdBjLIrUZnIB/aLANka+la+ rM2I3WKAFYrT7/UrFbVs1Oionf7TZ5lW11tOGh2l9yt8XWlxM9pPs1FvwLhoiy1P TV99KIY2Ej3KBA9xwjNsXXCp5qS2g6MPlg4z6p0qnZocm5RaI2oDBeC/T7/b3Qzf 1nRD2SoRajbvm6GqwEGGcsSVmDeXfBHPrryNGRdD4sz/EV1IcoFQkikqRaZHiUEk KZU4pDFPkh7H8B8QK8RCiJ1qD1maCxp3qA43k48z8lfMDdzNMsadIYjpZBfbDs5O n6K5gptlKN6cCZvSw0WStJxb1kOvkiQCLr9R9Q5jKgTDJF5bjWEl4BPeGRXUNEyy PN836GFdTUlfLw== =Z5Tf -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEY32x4jNw+Er/iMzgMVI0fQfaYnwFAmZvTicACgkQMVI0fQfa YnzC0w/9GyPX1o/AME7FsICD6c9Uty/yQFdANs67B0D2H3DXiBuN30KTSvBkIaFE FXuKD4fjt2rS/bMJMUiwXPG+mxBpz94isWGGFd3WBtfZZyhJ9Q/+MRlB+oJg4bIB R5AkYcQD85UcFlJ7SV0qCW3IzAJpPfQnSELxnlKeVVIbM329G5IYNhjQp0kDGfyT 9+1vpeK2CI22+P3fKhWOfpgItm0EQ+JKpRW+SwnxXDIbfAX+7nLkOu/BDJ8II/4/ 377Ur1G3lRP111n9/E6WIuEv4Sd6SqxFRzBCkPIhyfTo/MZk1LRdxhc8AKOWvCYe CyEluPpgMOQbN5Dx+LFcWr0V/9kA3K+L1SZsOIhsw+HeoT5LAUXpRNOCOgJwr7DT WqxN6LePcxs9PwI3di0DZfECvO+oiyqEFZz5qNMzAhCpRjK5hgaSldQCE6Rew8Dh cymxHFG2KOf76KFxydmW1i/zBGkuvIiDZ16Xz6qkQ1O7IlzuAEIWbYlLJFx0Gg80 d8MAEz/T3UZZGExUhg0Lk4Boe81ITu2K5No3OmvmUxfo1n5J0f81Y1OYx3VczaPs DmkaTMBGTXAWvGdqlUxQBPVZ/ScrPIrc7t91Qrnj5fydiZIxOBzXxyt1+S48QuZ6 bNSpLcvTtOZMPRHVZDBclTwiaOnA5Hg9PUpHzsJFQAe1uhLZOrk= =TKFm -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE9Pxw8HMQAoQk78IKjkJWWT8XdyAFAmZsIpQRHGd1Z2dlckBn bWFpbC5jb20ACgkQjkJWWT8XdyC3hg//S80sRCShfMXt5xLHdamOovvdDcA4V2F/ QfcGlapYe8wTb2UgoAhFirqZHCMI8Dqc09cdiOF42Tt2E6e0ZQq38KviYzTyKl/V bjmNpaPHILFc8BNIwhOJEFZwuLGSCf5vjPJZtM3IggYM7+qJ4IG+3U61nUQyz0YF tkaqj0yk5bimj7jpiHJIl+j7mlWAry2HAOkRgybWoPwddnREE8t5izRG1rtGI8tA k0xZJqVe9/C18a4JBbM1f1zhV37MSJjSfwDXTAOh9b/wGBQ/aUFxuF5xWk6Hpj0l Oe+hKqQSIPRro6ot7Asdxm2aH/wUdbR1Ngjy/g/1Md0Jow8gpTV2QkppX0tYqPag GMqqkBXfcUdWRJVkLlZqmPkU/wtHqyDI5X8XVNv/gQzkqcOHMSWsT68NYIWUQNLl eizrmLaIsUi6ilKg9GUXvNNos6L1zed64xsobtOvYwgMw054bidUtjNgByvMdW7C nWdZNjE7jHOWuIehc4s+qFuBGxNgEfnj4f/fr1nsIv7tpEN+gM0FR2IXzCWIWEo2 JrII4FgAfuaaVG6U8LT2lgJnNS6A+5rlsP2fEgDCVy9aiJuV0zIUPu51U4TxKo2Z U0M4smpU6MK/7CK+9D5EoTRbZXWJz/vOUr1FmNTJc5i7W+IvGlxSQadNHd2mQJZ5 yuVPesJ/dVA= =qv29 -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iIcEABYIAC8WIQToauc0OWJbvuMGqua2bUJ/hzyxowUCZmrrRxEcbWVAbWF4ZWR3 YXJkcy5tZQAKCRC2bUJ/hzyxowveAP9cz6S6BCvb6jBGJXJyxUlv0JC8BMFkqZDZ diWvfGhr9QD/W/kBpkyPl1gCBZCekJHQqtsS5lhVrm0gCBHmvK9bow4= =bC/x -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQGzBAABCAAdFiEEZwvEYNyL9e7xw7x0sUzJ+DMjj4UFAmZwUlgACgkQsUzJ+DMj j4X4gQv/eA7uA/DopVr7qqkC99LxIUOLf8QFYr5kY+3BoVLNLQPmRJeAUAXB/Spe fdX4rR1SF5zdgj7ganjJiVHJ5m7sfoLulEvjowrTLxZh+9C3bYjUddriSMO6izaI +Fp09rQRPkGOQIae3XptqdYeV2gwHRDxgvsh5WnNELtbd1e9eVrC2Rd+l1WKxXil ikBYQZkjpxw24tbAG0R1o1Lhpjpd3brP4WEz0t86y8NLEApmVd4W79fcR0xEW9Qg 5Eo1J4oqv2HtereLGzigtiTMBPCqRRaIRzL+YTi8hKJr0dpu4IA9YueYhnH9XSE9 5h4uSoY0S4wkgqlUQpbpLp7Do7WXcpNAuP8yRwp/dW/8KANjspbCGZReUY/ZO2YY n3Z2TLqfPifN8ulVRVo4ruR+Y4OY8vy41BrEAPvXOJYC0jMddeCbk+YE4wea3vef ZIiIX2nEYqC3e1vGUG6BXbT7FWaCAL7ptuCEk5aWQeV4rkJiW9uESiVgaJsC0Chy z9/c1KaX =46KK -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE8Z9f8rBYnsNBIgBFugP02+DGP7QFAmZqwUgACgkQugP02+DG P7SlRRAAtJJ1B/QLu6v9ciMBTxdO6RsqVrE3YXeUHahpxi1KZ2PI6JY7E8C9s8lH RRtHvzC8C/WpSGEuH/4PR9v0srLmW0Z1SoL9d04NptF7fkCmirg/8wQ4l6lZe1lI BAeDOPlZi/WIe/ScYSjepO0e+XwuLa2+vfUYt5+v0mkuMmgSbr/ZcwXViIaKWS4M 47rATcIo99zfYE/L01smt2O2sTWeYXcayviyt6yhFQK3ZvyWABT3zPH+O6Etzzq6 h1iffHXjIDlsfLd1AxR3vpTeksy9jxYEmaH2VGpeU3qBC1FhavF7ufa+yJ/85Idy nnNQlc6FCdBhuNg+47kiT9BK8idMtsEOOeuJfKhjuGkvtVuOuMF1oxem4HMJLp5d i4tWFKIt9hEgt4KHL6+caeLsFACBO59X98s1G4fRo0W9YntYX4GmD9ksI8xPvqCS 2CZ863IPQ5hMGqsltPLO2JhhyNaLmuNFl3xBbbEZlpeqVO4/Bbxr+NqdNCA5rm7L Y1/QMtxPKNF1h79bwIECy6JJThAKbMYVOTQmLEEb3OaVcipLTMeXdf8+62L2Qy74 qUgbCAi/Hw2DXJDPVFJdwJdPQybeD196o3wjeHWgiQjmmzGkBQw4hf8TcOK6/usl b9oZpe7pYdau9BU9oZCgb6f4HyPL/BPWto5i51BmKW44KRnOC0w= =x+Wx -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE7ZvfetalXiMuhFJCV/+b28wwEAkFAmZwbDEACgkQV/+b28ww EAlgjQ/+PUrC/dyjHTQ+TO8K40a9CtR/MvLwBxqMlbW8Qxya72rKbLM+JySIUICJ QiWO/V0mf3xihxDD7JNH4teS3zEd7eb4gS33RghWQzKMO9ISnLoMGeaZ2LlY2ia2 kU6JX1ipZq8XRjyiRpMHJ5bnx+Sms11U9ByaFM6DZ8ObmtdmsMVCmtxRInXw4TnC SeRY00Gf1VCCaGV06e+iezACyq08JKMax8DPacSMYW0YMNID/7PL/FxurBhHHgN3 F8gqGVsi9cb7V8bfg4p4Re9/AuNwSQQHsNOd7G63C3LsdLlaIsqnD6/7qNrjsrFw Dgm4C371+KL25iPspzkz9PcIU0HJM7p1VxPD6E2+iKmeC9pDED/ae/Fiv0DlTeAJ UovUnWIBsLmz/qVSHL1pGCFB0/1bFGGnVK2dvvUHVAz2LUbCluLrmXRfdSn9iPFe 6bDcM5vHGXBiUCpLdzeWWPD1ysnL0UtXsuMO8NwX40iCBP98ukBX0tvbQQgmTQEh amvTPWADg+pamYZ75Y65EqKS3W2S7+JvcY+DJe3AUUJ4NcY8T9TBJwRlU2wxPTrH T0ZYjnruARFFRmrEc/cWuSZHHdWE6li4uEef+KgB4VCxb790YZGJROhL1LeuEAWY KiTM32Rrlhy7aUW4JKUQS8nPguwK3rkAgZhChjiFl+luJrbmNus= =dzNN -----END PGP SIGNATURE-----
|
|
|
|
27.0 Release NotesBitcoin Core version 27.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-27.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changeslibbitcoinconsensus- libbitcoinconsensus is deprecated and will be removed for v28. This library has
existed for nearly 10 years with very little known uptake or impact. It has become a maintenance burden.
The underlying functionality does not change between versions, so any users of the library can continue to use the final release indefinitely, with the understanding that Taproot is its final consensus update.
In the future, libbitcoinkernel will provide a much more useful API that is aware of the UTXO set, and therefore be able to fully validate transactions and blocks. (#29189)
mempool.dat compatibility- The mempool.dat file created by -persistmempool or the savemempool RPC will
be written in a new format. This new format includes the XOR'ing of transaction contents to mitigate issues where external programs (such as anti-virus) attempt to interpret and potentially modify the file.
This new format can not be read by previous software releases. To allow for a downgrade, a temporary setting -persistmempoolv1 has been added to fall back to the legacy format. (#28207)
P2P and network changes- BIP324 v2 transport is now enabled by default. It remains possible to disable v2
by running with -v2transport=0. (#29347)
- Manual connection options (-connect, -addnode and -seednode) will
now follow -v2transport to connect with v2 by default. They will retry with v1 on failure. (#29058)
- Network-adjusted time has been removed from consensus code. It is replaced
with (unadjusted) system time. The warning for a large median time offset (70 minutes or more) is kept. This removes the implicit security assumption of requiring an honest majority of outbound peers, and increases the importance of the node operator ensuring their system time is (and stays) correct to not fall out of consensus with the network. (#28956)
Mempool Policy Changes- Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy
(aka v3 transaction policy) is available for use on test networks when -acceptnonstdtxn=1 is set. By setting the transaction version number to 3, TRUC transactions request the application of limits on spending of their unconfirmed outputs. These restrictions simplify the assessment of incentive compatibility of accepting or replacing TRUC transactions, thus ensuring any replacements are more profitable for the node and making fee-bumping more reliable. TRUC transactions are currently nonstandard and can only be used on test networks where the standardness rules are relaxed or disabled (e.g. with -acceptnonstdtxn=1). (#28948) External Signing- Support for external signing on Windows has been disabled. It will be re-enabled
once the underlying dependency (Boost Process), has been replaced with a different library. (#28967) Updated RPCs- The addnode RPC now follows the -v2transport option (now on by default, see above) for making connections.
It remains possible to specify the transport type manually with the v2transport argument of addnode. (#29239) Build System- A C++20 capable compiler is now required to build Bitcoin Core. (#28349)
- MacOS releases are configured to use the hardened runtime libraries (#29127)
Wallet- The CoinGrinder coin selection algorithm has been introduced to mitigate unnecessary
large input sets and lower transaction costs at high feerates. CoinGrinder searches for the input set with minimal weight. Solutions found by CoinGrinder will produce a change output. CoinGrinder is only active at elevated feerates (default: 30+ sat/vB, based on -consolidatefeerate×3). (#27877) - The Branch And Bound coin selection algorithm will be disabled when the subtract fee
from outputs feature is used. (#28994) - If the birth time of a descriptor is detected to be later than the first transaction
involving that descriptor, the birth time will be reset to the earlier time. (#28920) Low-level changesPruning- When pruning during initial block download, more blocks will be pruned at each
flush in order to speed up the syncing of such nodes. (#20827) Init- Various fixes to prevent issues where subsequent instances of Bitcoin Core would
result in deletion of files in use by an existing instance. (#28784, #28946) - Improved handling of empty settings.json files. (#29144)
CreditsThanks to everyone who directly contributed to this release: - 22388o⚡️
- Aaron Clauson
- Amiti Uttarwar
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Ava Chow
- Brandon Odiwuor
- brunoerg
- Chris Stewart
- Cory Fields
- dergoegge
- djschnei21
- Fabian Jahr
- fanquake
- furszy
- Gloria Zhao
- Greg Sanders
- Hennadii Stepanov
- Hernan Marino
- iamcarlos94
- ismaelsadeeq
- Jameson Lopp
- Jesse Barton
- John Moffett
- Jon Atack
- josibake
- jrakibi
- Justin Dhillon
- Kashif Smith
- kevkevin
- Kristaps Kaupe
- L0la L33tz
- Luke Dashjr
- Lőrinc
- marco
- MarcoFalke
- Mark Friedenbach
- Marnix
- Martin Leitner-Ankerl
- Martin Zumsande
- Max Edwards
- Murch
- muxator
- naiyoma
- Nikodemas Tuckus
- ns-xvrn
- pablomartin4btc
- Peter Todd
- Pieter Wuille
- Richard Myers
- Roman Zeyde
- Russell Yanofsky
- Ryan Ofsky
- Sebastian Falbesoner
- Sergi Delgado Segura
- Sjors Provoost
- stickies-v
- stratospher
- Supachai Kheawjuy
- TheCharlatan
- UdjinM6
- Vasil Dimov
- w0xlt
- willcl-ark
As well as to everyone that helped with translations on Transifex.
|
|
|
|
26.1 Release NotesBitcoin Core version 26.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-26.1/This release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesWallet- #28994 wallet: skip BnB when SFFO is enabled
- #28920 wallet: birth time update during tx scanning
- #29176 wallet: Fix use-after-free in WalletBatch::EraseRecords
- #29510 wallet: getrawchangeaddress and getnewaddress failures should not affect keypools for descriptor wallets
RPC- #29003 rpc: fix getrawtransaction segfault
- #28784 rpc: keep .cookie file if it was not generated
Logs- #29227 log mempool loading progress
P2P and network changes- #29200 net: create I2P sessions using both ECIES-X25519 and ElGamal encryption
- #29412 p2p: Don't process mutated blocks
- #29524 p2p: Don't consider blocks mutated if they don't connect to known prev block
Build- #29127 Use hardened runtime on macOS release builds.
- #29195 build: Fix -Xclang -internal-isystem option
CI- #28992 ci: Use Ubuntu 24.04 Noble for asan,tsan,tidy,fuzz
- #29080 ci: Set HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK to avoid unrelated failures
- #29610 ci: Fix "macOS native" job
Miscellaneous- #28391 refactor: Simplify CTxMempool/BlockAssembler fields, remove some external mapTx access
- #29179 test: wallet rescan with reorged parent + IsFromMe child in mempool
- #28791 snapshots: don't core dump when running -checkblockindex after loadtxoutset
- #29357 test: Drop x modifier in fsbridge::fopen call for MinGW builds
- #29529 fuzz: restrict fopencookie usage to Linux & FreeBSD
CreditsThanks to everyone who directly contributed to this release: - dergoegge
- fanquake
- furszy
- glozow
- Greg Sanders
- Hennadii Stepanov
- Jon Atack
- MarcoFalke
- Mark Friedenbach
- Martin Zumsande
- Murch
- Roman Zeyde
- stickies-v
- UdjinM6
As well as to everyone that helped with translations on Transifex.
|
|
|
|
25.2 Release NotesBitcoin Core version 25.2 is now available from: https://bitcoincore.org/bin/bitcoin-core-25.2This release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesGui- gui#774 Fix crash on selecting "Mask values" in transaction view
RPC- #29003 rpc: fix getrawtransaction segfault
Wallet- #29176 wallet: Fix use-after-free in WalletBatch::EraseRecords
- #29510 wallet: getrawchangeaddress and getnewaddress failures should not affect keypools for descriptor wallets
P2P and network changes- #29412 p2p: Don't process mutated blocks
- #29524 p2p: Don't consider blocks mutated if they don't connect to known prev block
CreditsThanks to everyone who directly contributed to this release: - Martin Zumsande
- Sebastian Falbesoner
- MarcoFalke
- UdjinM6
- dergoegge
- Greg Sanders
As well as to everyone that helped with translations on Transifex.
|
|
|
|
26.0 Release NotesBitcoin Core version 26.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-26.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesP2P and network changes- Experimental support for the v2 transport protocol defined in
BIP324 was added. It is off by default, but when enabled using -v2transport it will be negotiated on a per-connection basis with other peers that support it too. The existing v1 transport protocol remains fully supported.
- Nodes with multiple reachable networks will actively try to have at least one
outbound connection to each network. This improves individual resistance to eclipse attacks and network level resistance to partition attacks. Users no longer need to perform active measures to ensure being connected to multiple enabled networks. (#27213)
Pruning- When using assumeutxo with -prune, the prune budget may be exceeded if it is set
lower than 1100MB (i.e. MIN_DISK_SPACE_FOR_BLOCK_FILES * 2). Prune budget is normally split evenly across each chainstate, unless the resulting prune budget per chainstate is beneath MIN_DISK_SPACE_FOR_BLOCK_FILES in which case that value will be used. (#27596) Updated RPCs- Setting -rpcserialversion=0 is deprecated and will be removed in
a future release. It can currently still be used by also adding the -deprecatedrpc=serialversion option. (#28448)
- The hash_serialized_2 value has been removed from gettxoutsetinfo since the value it
calculated contained a bug and did not take all data into account. It is superseded by hash_serialized_3 which provides the same functionality but serves the correctly calculated hash. (#28685)
- New fields transport_protocol_type and session_id were added to the getpeerinfo RPC to indicate
whether the v2 transport protocol is in use, and if so, what the session id is.
- A new argument v2transport was added to the addnode RPC to indicate whether a v2 transaction connection
is to be attempted with the peer.
- Miniscript expressions can now be used in Taproot descriptors for all RPCs working with descriptors. (#27255)
- finalizepsbt is now able to finalize a PSBT with inputs spending Miniscript-compatible Taproot leaves. (#27255)
Changes to wallet related RPCs can be found in the Wallet section below. New RPCs- loadtxoutset has been added, which allows loading a UTXO snapshot of the format
generated by dumptxoutset. Once this snapshot is loaded, its contents will be deserialized into a second chainstate data structure, which is then used to sync to the network's tip.
Meanwhile, the original chainstate will complete the initial block download process in the background, eventually validating up to the block that the snapshot is based upon.
The result is a usable bitcoind instance that is current with the network tip in a matter of minutes rather than hours. UTXO snapshot are typically obtained via third-party sources (HTTP, torrent, etc.) which is reasonable since their contents are always checked by hash.
You can find more information on this process in the assumeutxo design document (https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md).
getchainstates has been added to aid in monitoring the assumeutxo sync process.
- A new getprioritisedtransactions RPC has been added. It returns a map of all fee deltas created by the
user with prioritisetransaction, indexed by txid. The map also indicates whether each transaction is present in the mempool. (#27501)
- A new RPC, submitpackage, has been added. It can be used to submit a list of raw hex
transactions to the mempool to be evaluated as a package using consensus and mempool policy rules. These policies include package CPFP, allowing a child with high fees to bump a parent below the mempool minimum feerate (but not minimum relay feerate). (#27609)
- Warning: successful submission does not mean the transactions will propagate throughout the
network, as package relay is not supported.
- Not all features are available. The package is limited to a child with all of its
unconfirmed parents, and no parent may spend the output of another parent. Also, package RBF is not supported. Refer to doc/policy/packages.md for more details on package policies and limitations.
- This RPC is experimental. Its interface may change.
- A new RPC getaddrmaninfo has been added to view the distribution of addresses in the new and tried table of the
node's address manager across different networks(ipv4, ipv6, onion, i2p, cjdns). The RPC returns count of addresses in new and tried table as well as their sum for all networks. (#27511)
- A new importmempool RPC has been added. It loads a valid mempool.dat file and attempts to
add its contents to the mempool. This can be useful to import mempool data from another node without having to modify the datadir contents and without having to restart the node. (#27460)
- Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over.
- If you want to apply fee deltas, it is recommended to use the getprioritisedtransactions and
prioritisetransaction RPCs instead of the apply_fee_delta_priority option to avoid double-prioritising any already-prioritised transactions in the mempool.
Updated settings- bitcoind and bitcoin-qt will now raise an error on startup
if a datadir that is being used contains a bitcoin.conf file that will be ignored, which can happen when a datadir= line is used in a bitcoin.conf file. The error message is just a diagnostic intended to prevent accidental misconfiguration, and it can be disabled to restore the previous behavior of using the datadir while ignoring the bitcoin.conf contained in it. (#27302)
- Passing an invalid -debug, -debugexclude, or -loglevel logging configuration
option now raises an error, rather than logging an easily missed warning. (#27632)
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. New settingsTools and Utilities- A new bitcoinconsensus_verify_script_with_spent_outputs function is available in libconsensus which optionally accepts the spent outputs of the transaction being verified.
- A new bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT flag is available in libconsensus that will verify scripts with the Taproot spending rules.
Wallet- Wallet loading has changed in this release. Wallets with some corrupted records that could be
previously loaded (with warnings) may no longer load. For example, wallets with corrupted address book entries may no longer load. If this happens, it is recommended load the wallet in a previous version of Bitcoin Core and import the data into a new wallet. Please also report an issue to help improve the software and make wallet loading more robust in these cases. (#24914)
- The gettransaction, listtransactions, listsinceblock RPCs now return
the abandoned field for all transactions. Previously, the "abandoned" field was only returned for sent transactions. (#25158)
- The listdescriptors, decodepsbt and similar RPC methods now show h rather than apostrophe (') to indicate
hardened derivation. This does not apply when using the private parameter, which matches the marker used when descriptor was generated or imported. Newly created wallets use h. This change makes it easier to handle descriptor strings manually. E.g. the importdescriptors RPC call is easiest to use h as the marker: '["desc": ".../0h/..."]'. With this change listdescriptors will use h, so you can copy-paste the result, without having to add escape characters or switch ' to 'h' manually. Note that this changes the descriptor checksum. For legacy wallets the hdkeypath field in getaddressinfo is unchanged, nor is the serialization format of wallet dumps. (#26076)
- The getbalances RPC now returns a lastprocessedblock JSON object which contains the wallet's last processed block
hash and height at the time the balances were calculated. This result shouldn't be cached because importing new keys could invalidate it. (#26094)
- The gettransaction RPC now returns a lastprocessedblock JSON object which contains the wallet's last processed block
hash and height at the time the transaction information was generated. (#26094)
- The getwalletinfo RPC now returns a lastprocessedblock JSON object which contains the wallet's last processed block
hash and height at the time the wallet information was generated. (#26094)
- Coin selection and transaction building now accounts for unconfirmed low-feerate ancestor transactions. When it is necessary to spend unconfirmed outputs, the wallet will add fees to ensure that the new transaction with its ancestors will achieve a mining score equal to the feerate requested by the user. (#26152)
- For RPC methods which accept options parameters ((importmulti, listunspent,
fundrawtransaction, bumpfee, send, sendall, walletcreatefundedpsbt, simulaterawtransaction), it is now possible to pass the options as named parameters without the need for a nested object. (#26485)
This means it is possible make calls like: src/bitcoin-cli -named bumpfee txid fee_rate=100
instead of ]src/bitcoin-cli -named bumpfee txid options='{"fee_rate": 100}'
- The deprecatedrpc=walletwarningfield configuration option has been removed.
The createwallet, loadwallet, restorewallet and unloadwallet RPCs no longer return the "warning" string field. The same information is provided through the "warnings" field added in v25.0, which returns a JSON array of strings. The "warning" string field was deprecated also in v25.0. (#27757)
- The signrawtransactionwithkey, signrawtransactionwithwallet,
walletprocesspsbt and descriptorprocesspsbt calls now return the more specific RPC_INVALID_PARAMETER error instead of RPC_MISC_ERROR if their sighashtype argument is malformed. (#28113)
- RPC walletprocesspsbt, and descriptorprocesspsbt return
object now includes field hex (if the transaction is complete) containing the serialized transaction suitable for RPC sendrawtransaction. (#28414)
- It's now possible to use Miniscript inside Taproot leaves for descriptor wallets. (#27255)
GUI changes- The transaction list in the GUI no longer provides a special category for "payment to yourself". Now transactions that have both inputs and outputs that affect the wallet are displayed on separate lines for spending and receiving. (gui#119)
- A new menu option allows migrating a legacy wallet based on keys and implied output script types stored in BerkeleyDB (BDB) to a modern wallet that uses descriptors stored in SQLite. (gui#738)
- The PSBT operations dialog marks outputs paying your own wallet with "own address". (gui#740)
- The ability to create legacy wallets is being removed. (gui#764)
Low-level changesTests- Non-standard transactions are now disabled by default on testnet
for relay and mempool acceptance. The previous behaviour can be re-enabled by setting -acceptnonstdtxn=1. (#28354) CreditsThanks to everyone who directly contributed to this release: - 0xb10c
- Amiti Uttarwar
- Andrew Chow
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Antoine Riard
- Ari
- Aurèle Oulès
- Ayush Singh
- Ben Woosley
- Brandon Odiwuor
- Brotcrunsher
- brunoerg
- Bufo
- Carl Dong
- Casey Carter
- Cory Fields
- David Álvarez Rosa
- dergoegge
- dhruv
- dimitaracev
- Erik Arvstedt
- Erik McKelvey
- Fabian Jahr
- furszy
- glozow
- Greg Sanders
- Harris
- Hennadii Stepanov
- Hernan Marino
- ishaanam
- ismaelsadeeq
- Jake Rawsthorne
- James O'Beirne
- John Moffett
- Jon Atack
- josibake
- kevkevin
- Kiminuo
- Larry Ruane
- Luke Dashjr
- MarcoFalke
- Marnix
- Martin Leitner-Ankerl
- Martin Zumsande
- Matthew Zipkin
- Michael Ford
- Michael Tidwell
- mruddy
- Murch
- ns-xvrn
- pablomartin4btc
- Pieter Wuille
- Reese Russell
- Rhythm Garg
- Ryan Ofsky
- Sebastian Falbesoner
- Sjors Provoost
- stickies-v
- stratospher
- Suhas Daftuar
- TheCharlatan
- Tim Neubauer
- Tim Ruffing
- Vasil Dimov
- virtu
- vuittont60
- willcl-ark
- Yusuf Sahin HAMZA
As well as to everyone that helped with translations on Transifex.
|
|
|
|
25.1 Release NotesBitcoin Core version 25.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-25.1/This release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesP2P- #27626 Parallel compact block downloads, take 3
- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED
Fees- #27622 Fee estimation: avoid serving stale fee estimate
RPC- #27727 rpc: Fix invalid bech32 address handling
Rest- #27853 rest: fix crash error when calling /deploymentinfo
- #28551 http: bugfix: allow server shutdown in case of remote client disconnection
Wallet- #28038 wallet: address book migration bug fixes
- #28067 descriptors: do not return top-level only funcs as sub descriptors
- #28125 wallet: bugfix, disallow migration of invalid scripts
- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted
Build- #27724 build: disable boost multi index safe mode in debug mode
- #28097 depends: xcb-proto 1.15.2
- #28543 build, macos: Fix qt package build with new Xcode 15 linker
- #28571 depends: fix unusable memory_resource in macos qt build
Gui- gui#751 macOS, do not process actions during shutdown
Miscellaneous- #28452 Do not use std::vector = {} to release memory
CI- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN
- #27834 ci: Nuke Android APK task, Use credits for tsan
- #27844 ci: Use podman stop over podman kill
- #27886 ci: Switch to amd64 container in "ARM" task
CreditsThanks to everyone who directly contributed to this release: - Abubakar Sadiq Ismail
- Andrew Chow
- Bruno Garcia
- Gregory Sanders
- Hennadii Stepanov
- MacroFake
- Matias Furszyfer
- Michael Ford
- Pieter Wuille
- stickies-v
- Will Clark
As well as to everyone that helped with translations on Transifex.
|
|
|
|
25.0 Release NotesBitcoin Core version 25.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-25.0/This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. Notable changesP2P and network changes- Transactions of non-witness size 65 bytes and above are now allowed by mempool
and relay policy. This is to better reflect the actual afforded protections against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265) New RPCs- The scanblocks RPC returns the relevant blockhashes from a set of descriptors by
scanning all blockfilters in the given range. It can be used in combination with the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note that this functionality can only be used if a compact block filter index (-blockfilterindex=1) has been constructed by the node. (#23549) Updated RPCs- All JSON-RPC methods accept a new named
parameter called args that can contain positional parameter values. This is a convenience to allow some parameter values to be passed by name without having to name every value. The python test framework and bitcoin-cli tool both take advantage of this, so for example: bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1 Can now be shortened to: bitcoin-cli -named createwallet mywallet load_on_startup=1
- The verifychain RPC will now return false if the checks didn't fail,
but couldn't be completed at the desired depth and level. This could be due to missing data while pruning, due to an insufficient dbcache or due to the node being shutdown before the call could finish. (#25574)
- sendrawtransaction has a new, optional argument, maxburnamount with a default value of 0.
Any transaction containing an unspendable output with a value greater than maxburnamount will not be submitted. At present, the outputs deemed unspendable are those with scripts that begin with an OP_RETURN code (known as 'datacarriers'), scripts that exceed the maximum script size, and scripts that contain invalid opcodes.
- The testmempoolaccept RPC now returns 2 additional results within the "fees" result:
"effective-feerate" is the feerate including fees and sizes of transactions validated together if package validation was used, and also includes any modified fees from prioritisetransaction. The "effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used in the effective-feerate (#26646).
- decodescript may now infer a Miniscript descriptor under P2WSH context if it is not lacking
information. (#27037)
- finalizepsbt is now able to finalize a transaction with inputs spending Miniscript-compatible
P2WSH scripts. (#24149)
Changes to wallet related RPCs can be found in the Wallet section below. Build System- The --enable-upnp-default and --enable-natpmp-default options
have been removed. If you want to use port mapping, you can configure it using a .conf file, or by passing the relevant options at runtime. (#26896) Updated settings- If the -checkblocks or -checklevel options are explicitly provided by the
user, but the verification checks cannot be completed due to an insufficient dbcache, Bitcoin Core will now return an error at startup. (#25574)
- Ports specified in -port and -rpcport options are now validated at startup.
Values that previously worked and were considered valid can now result in errors. (#22087)
- Setting -blocksonly will now reduce the maximum mempool memory
to 5MB (users may still use -maxmempool to override). Previously, the default 300MB would be used, leading to unexpected memory usage for users running with -blocksonly expecting it to eliminate mempool memory usage.
As unused mempool memory is shared with dbcache, this also reduces the dbcache size for users running with -blocksonly, potentially impacting performance.
- Setting -maxconnections=0 will now disable -dnsseed
and -listen (users may still set them to override).
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. New settings- The shutdownnotify option is used to specify a command to execute synchronously
before Bitcoin Core has begun its shutdown sequence. (#23395) Wallet- The minconf option, which allows a user to specify the minimum number
of confirmations a UTXO being spent has, and the maxconf option, which allows specifying the maximum number of confirmations, have been added to the following RPCs in #25375:
- fundrawtransaction
- send
- walletcreatefundedpsbt
- sendall
- Added a new next_index field in the response in listdescriptors to
have the same format as importdescriptors (#26194)
- RPC listunspent now has a new argument include_immature_coinbase
to include coinbase UTXOs that don't meet the minimum spendability depth requirement (which before were silently skipped). (#25730)
- Rescans for descriptor wallets are now significantly faster if compact
block filters (BIP158) are available. Since those are not constructed by default, the configuration option "-blockfilterindex=1" has to be provided to take advantage of the optimization. This improves the performance of the RPC calls rescanblockchain, importdescriptors and restorewallet. (#25957)
- RPC unloadwallet now fails if a rescan is in progress. (#26618)
- Wallet passphrases may now contain null characters.
Prior to this change, only characters up to the first null character were recognized and accepted. (#27068)
- Address Purposes strings are now restricted to the currently known values of "send",
"receive", and "refund". Wallets that have unrecognized purpose strings will have loading warnings, and the listlabels RPC will raise an error if an unrecognized purpose is requested. (#27217)
- In the createwallet, loadwallet, unloadwallet, and restorewallet RPCs, the
"warning" string field is deprecated in favor of a "warnings" field that returns a JSON array of strings to better handle multiple warning messages and for consistency with other wallet RPCs. The "warning" field will be fully removed from these RPCs in v26. It can be temporarily re-enabled during the deprecation period by launching bitcoind with the configuration option -deprecatedrpc=walletwarningfield. (#27279)
- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149)
GUI changes- The "Mask values" is a persistent option now. (gui#701)
- The "Mask values" option affects the "Transaction" view now, in addition to the
"Overview" one. (gui#708) REST- A new /rest/deploymentinfo endpoint has been added for fetching various
state info regarding deployments of consensus changes. (#25412) Binary verificationLow-level changesRPC- The JSON-RPC server now rejects requests where a parameter is specified multiple
times with the same name, instead of silently overwriting earlier parameter values with later ones. (#26628) - RPC listsinceblock now accepts an optional label argument
to fetch incoming transactions having the specified label. (#25934) - Previously setban, addpeeraddress, walletcreatefundedpsbt, methods
allowed non-boolean and non-null values to be passed as boolean parameters. Any string, number, array, or object value that was passed would be treated as false. After this change, passing any value except true, false, or null now triggers a JSON value is not of expected type error. (#26213) CreditsThanks to everyone who directly contributed to this release: - 0xb10c
- 721217.xyz
- @RandyMcMillan
- amadeuszpawlik
- Amiti Uttarwar
- Andrew Chow
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Aurèle Oulès
- Ben Woosley
- Bitcoin Hodler
- brunoerg
- Bushstar
- Carl Dong
- Chris Geihsler
- Cory Fields
- David Gumberg
- dergoegge
- Dhruv Mehta
- Dimitris Tsapakidis
- dougEfish
- Douglas Chimento
- ekzyis
- Elichai Turkel
- Ethan Heilman
- Fabian Jahr
- FractalEncrypt
- furszy
- Gleb Naumenko
- glozow
- Greg Sanders
- Hennadii Stepanov
- hernanmarino
- ishaanam
- ismaelsadeeq
- James O'Beirne
- jdjkelly@gmail.com
- Jeff Ruane
- Jeffrey Czyz
- Jeremy Rubin
- Jesse Barton
- João Barbosa
- JoaoAJMatos
- John Moffett
- Jon Atack
- Jonas Schnelli
- jonatack
- Joshua Kelly
- josibake
- Juan Pablo Civile
- kdmukai
- klementtan
- Kolby ML
- kouloumos
- Kristaps Kaupe
- laanwj
- Larry Ruane
- Leonardo Araujo
- Leonardo Lazzaro
- Luke Dashjr
- MacroFake
- MarcoFalke
- Martin Leitner-Ankerl
- Martin Zumsande
- Matt Whitlock
- Matthew Zipkin
- Michael Ford
- Miles Liu
- mruddy
- Murray Nesbitt
- muxator
- omahs
- pablomartin4btc
- Pasta
- Pieter Wuille
- Pttn
- Randall Naar
- Riahiamirreza
- roconnor-blockstream
- Russell O'Connor
- Ryan Ofsky
- S3RK
- Sebastian Falbesoner
- Seibart Nedor
- sinetek
- Sjors Provoost
- Skuli Dulfari
- SomberNight
- Stacie Waleyko
- stickies-v
- stratospher
- Suhas Daftuar
- Suriyaa Sundararuban
- TheCharlatan
- Vasil Dimov
- Vasil Stoyanov
- virtu
- w0xlt
- willcl-ark
- yancy
- Yusuf Sahin HAMZA
As well as to everyone that helped with translations on Transifex.
|
|
|
|
24.1 Release NotesBitcoin Core version 24.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-24.1/This release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issuesTo receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/How to UpgradeIf you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on macOS) or bitcoind/ bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. CompatibilityBitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. P2P- #26878 I2P network optimizations
- #26909 net: prevent peers.dat corruptions by only serializing once
- #27608 p2p: Avoid prematurely clearing download state for other peers
- #27610 Improve performance of p2p inv to send queues
RPC and other APIs- #26515 rpc: Require NodeStateStats object in getpeerinfo
- #27279 doc: fix/improve warning helps in {create,load,unload,restore}wallet
- #27468 rest: avoid segfault for invalid URI
Build System- #26944 depends: fix systemtap download URL
- #27462 depends: fix compiling bdb with clang-16 on aarch64
Wallet- #26595 wallet: be able to specify a wallet name and passphrase to migratewallet
- #26675 wallet: For feebump, ignore abandoned descendant spends
- #26679 wallet: Skip rescanning if wallet is more recent than tip
- #26761 wallet: fully migrate address book entries for watchonly/solvable wallets
- #27053 wallet: reuse change dest when re-creating TX with avoidpartialspends
- #27080 wallet: Zero out wallet master key upon locking so it doesn't persist in memory
- #27473 wallet: Properly handle "unknown" Address Type
GUI changes- gui#687 Load PSBTs using istreambuf_iterator rather than istream_iterator
- gui#704 Correctly limit overview transaction list
Miscellaneous- #26880 ci: replace Intel macOS CI job
- #26924 refactor: Add missing includes to fix gcc-13 compile error
CreditsThanks to everyone who directly contributed to this release: - Andrew Chow
- Anthony Towns
- Hennadii Stepanov
- John Moffett
- Jon Atack
- Marco Falke
- Martin Zumsande
- Matthew Zipkin
- Michael Ford
- pablomartin4btc
- Sebastian Falbesoner
- Suhas Daftuar
- Thomas Nguyen
- Vasil Dimov
As well as to everyone that helped with translations on Transifex.
|
|
|
|
|