@@ -36,10 +36,29 @@ The following rules are enforced for all packages:
36
36
* Packages cannot have conflicting transactions, i.e. no two transactions in a package can spend
37
37
the same inputs. Packages cannot have duplicate transactions. (#20833 )
38
38
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 )
41
40
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.
43
62
44
63
* When packages are evaluated against ancestor/descendant limits, the union of all transactions'
45
64
descendants and ancestors is considered. (#21800 )
0 commit comments