From b096718b88d77417696573706a6d1c412b89ded0 Mon Sep 17 00:00:00 2001 From: ismaelsadeeq Date: Sat, 30 Nov 2024 17:09:45 -0500 Subject: [PATCH] init: fail to start when `-blockmaxweight` exceeds `MAX_BLOCK_WEIGHT` --- src/init.cpp | 7 +++++++ test/functional/mining_basic.py | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/init.cpp b/src/init.cpp index 89fd586bf6..5e48b1f1da 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1017,6 +1017,13 @@ bool AppInitParameterInteraction(const ArgsManager& args) } } + if (args.IsArgSet("-blockmaxweight")) { + const auto max_block_weight = args.GetIntArg("-blockmaxweight", MAX_BLOCK_WEIGHT); + if (max_block_weight > MAX_BLOCK_WEIGHT) { + return InitError(strprintf(_("Specified -blockmaxweight (%d) exceeds consensus maximum block weight (%d)"), max_block_weight, MAX_BLOCK_WEIGHT)); + } + } + nBytesPerSigOp = args.GetIntArg("-bytespersigop", nBytesPerSigOp); if (!g_wallet_init_interface.ParameterInteraction()) return false; diff --git a/test/functional/mining_basic.py b/test/functional/mining_basic.py index 49d535d7cc..973c9cb51a 100755 --- a/test/functional/mining_basic.py +++ b/test/functional/mining_basic.py @@ -272,6 +272,13 @@ class MiningTest(BitcoinTestFramework): expected_weight=MAX_BLOCK_WEIGHT - DEFAULT_COINBASE_TX_WEIGHT, ) + self.log.info("Test that node will fail to start when user provide consensus invalid -blockmaxweight") + self.stop_node(0) + self.nodes[0].assert_start_raises_init_error( + extra_args=[f"-blockmaxweight={MAX_BLOCK_WEIGHT + 1}"], + expected_msg=f"Error: Specified -blockmaxweight ({MAX_BLOCK_WEIGHT + 1}) exceeds consensus maximum block weight ({MAX_BLOCK_WEIGHT})", + ) + def run_test(self): node = self.nodes[0]