Tasks and PRs
:ballot_box_with_check: (1) multi-parent-1-child package validation
What we get: the ability to validate multiple transactions, including CPFP of transactions below the mempool minimum feerate. An RPC to submit things locally.
- Enable validation of multiple transactions in MemPoolAccept
- Enable package CPFP
- RPC access
- Fuzzing and bug fixes
:ballot_box_with_check: (2) Policy-Related Features: TRUC and limited package RBF
What we get: an opt-in policy for anti-pinning in single transaction or 1-parent-1-child package scenarios. Also, package CPFP of 0-fee parent and package RBF for restricted topologies prior to cluster mempool.
:ballot_box_with_check: (2a) Topologically Restricted Until Confirmation (v3) transaction policy
Also see #29319 for its role in cluster mempool.
- Main feature: #28948
- Followup: #29424
- Sibling Eviction: #29306
- Decrease max vsize: #29873
- Enable v3 on mainnet: #29496
- Followup: #30272
- Docs: https://github.com/bitcoin/bips/pull/1541
:ballot_box_with_check: (2b) Package RBF for cluster size 2
- Enable Package RBF for 1-parent-1-child situations
Also see: Ephemeral Dust and Pay To Anchor (P2A) aka Ephemeral Anchors
:ballot_box_with_check: (3) 1-parent-1-child package relay
What we get: opportunistic acceptance of of 1-parent-1-child packages. Not quite “package relay” but similar to it. Protocols like LN can use this to create 0-fee presigned transactions with a single, 0-value anchor output; 0-fee commitment transactions can replace each other using the fees of the child attached to the anchor. This should provide an adequate replacement for CPFP carve out, which is helpful for the next step (see #29319).
- Opportunistically submit 1-parent-1-child packages
(4) TxDownloadManager and Orphan Resolution improvements
All of this code directly contributes to package relay, whether it’s BIP 331 or a different protocol.
- Modularize TxDownloadManager + testing
- Make orphan resolution more robust. See known orphanage problems.
(5) Further Work
- Test Package Accept: #32160
- Ancestor Package Relay: propagate incentive-compatible packages that are more complex than 1p1c, safely evaluate replacements within packages, handle orphans better. See BIP 331
- Arbitrary package validation
- #26711
- https://delvingbitcoin.org/t/post-clustermempool-package-rbf-per-chunk-processing/190
- bitcoin/bips/pull/1382
- #27742
- linearization + bonus for rbf https://github.com/glozow/bitcoin/pull/12
- subchunking https://github.com/glozow/bitcoin/pull/11
- Sender-initiated package relay protocol: reduce round trips by anticipating a peer’s orphan resolution request and sending them the parent along with the child, in a
pkgtxnsmessage. #33500 - Dynamic orphan resolution limits per peer, based on connection type/reputation
- fuzzer to check that packages can always propagate
Superseded/Deferred Work
Prehistory