From edb3e7cdf63688058ad2b90bea0d4933d9967be8 Mon Sep 17 00:00:00 2001 From: glozow Date: Wed, 3 Sep 2025 13:09:47 -0400 Subject: [PATCH] [test] rework/delete feature_rbf tests requiring large clusters --- test/functional/feature_rbf.py | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/test/functional/feature_rbf.py b/test/functional/feature_rbf.py index 91d90efef6b..91a79113d67 100755 --- a/test/functional/feature_rbf.py +++ b/test/functional/feature_rbf.py @@ -28,10 +28,8 @@ class ReplaceByFeeTest(BitcoinTestFramework): self.num_nodes = 2 self.extra_args = [ [ - "-limitancestorcount=50", - "-limitancestorsize=101", - "-limitdescendantcount=200", - "-limitdescendantsize=101", + "-limitancestorcount=64", + "-limitdescendantcount=64", ], # second node has default mempool parameters [ @@ -145,7 +143,9 @@ class ReplaceByFeeTest(BitcoinTestFramework): prevout = tx0_outpoint remaining_value = initial_nValue chain_txids = [] - while remaining_value > 1 * COIN: + for _ in range(MAX_CLUSTER_LIMIT): + if remaining_value <= 1 * COIN: + break remaining_value -= int(0.1 * COIN) prevout = self.wallet.send_self_transfer( from_node=self.nodes[0], @@ -244,25 +244,6 @@ class ReplaceByFeeTest(BitcoinTestFramework): for txid in tree_txs: assert txid not in mempool - # Try again, but with more total transactions than the "max txs - # double-spent at once" anti-DoS limit. - for n in (MAX_REPLACEMENT_LIMIT + 1, MAX_REPLACEMENT_LIMIT * 2): - fee = int(0.00001 * COIN) - tx0_outpoint = self.make_utxo(self.nodes[0], initial_nValue) - tree_txs = list(branch(tx0_outpoint, initial_nValue, n, fee=fee)) - assert_equal(len(tree_txs), n) - - dbl_tx_hex = self.wallet.create_self_transfer( - utxo_to_spend=tx0_outpoint, - sequence=0, - fee=2 * (Decimal(fee) / COIN) * n, - )["hex"] - # This will raise an exception - assert_raises_rpc_error(-26, "too many potential replacements", self.nodes[0].sendrawtransaction, dbl_tx_hex, 0) - - for txid in tree_txs: - self.nodes[0].getrawtransaction(txid) - def test_replacement_feeperkb(self): """Replacement requires fee-per-KB to be higher""" tx0_outpoint = self.make_utxo(self.nodes[0], int(1.1 * COIN)) @@ -380,6 +361,8 @@ class ReplaceByFeeTest(BitcoinTestFramework): amount_per_output=split_value, )["new_utxos"] + self.generate(self.nodes[0], 1) + # Now spend each of those outputs individually for utxo in splitting_tx_utxos: self.wallet.send_self_transfer(