diff options
author | fanquake <fanquake@gmail.com> | 2023-08-29 09:12:43 +0100 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2023-08-29 09:27:19 +0100 |
commit | 5175ae482ebc88101d4fe572fb935ff1e9d8f40d (patch) | |
tree | f4b688bde7a57135cdd029cf9b0cbe1361dbe9a5 /src | |
parent | 1c1a02bbd246101fd477b0897aef971b511b4241 (diff) | |
parent | 13eb8aa572644a53ae0d631916cb4cbc273a92d1 (diff) | |
download | bitcoin-5175ae482ebc88101d4fe572fb935ff1e9d8f40d.tar.xz |
Merge bitcoin/bitcoin#28354: test: default acceptnonstdtxn=0 on all chains
13eb8aa572644a53ae0d631916cb4cbc273a92d1 doc: Release notes for testnet defaulting to -acceptnonstdtxn=0 (Anthony Towns)
e1dc15d69061e69351c72907444e8ded0ac7c88c config: default acceptnonstdtxn=0 on all chains (Anthony Towns)
Pull request description:
Changes `-acceptnonstxtxn` to default to 0 on testnet, matching the other chains. Allowing non-standard txs on testnet by default contributed to the difficulties RSK described in #26348: "We see that there are two script paths and, to reduce the script size, a single CHECKMULTISIG is used for the two paths, separating the signer count from the CHECKMULTISIG opcode. This script worked on testnet, because it lacks the standard checks performed in Mainnet."
ACKs for top commit:
MarcoFalke:
lgtm ACK 13eb8aa572644a53ae0d631916cb4cbc273a92d1
sipa:
utACK 13eb8aa572644a53ae0d631916cb4cbc273a92d1
instagibbs:
utACK https://github.com/bitcoin/bitcoin/pull/28354/commits/13eb8aa572644a53ae0d631916cb4cbc273a92d1
theStack:
Code-review ACK 13eb8aa572644a53ae0d631916cb4cbc273a92d1
Tree-SHA512: eff7a3f9fc9b94003a730beb96e6f3399bc8b8e93fde4b15f20a11eda61d9a3e076f4423989f98b794b32681abecbc3756a54cd0d37b136e2fb2ffbb47ee7774
Diffstat (limited to 'src')
-rw-r--r-- | src/init.cpp | 2 | ||||
-rw-r--r-- | src/kernel/chainparams.cpp | 4 | ||||
-rw-r--r-- | src/kernel/chainparams.h | 3 | ||||
-rw-r--r-- | src/kernel/mempool_options.h | 2 | ||||
-rw-r--r-- | src/node/mempool_args.cpp | 2 |
5 files changed, 4 insertions, 9 deletions
diff --git a/src/init.cpp b/src/init.cpp index 616883c3a1..47cffdd335 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -585,7 +585,7 @@ void SetupServerArgs(ArgsManager& argsman) SetupChainParamsBaseOptions(argsman); - argsman.AddArg("-acceptnonstdtxn", strprintf("Relay and mine \"non-standard\" transactions (%sdefault: %u)", "testnet/regtest only; ", !testnetChainParams->RequireStandard()), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY); + argsman.AddArg("-acceptnonstdtxn", strprintf("Relay and mine \"non-standard\" transactions (test networks only; default: %u)", DEFAULT_ACCEPT_NON_STD_TXN), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY); argsman.AddArg("-incrementalrelayfee=<amt>", strprintf("Fee rate (in %s/kvB) used to define cost of relay, used for mempool limiting and replacement policy. (default: %s)", CURRENCY_UNIT, FormatMoney(DEFAULT_INCREMENTAL_RELAY_FEE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY); argsman.AddArg("-dustrelayfee=<amt>", strprintf("Fee rate (in %s/kvB) used to define dust, the value of an output such that it will cost more than its value in fees at this fee rate to spend it. (default: %s)", CURRENCY_UNIT, FormatMoney(DUST_RELAY_TX_FEE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::NODE_RELAY); argsman.AddArg("-acceptstalefeeestimates", strprintf("Read fee estimates even if they are stale (%sdefault: %u) fee estimates are considered stale if they are %s hours old", "regtest only; ", DEFAULT_ACCEPT_STALE_FEE_ESTIMATES, Ticks<std::chrono::hours>(MAX_FILE_AGE)), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST); diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp index d9ed1547b3..733a3339b3 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -151,7 +151,6 @@ public: vFixedSeeds = std::vector<uint8_t>(std::begin(chainparams_seed_main), std::end(chainparams_seed_main)); fDefaultConsistencyChecks = false; - fRequireStandard = true; m_is_test_chain = false; m_is_mockable_chain = false; @@ -259,7 +258,6 @@ public: vFixedSeeds = std::vector<uint8_t>(std::begin(chainparams_seed_test), std::end(chainparams_seed_test)); fDefaultConsistencyChecks = false; - fRequireStandard = false; m_is_test_chain = true; m_is_mockable_chain = false; @@ -382,7 +380,6 @@ public: bech32_hrp = "tb"; fDefaultConsistencyChecks = false; - fRequireStandard = true; m_is_test_chain = true; m_is_mockable_chain = false; } @@ -474,7 +471,6 @@ public: vSeeds.emplace_back("dummySeed.invalid."); fDefaultConsistencyChecks = true; - fRequireStandard = true; m_is_test_chain = true; m_is_mockable_chain = true; diff --git a/src/kernel/chainparams.h b/src/kernel/chainparams.h index ad0b49a885..2d38af609c 100644 --- a/src/kernel/chainparams.h +++ b/src/kernel/chainparams.h @@ -102,8 +102,6 @@ public: const CBlock& GenesisBlock() const { return genesis; } /** Default value for -checkmempool and -checkblockindex argument */ bool DefaultConsistencyChecks() const { return fDefaultConsistencyChecks; } - /** Policy: Filter transactions that do not match well-defined patterns */ - bool RequireStandard() const { return fRequireStandard; } /** If this chain is exclusively used for testing */ bool IsTestChain() const { return m_is_test_chain; } /** If this chain allows time to be mocked */ @@ -179,7 +177,6 @@ protected: CBlock genesis; std::vector<uint8_t> vFixedSeeds; bool fDefaultConsistencyChecks; - bool fRequireStandard; bool m_is_test_chain; bool m_is_mockable_chain; CCheckpointData checkpointData; diff --git a/src/kernel/mempool_options.h b/src/kernel/mempool_options.h index 58bb3debbf..757be41b3c 100644 --- a/src/kernel/mempool_options.h +++ b/src/kernel/mempool_options.h @@ -23,6 +23,8 @@ static constexpr unsigned int DEFAULT_BLOCKSONLY_MAX_MEMPOOL_SIZE_MB{5}; 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}; +/** Default for -acceptnonstdtxn */ +static constexpr bool DEFAULT_ACCEPT_NON_STD_TXN{false}; namespace kernel { /** diff --git a/src/node/mempool_args.cpp b/src/node/mempool_args.cpp index 7d8244980d..f63d9875fc 100644 --- a/src/node/mempool_args.cpp +++ b/src/node/mempool_args.cpp @@ -86,7 +86,7 @@ util::Result<void> ApplyArgsManOptions(const ArgsManager& argsman, const CChainP mempool_opts.max_datacarrier_bytes = std::nullopt; } - mempool_opts.require_standard = !argsman.GetBoolArg("-acceptnonstdtxn", !chainparams.RequireStandard()); + mempool_opts.require_standard = !argsman.GetBoolArg("-acceptnonstdtxn", DEFAULT_ACCEPT_NON_STD_TXN); if (!chainparams.IsTestChain() && !mempool_opts.require_standard) { return util::Error{strprintf(Untranslated("acceptnonstdtxn is not currently supported for %s chain"), chainparams.GetChainTypeString())}; } |