diff --git a/src/avalanche/proof.cpp b/src/avalanche/proof.cpp --- a/src/avalanche/proof.cpp +++ b/src/avalanche/proof.cpp @@ -108,6 +108,14 @@ }); } +static bool IsStandardPayoutScript(const CScript &scriptPubKey) { + // Check the script's standardness against the default max OP_RETURN size, + // so that a proof's validity is not affected by a local relay policy + // parameter (see -datacarriersize config option) + TxoutType scriptType; + return IsStandard(scriptPubKey, MAX_OP_RETURN_RELAY, scriptType); +} + bool Proof::verify(const Amount &stakeUtxoDustThreshold, ProofValidationState &state) const { if (stakes.empty()) { @@ -120,8 +128,7 @@ strprintf("%u > %u", stakes.size(), AVALANCHE_MAX_PROOF_STAKES)); } - TxoutType scriptType; - if (!IsStandard(payoutScriptPubKey, scriptType)) { + if (!IsStandardPayoutScript(payoutScriptPubKey)) { return state.Invalid(ProofValidationResult::INVALID_PAYOUT_SCRIPT, "payout-script-non-standard"); } diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -1970,9 +1970,6 @@ return false; } - fAcceptDatacarrier = - args.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER); - // Option to startup with mocktime set (used for regression testing): SetMockTime(args.GetIntArg("-mocktime", 0)); // SetMockTime(0) is a no-op diff --git a/src/kernel/mempool_options.h b/src/kernel/mempool_options.h --- a/src/kernel/mempool_options.h +++ b/src/kernel/mempool_options.h @@ -5,6 +5,7 @@ #define BITCOIN_KERNEL_MEMPOOL_OPTIONS_H #include +#include