aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2023-08-29 09:12:43 +0100
committerfanquake <fanquake@gmail.com>2023-08-29 09:27:19 +0100
commit5175ae482ebc88101d4fe572fb935ff1e9d8f40d (patch)
treef4b688bde7a57135cdd029cf9b0cbe1361dbe9a5 /src
parent1c1a02bbd246101fd477b0897aef971b511b4241 (diff)
parent13eb8aa572644a53ae0d631916cb4cbc273a92d1 (diff)
downloadbitcoin-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.cpp2
-rw-r--r--src/kernel/chainparams.cpp4
-rw-r--r--src/kernel/chainparams.h3
-rw-r--r--src/kernel/mempool_options.h2
-rw-r--r--src/node/mempool_args.cpp2
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())};
}