Skip to content

Commit 676abd1

Browse files
committed
Merge bitcoin#30594: docs: doc update for mempoolfullrbf default + log deprecation
1f93e3c add deprecation warning for mempoolfullrbf (glozow) 4400c97 [doc] update documentation for new mempoolfullrbf default (glozow) Pull request description: Followup to bitcoin#30493. Update bips.md and policy/*.md to reflect new default rules around signaling requirements in RBF. Also, log a warning when `-mempoolfullrbf=0` that this config option is deprecated and will be removed in a future release. ACKs for top commit: petertodd: ACK 1f93e3c instagibbs: ACK bitcoin@1f93e3c tdb3: ACK 1f93e3c Tree-SHA512: f60a9524f15cfaa4c10c40b6f62b787d3f9865aac48ca883def30efac4f8a118f1359532f1b209ea34e201f0b1c92398abc8bc1e439e6b60910cc7f75c51e9ae
2 parents 2987ba6 + 1f93e3c commit 676abd1

File tree

5 files changed

+9
-6
lines changed

5 files changed

+9
-6
lines changed

doc/bips.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ BIPs that are implemented by Bitcoin Core:
3333
* [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, and enforced for all peer versions as of **v0.13.0** ([PR #6579](https://github.com/bitcoin/bitcoin/pull/6579) and [PR #6641](https://github.com/bitcoin/bitcoin/pull/6641)).
3434
* [`BIP 112`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki): The CHECKSEQUENCEVERIFY opcode has been implemented since **v0.12.1** ([PR #7524](https://github.com/bitcoin/bitcoin/pull/7524)), and has been *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)).
3535
* [`BIP 113`](https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki): Median time past lock-time calculations have been implemented since **v0.12.1** ([PR #6566](https://github.com/bitcoin/bitcoin/pull/6566)), and has been *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)).
36-
* [`BIP 125`](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki): Opt-in full replace-by-fee signaling partially implemented. See doc/policy/mempool-replacements.md.
36+
* [`BIP 125`](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki): Opt-in full replace-by-fee partially implemented: signaling is enforced if configured. For other replacement rules, see doc/policy/mempool-replacements.md.
3737
* [`BIP 130`](https://github.com/bitcoin/bips/blob/master/bip-0130.mediawiki): direct headers announcement is negotiated with peer versions `>=70012` as of **v0.12.0** ([PR 6494](https://github.com/bitcoin/bitcoin/pull/6494)).
3838
* [`BIP 133`](https://github.com/bitcoin/bips/blob/master/bip-0133.mediawiki): feefilter messages are respected and sent for peer versions `>=70013` as of **v0.13.0** ([PR 7542](https://github.com/bitcoin/bitcoin/pull/7542)).
3939
* [`BIP 141`](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki): Segregated Witness (Consensus Layer) as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)), defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)), and *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)).

doc/policy/mempool-replacements.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ A transaction ("replacement transaction") may replace its directly conflicting t
1010
their in-mempool descendants (together, "original transactions") if, in addition to passing all
1111
other consensus and policy rules, each of the following conditions are met:
1212

13-
1. The directly conflicting transactions all signal replaceability explicitly. A transaction is
13+
1. If `-mempoolfullrbf=0` (the value is 1 by default), the directly conflicting transactions all signal replaceability explicitly. A transaction is
1414
signaling BIP125 replaceability if any of its inputs have an nSequence number less than (0xffffffff - 1).
1515
A transaction also signals replaceability if its version field is set to 3.
1616

1717
*Rationale*: See [BIP125
1818
explanation](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki#motivation).
19-
Use the (`-mempoolfullrbf`) configuration option to allow transaction replacement without enforcement of the
20-
opt-in signaling rule.
2119

2220
2. The replacement transaction only include an unconfirmed input if that input was included in
2321
one of the directly conflicting transactions. An unconfirmed input spends an output from a
@@ -80,3 +78,5 @@ This set of rules is similar but distinct from BIP125.
8078

8179
* Full replace-by-fee enabled as a configurable mempool policy as of **v24.0** ([PR
8280
#25353](https://github.com/bitcoin/bitcoin/pull/25353)).
81+
82+
* Full replace-by-fee is the default policy as of **v28.0** ([PR #30493](https://github.com/bitcoin/bitcoin/pull/30493)).

doc/policy/packages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ The following rules are enforced for all packages:
3838

3939
* Only limited package replacements are currently considered. (#28984)
4040

41-
- All direct conflicts must signal replacement (or the node must have `-mempoolfullrbf=1` set).
41+
- If `-mempoolfullrbf=0` (the value is 1 by default), all direct conflicts must signal replacement.
4242

4343
- Packages are 1-parent-1-child, with no in-mempool ancestors of the package.
4444

src/init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ void SetupServerArgs(ArgsManager& argsman)
645645
"is of this size or less (default: %u)",
646646
MAX_OP_RETURN_RELAY),
647647
ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
648-
argsman.AddArg("-mempoolfullrbf", strprintf("Accept transaction replace-by-fee without requiring replaceability signaling (default: %u)", DEFAULT_MEMPOOL_FULL_RBF), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
648+
argsman.AddArg("-mempoolfullrbf", strprintf("(DEPRECATED) Accept transaction replace-by-fee without requiring replaceability signaling (default: %u)", DEFAULT_MEMPOOL_FULL_RBF), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
649649
argsman.AddArg("-permitbaremultisig", strprintf("Relay transactions creating non-P2SH multisig outputs (default: %u)", DEFAULT_PERMIT_BAREMULTISIG), ArgsManager::ALLOW_ANY,
650650
OptionsCategory::NODE_RELAY);
651651
argsman.AddArg("-minrelaytxfee=<amt>", strprintf("Fees (in %s/kvB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)",

src/node/mempool_args.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ util::Result<void> ApplyArgsManOptions(const ArgsManager& argsman, const CChainP
9393
}
9494

9595
mempool_opts.full_rbf = argsman.GetBoolArg("-mempoolfullrbf", mempool_opts.full_rbf);
96+
if (!mempool_opts.full_rbf) {
97+
LogInfo("Warning: mempoolfullrbf=0 set but deprecated and will be removed in a future release\n");
98+
}
9699

97100
mempool_opts.persist_v1_dat = argsman.GetBoolArg("-persistmempoolv1", mempool_opts.persist_v1_dat);
98101

0 commit comments

Comments
 (0)