diff options
author | esneider <dariosn@gmail.com> | 2017-06-27 11:41:34 -0300 |
---|---|---|
committer | esneider <dariosn@gmail.com> | 2017-06-27 11:41:34 -0300 |
commit | ca67ddf0b737b65fb2909b65ab15ecc000aca06a (patch) | |
tree | 5a7c8a610cd2687f137664d5427f7b4c6e12071e /src/policy | |
parent | 7c87a9c748be7121a240d81f9a5c6c988be6ffcf (diff) |
Move the AreInputsStandard documentation next to its implementation
Diffstat (limited to 'src/policy')
-rw-r--r-- | src/policy/policy.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp index 5f68c09a86..68b5d48fbf 100644 --- a/src/policy/policy.cpp +++ b/src/policy/policy.cpp @@ -52,23 +52,6 @@ bool IsDust(const CTxOut& txout, const CFeeRate& dustRelayFeeIn) return (txout.nValue < GetDustThreshold(txout, dustRelayFeeIn)); } - /** - * Check transaction inputs to mitigate two - * potential denial-of-service attacks: - * - * 1. scriptSigs with extra data stuffed into them, - * not consumed by scriptPubKey (or P2SH script) - * 2. P2SH scripts with a crazy number of expensive - * CHECKSIG/CHECKMULTISIG operations - * - * Why bother? To avoid denial-of-service attacks; an attacker - * can submit a standard HASH... OP_EQUAL transaction, - * which will get accepted into blocks. The redemption - * script can be anything; an attacker could use a very - * expensive-to-check-upon-redemption script like: - * DUP CHECKSIG DROP ... repeated 100 times... OP_1 - */ - bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType, const bool witnessEnabled) { std::vector<std::vector<unsigned char> > vSolutions; @@ -158,6 +141,22 @@ bool IsStandardTx(const CTransaction& tx, std::string& reason, const bool witnes return true; } +/** + * Check transaction inputs to mitigate two + * potential denial-of-service attacks: + * + * 1. scriptSigs with extra data stuffed into them, + * not consumed by scriptPubKey (or P2SH script) + * 2. P2SH scripts with a crazy number of expensive + * CHECKSIG/CHECKMULTISIG operations + * + * Why bother? To avoid denial-of-service attacks; an attacker + * can submit a standard HASH... OP_EQUAL transaction, + * which will get accepted into blocks. The redemption + * script can be anything; an attacker could use a very + * expensive-to-check-upon-redemption script like: + * DUP CHECKSIG DROP ... repeated 100 times... OP_1 + */ bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs) { if (tx.IsCoinBase()) |