diff --git a/src/policy/policy.h b/src/policy/policy.h index 9135cae91c..657ee8b32d 100644 --- a/src/policy/policy.h +++ b/src/policy/policy.h @@ -69,10 +69,22 @@ static constexpr unsigned int DEFAULT_DESCENDANT_SIZE_LIMIT_KVB{101}; * configurable as it doesn't materially change DoS parameters. */ static constexpr unsigned int EXTRA_DESCENDANT_TX_SIZE_LIMIT{10000}; + + +/** + * Mandatory script verification flags that all new transactions must comply with for + * them to be valid. Failing one of these tests may trigger a DoS ban; + * see CheckInputScripts() for details. + * + * Note that this does not affect consensus validity; see GetBlockScriptFlags() + * for that. + */ +static const unsigned int MANDATORY_SCRIPT_VERIFY_FLAGS = SCRIPT_VERIFY_P2SH; + /** * Standard script verification flags that standard transactions will comply - * with. However scripts violating these flags may still be present in valid - * blocks and we must accept those blocks. + * with. However we do not ban/disconnect nodes that forward txs violating + * these rules, for better forwards and backwards compatability. */ static constexpr unsigned int STANDARD_SCRIPT_VERIFY_FLAGS{MANDATORY_SCRIPT_VERIFY_FLAGS | SCRIPT_VERIFY_DERSIG | diff --git a/src/script/standard.h b/src/script/standard.h index 18cf5c8c88..54065f6e30 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -38,16 +38,6 @@ public: */ static const unsigned int MAX_OP_RETURN_RELAY = 83; -/** - * Mandatory script verification flags that all new blocks must comply with for - * them to be valid. (but old blocks may not comply with) Currently just P2SH, - * but in the future other flags may be added. - * - * Failing one of these tests may trigger a DoS ban - see CheckInputScripts() for - * details. - */ -static const unsigned int MANDATORY_SCRIPT_VERIFY_FLAGS = SCRIPT_VERIFY_P2SH; - enum class TxoutType { NONSTANDARD, // 'standard' transaction types: