mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-09 11:27:28 -03:00
Merge bitcoin/bitcoin#30493: policy: enable full-rbf by default
590456e3f1
policy: enable full-rbf by default (Peter Todd)195e98ea8e
doc: add release notes for full-rbf (Peter Todd) Pull request description: This pull request enables full rbf (mempool policy) by default. #28132 was closed recently with this [comment](https://github.com/bitcoin/bitcoin/pull/28132#issuecomment-2225369634). --- Rationale: - Full RBF config option was added in July 2022: https://github.com/bitcoin/bitcoin/pull/25353 - It is used regularly: https://mempool.space/rbf#fullrbf - Most mining pools are using it: https://github.com/bitcoin/bitcoin/pull/28132#issuecomment-2059120917 ACKs for top commit: petertodd: ACK590456e3f1
instagibbs: reACK590456e3f1
glozow: reACK590456e3f1
achow101: ACK590456e3f1
ariard: tested ACK590456e3
murchandamus: reACK590456e3f1
Tree-SHA512: 83fceef9961021687e6ff979041f89be0c616f7a49cc28a5d7edf7d8ad064fcb9c0e2af0c31f4f89867a9f6dff4e40ef8ad4dbd624e7d6a4e00ac1f1c1f66c7a
This commit is contained in:
commit
902dd14382
6 changed files with 15 additions and 4 deletions
4
doc/release-notes-30493.md
Normal file
4
doc/release-notes-30493.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
Full Replace-By-Fee
|
||||
===================
|
||||
|
||||
`mempoolfullrbf=1` is now set by default.
|
|
@ -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 */
|
||||
|
|
|
@ -26,15 +26,18 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 2
|
||||
# both nodes disable full-rbf to test BIP125 signaling
|
||||
self.extra_args = [
|
||||
[
|
||||
"-mempoolfullrbf=0",
|
||||
"-limitancestorcount=50",
|
||||
"-limitancestorsize=101",
|
||||
"-limitdescendantcount=200",
|
||||
"-limitdescendantsize=101",
|
||||
],
|
||||
# second node has default mempool parameters
|
||||
# second node has default mempool parameters, besides mempoolfullrbf being disabled
|
||||
[
|
||||
"-mempoolfullrbf=0",
|
||||
],
|
||||
]
|
||||
self.supports_cli = False
|
||||
|
|
|
@ -55,6 +55,7 @@ class MempoolAcceptanceTest(BitcoinTestFramework):
|
|||
self.num_nodes = 1
|
||||
self.extra_args = [[
|
||||
'-txindex','-permitbaremultisig=0',
|
||||
'-mempoolfullrbf=0',
|
||||
]] * self.num_nodes
|
||||
self.supports_cli = False
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ class MempoolTRUC(BitcoinTestFramework):
|
|||
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")
|
||||
|
|
|
@ -119,6 +119,9 @@ class P2PPermissionsTests(BitcoinTestFramework):
|
|||
|
||||
self.log.debug("Check that node[1] will not send an invalid tx to node[0]")
|
||||
tx.vout[0].nValue += 1
|
||||
# add dust to cause policy rejection but no disconnection
|
||||
tx.vout.append(tx.vout[0])
|
||||
tx.vout[-1].nValue = 0
|
||||
txid = tx.rehash()
|
||||
# Send the transaction twice. The first time, it'll be rejected by ATMP because it conflicts
|
||||
# with a mempool transaction. The second time, it'll be in the m_lazy_recent_rejects filter.
|
||||
|
@ -126,7 +129,7 @@ class P2PPermissionsTests(BitcoinTestFramework):
|
|||
[tx],
|
||||
self.nodes[1],
|
||||
success=False,
|
||||
reject_reason='{} (wtxid={}) from peer=0 was not accepted: txn-mempool-conflict'.format(txid, tx.getwtxid())
|
||||
reject_reason='{} (wtxid={}) from peer=0 was not accepted: dust'.format(txid, tx.getwtxid())
|
||||
)
|
||||
|
||||
p2p_rebroadcast_wallet.send_txs_and_test(
|
||||
|
|
Loading…
Reference in a new issue