mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-09 22:28:51 +02:00
Merge bitcoin/bitcoin#32406: policy: uncap datacarrier by default
a189d63618add release note for datacarriersize default change (Greg Sanders)a141e1bf50Add more OP_RETURN mempool acceptance functional tests (Peter Todd)0b4048c733datacarrier: deprecate startup arguments for future removal (Greg Sanders)63091b79e7test: remove unnecessary -datacarriersize args from tests (Greg Sanders)9f36962b07policy: uncap datacarrier by default (Greg Sanders) Pull request description: Retains the `-datacarrier*` args, marks them as deprecated, and does not require another startup argument for multiple OP_RETURN outputs. If a user has set `-datacarriersize` the value is "budgeted" across all seen OP_RETURN output scriptPubKeys. In other words the total script bytes stays the same, but can be spread across any number of outputs. This is done to not introduce an additional argument to support multiple outputs. I do not advise people use the option with custom arguments and it is marked as deprecated to not mislead as a promise to offer it forever. The argument itself can be removed in some future release to clean up the code and minimize footguns for users. ACKs for top commit: stickies-v: re-ACKa189d63618Sjors: re-ACKa189d63618polespinasa: re-ACKa189d63618hodlinator: re-ACKa189d63618ajtowns: reACKa189d63618mzumsande: re-ACKa189d63618petertodd: ACKa189d63618theStack: re-ACKa189d636181440000bytes: re-ACKa189d63618willcl-ark: ACKa189d63618dergoegge: ACKa189d63618fanquake: ACKa189d63618murchandamus: ACKa189d63618darosior: Concept ACKa189d63618. Tree-SHA512: 3da2f1ef2f50884d4da7e50df2121bf175cb826edaa14ba7c3068a6d5b2a70beb426edc55d50338ee1d9686b9f74fdf9e10d30fb26a023a718dd82fa1e77b038
This commit is contained in:
@@ -187,6 +187,9 @@ class MiningTest(BitcoinTestFramework):
|
||||
assert tx_below_min_feerate['txid'] not in block_template_txids
|
||||
assert tx_below_min_feerate['txid'] not in block_txids
|
||||
|
||||
# Restart node to clear mempool for the next test
|
||||
self.restart_node(0)
|
||||
|
||||
def test_timewarp(self):
|
||||
self.log.info("Test timewarp attack mitigation (BIP94)")
|
||||
node = self.nodes[0]
|
||||
@@ -280,11 +283,9 @@ class MiningTest(BitcoinTestFramework):
|
||||
def test_block_max_weight(self):
|
||||
self.log.info("Testing default and custom -blockmaxweight startup options.")
|
||||
|
||||
# Restart the node to allow large transactions
|
||||
LARGE_TXS_COUNT = 10
|
||||
LARGE_VSIZE = int(((MAX_BLOCK_WEIGHT - DEFAULT_BLOCK_RESERVED_WEIGHT) / WITNESS_SCALE_FACTOR) / LARGE_TXS_COUNT)
|
||||
HIGH_FEERATE = Decimal("0.0003")
|
||||
self.restart_node(0, extra_args=[f"-datacarriersize={LARGE_VSIZE}"])
|
||||
|
||||
# Ensure the mempool is empty
|
||||
assert_equal(len(self.nodes[0].getrawmempool()), 0)
|
||||
@@ -312,7 +313,7 @@ class MiningTest(BitcoinTestFramework):
|
||||
# Test block template creation with custom -blockmaxweight
|
||||
custom_block_weight = MAX_BLOCK_WEIGHT - 2000
|
||||
# Reducing the weight by 2000 units will prevent 1 large transaction from fitting into the block.
|
||||
self.restart_node(0, extra_args=[f"-datacarriersize={LARGE_VSIZE}", f"-blockmaxweight={custom_block_weight}"])
|
||||
self.restart_node(0, extra_args=[f"-blockmaxweight={custom_block_weight}"])
|
||||
|
||||
self.log.info("Testing the block template with custom -blockmaxweight to include 9 large and 2 normal transactions.")
|
||||
self.verify_block_template(
|
||||
@@ -322,7 +323,7 @@ class MiningTest(BitcoinTestFramework):
|
||||
|
||||
# Ensure the block weight does not exceed the maximum
|
||||
self.log.info(f"Testing that the block weight will never exceed {MAX_BLOCK_WEIGHT - DEFAULT_BLOCK_RESERVED_WEIGHT}.")
|
||||
self.restart_node(0, extra_args=[f"-datacarriersize={LARGE_VSIZE}", f"-blockmaxweight={MAX_BLOCK_WEIGHT}"])
|
||||
self.restart_node(0, extra_args=[f"-blockmaxweight={MAX_BLOCK_WEIGHT}"])
|
||||
self.log.info("Sending 2 additional normal transactions to fill the mempool to the maximum block weight.")
|
||||
self.send_transactions(utxos[LARGE_TXS_COUNT + 2:], NORMAL_FEERATE, NORMAL_VSIZE)
|
||||
self.log.info(f"Testing that the mempool's weight matches the maximum block weight: {MAX_BLOCK_WEIGHT}.")
|
||||
@@ -336,7 +337,7 @@ class MiningTest(BitcoinTestFramework):
|
||||
|
||||
self.log.info("Test -blockreservedweight startup option.")
|
||||
# Lowering the -blockreservedweight by 4000 will allow for two more transactions.
|
||||
self.restart_node(0, extra_args=[f"-datacarriersize={LARGE_VSIZE}", "-blockreservedweight=4000"])
|
||||
self.restart_node(0, extra_args=["-blockreservedweight=4000"])
|
||||
self.verify_block_template(
|
||||
expected_tx_count=12,
|
||||
expected_weight=MAX_BLOCK_WEIGHT - 4000,
|
||||
|
||||
Reference in New Issue
Block a user