Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions doc/release-notes-28132.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Full Replace-By-Fee
===================

`mempoolfullrbf=1` is now set by default, which matches the policies of the
supermajority of hash power.
2 changes: 1 addition & 1 deletion src/kernel/mempool_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ static constexpr unsigned int DEFAULT_BLOCKSONLY_MAX_MEMPOOL_SIZE_MB{5};
/** Default for -mempoolexpiry, expiration time for mempool transactions in hours */
static constexpr unsigned int DEFAULT_MEMPOOL_EXPIRY_HOURS{336};
/** Default for -mempoolfullrbf, if the transaction replaceability signaling is ignored */
static constexpr bool DEFAULT_MEMPOOL_FULL_RBF{false};
static constexpr bool DEFAULT_MEMPOOL_FULL_RBF{true};
/** Whether to fall back to legacy V1 serialization when writing mempool.dat */
static constexpr bool DEFAULT_PERSIST_V1_DAT{false};
/** Default for -acceptnonstdtxn */
Expand Down
3 changes: 3 additions & 0 deletions test/functional/feature_rbf.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,18 @@ def add_options(self, parser):

def set_test_params(self):
self.num_nodes = 2
# both nodes disable full-rbf to test BIP125 signaling
self.extra_args = [
[
"-mempoolfullrbf=0",
Comment thread
petertodd marked this conversation as resolved.
Outdated
"-limitancestorcount=50",
"-limitancestorsize=101",
"-limitdescendantcount=200",
"-limitdescendantsize=101",
],
# second node has default mempool parameters
[
"-mempoolfullrbf=0",
],
]
self.supports_cli = False
Expand Down
1 change: 1 addition & 0 deletions test/functional/mempool_accept.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ def set_test_params(self):
self.num_nodes = 1
self.extra_args = [[
'-txindex','-permitbaremultisig=0',
'-mempoolfullrbf=0',
]] * self.num_nodes
self.supports_cli = False

Expand Down
2 changes: 1 addition & 1 deletion test/functional/mempool_truc.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ def test_truc_replacement(self):
self.check_mempool([tx_v3_bip125_rbf_v2["txid"], tx_v3_parent["txid"], tx_v3_child["txid"]])


@cleanup(extra_args=None)
@cleanup(extra_args=["-mempoolfullrbf=0"])
def test_truc_bip125(self):
node = self.nodes[0]
self.log.info("Test TRUC transactions that don't signal BIP125 are replaceable")
Expand Down
4 changes: 2 additions & 2 deletions test/functional/p2p_permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def run_test(self):
self.check_tx_relay()

self.checkpermission(
# default permissions (no specific permissions)
# default permissions (no specific permissions), with full-rbf disabled
["-whitelist=127.0.0.1"],
# Make sure the default values in the command line documentation match the ones here
["relay", "noban", "mempool", "download"])
Expand Down Expand Up @@ -101,7 +101,7 @@ def check_tx_relay(self):
# A test framework p2p connection is needed to send the raw transaction directly. If a full node was used, it could only
# rebroadcast via the inv-getdata mechanism. However, even for forcerelay connections, a full node would
# currently not request a txid that is already in the mempool.
self.restart_node(1, extra_args=["-whitelist=forcerelay@127.0.0.1"])
self.restart_node(1, extra_args=["-whitelist=forcerelay@127.0.0.1", "-mempoolfullrbf=0"])
p2p_rebroadcast_wallet = self.nodes[1].add_p2p_connection(P2PDataStore())

self.log.debug("Send a tx from the wallet initially")
Expand Down