|
|
@ -491,7 +491,7 @@ bool IsStandardTx(const CTransaction& tx, string& reason)
|
|
|
|
// Treat non-final transactions as non-standard to prevent a specific type
|
|
|
|
// Treat non-final transactions as non-standard to prevent a specific type
|
|
|
|
// of double-spend attack, as well as DoS attacks. (if the transaction
|
|
|
|
// of double-spend attack, as well as DoS attacks. (if the transaction
|
|
|
|
// can't be mined, the attacker isn't expending resources broadcasting it)
|
|
|
|
// can't be mined, the attacker isn't expending resources broadcasting it)
|
|
|
|
// Basically we don't want to propagate transactions that can't included in
|
|
|
|
// Basically we don't want to propagate transactions that can't be included in
|
|
|
|
// the next block.
|
|
|
|
// the next block.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// However, IsFinalTx() is confusing... Without arguments, it uses
|
|
|
|
// However, IsFinalTx() is confusing... Without arguments, it uses
|
|
|
@ -524,7 +524,7 @@ bool IsStandardTx(const CTransaction& tx, string& reason)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Biggest 'standard' txin is a 15-of-15 P2SH multisig with compressed
|
|
|
|
// Biggest 'standard' txin is a 15-of-15 P2SH multisig with compressed
|
|
|
|
// keys. (remember the 520 byte limit on redeemScript size) That works
|
|
|
|
// keys. (remember the 520 byte limit on redeemScript size) That works
|
|
|
|
// out to a (15*(33+1))+3=513 byte redeemScript, 513+1+15*(73+1)=1624
|
|
|
|
// out to a (15*(33+1))+3=513 byte redeemScript, 513+1+15*(73+1)+3=1627
|
|
|
|
// bytes of scriptSig, which we round off to 1650 bytes for some minor
|
|
|
|
// bytes of scriptSig, which we round off to 1650 bytes for some minor
|
|
|
|
// future-proofing. That's also enough to spend a 20-of-20
|
|
|
|
// future-proofing. That's also enough to spend a 20-of-20
|
|
|
|
// CHECKMULTISIG scriptPubKey, though such a scriptPubKey is not
|
|
|
|
// CHECKMULTISIG scriptPubKey, though such a scriptPubKey is not
|
|
|
|