Bitcoin Core v28.0: Testnet4, Full RBF by Default & More

Bitcoin Core 28.0 is the latest major release of predominant Bitcoin full node implementation.

Bitcoin Core v28.0: Testnet4, Full RBF by Default & More
  • Bitcoin Core v28 supports testnet4 and introduces a variety of P2P/mempool policy changes, including opportunistic 1-parent-1-child (1p1c) package relay, default relay of opt-in TRUC and pay-to-anchor transactions, limited package RBF relay, and full-RBF is now on by default.
  • It also adds default parameters for assumeUTXO, enabling the loadtxoutset RPC to use a UTXO set downloaded outside the Bitcoin network (etc. via torrents).
  • The update also packages many other new features, updated RPCs, fixes, stability and performance improvements, as well as updated translations.

NOTE: LND users need to set -deprecatedrpc=warnings flag before updating. Electrs users need to update it to the latest version, too.

What's new

Some of more notable changes introduced in Bitcoin Core v28 include:

  • Testnet4/BIP94 Support. Support for Testnet4 as specified in BIP94 has been added. Testnet3 will be phased out in an upcoming version.
    • The BIP94 timewarp attack mitigation is now active on the regtest network.
  • Opportunistic one-parent-one-child (1p1c) package relay. Transactions with low fee rates can be paired with their child transactions and submitted as a package, allowing nodes to download 1-parent-1-child packages via the transaction relay protocol.
  • Default relay of opt-in topologically restricted until confirmation (TRUC) transactions. The new policy includes limits on spending unconfirmed outputs, eviction of a previous descendant if a more incentive-compatible one is submitted, and a maximum transaction size of 10,000vB.
    • "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."
  • Default relay of pay-to-anchor (P2A) transactions. Pay To Anchor is a new standard witness output type for spending, a newly recognized output template.
  • Limited package RBF relay. 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.
  • Full RBF by default. The default value of the -mempoolfullrbf configuration option has been changed from 0 to 1, i.e. mempoolfullrbf=1.
  • AssumeUTXO available on mainnet. AssumeUTXO mainnet parameters have been added for height 840,000. The loadtxoutset RPC can now be used on mainnet with the matching UTXO set from that height.
  • New Windows Data Directory. The default Windows data directory has been moved to C:\Users\Username\AppData\Local\Bitcoin. If old directory is present, the client will continue to use it for backwards compatibility.
  • JSON-RPC 2.0 Support. The JSON-RPC server now recognizes JSON-RPC 2.0 requests and responds with strict adherence to the specification.
    • "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 Removal. The libbitcoin-consensus library was deprecated in 27.0 and is now completely removed.
  • Easier to migrate legacy wallets to descriptor wallet format.
    • The "Migrate Wallet" menu allows users to migrate any legacy wallet in their wallet directory, regardless of the wallets loaded.
    • 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.
  • Blockstorage improvements. Block files are now XOR'd by default with a key stored in the blocksdir.
  • Maximum mempool size along with the mempool usage are now displayed in the "Information" window.
  • UNIX domain sockets can now be used for proxy connections.
  • GCC 11.1 or later, or Clang 16.0 or later, are now required to compile Bitcoin Core.
  • 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.

And much more. Read the full changelog here.

Blog Post / Archive
GitHub Repo