@@ -36,10 +36,29 @@ The following rules are enforced for all packages:
3636* Packages cannot have conflicting transactions, i.e. no two transactions in a package can spend
3737 the same inputs. Packages cannot have duplicate transactions. (#20833 )
3838
39- * No transaction in a package can conflict with a mempool transaction. Replace By Fee is
40- currently disabled for packages. (#20833 )
39+ * Only limited package replacements are currently considered. (#28984 )
4140
42- - Package RBF may be enabled in the future.
41+ - All direct conflicts must signal replacement (or have ` -mempoolfullrbf=1 ` set).
42+
43+ - Packages are 1-parent-1-child, with no in-mempool ancestors of the package.
44+
45+ - All conflicting clusters(connected components of mempool transactions) must be clusters of up to size 2.
46+
47+ - No more than MAX_REPLACEMENT_CANDIDATES transactions can be replaced, analogous to
48+ regular [ replacement rule] ( ./mempool-replacements.md ) 5).
49+
50+ - Replacements must pay more total total fees at the incremental relay fee (analogous to
51+ regular [ replacement rules] ( ./mempool-replacements.md ) 3 and 4).
52+
53+ - Parent feerate must be lower than package feerate.
54+
55+ - Must improve [ feerate diagram] ( https://delvingbitcoin.org/t/mempool-incentive-compatibility/553 ) . (#29242 )
56+
57+ - * Rationale* : Basic support for package RBF can be used by wallets
58+ by making chains of no longer than two, then directly conflicting
59+ those chains when needed. Combined with V3 transactions this can
60+ result in more robust fee bumping. More general package RBF may be
61+ enabled in the future.
4362
4463* When packages are evaluated against ancestor/descendant limits, the union of all transactions'
4564 descendants and ancestors is considered. (#21800 )
0 commit comments