From 3b72fdfb86b08d80f5f790220137083b56f624d6 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 12 Aug 2014 15:06:20 +0200 Subject: [PATCH] Revert "Reject transactions with excessive numbers of sigops" This reverts commit 4fad8e6d831729efa1965fa2034e7e51d3d0a1be. --- src/main.cpp | 15 +++------------ src/main.h | 2 -- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index e135e93adb..55206600e2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -956,18 +956,9 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa if (Params().RequireStandard() && !AreInputsStandard(tx, view)) return error("AcceptToMemoryPool: : nonstandard transaction input"); - // Check that the transaction doesn't have an excessive number of - // sigops, making it impossible to mine. Since the coinbase transaction - // itself can contain sigops MAX_TX_SIGOPS is less than - // MAX_BLOCK_SIGOPS; we still consider this an invalid rather than - // merely non-standard transaction. - unsigned int nSigOps = GetLegacySigOpCount(tx); - nSigOps += GetP2SHSigOpCount(tx, view); - if (nSigOps > MAX_TX_SIGOPS) - return state.DoS(0, - error("AcceptToMemoryPool : too many sigops %s, %d > %d", - hash.ToString(), nSigOps, MAX_TX_SIGOPS), - REJECT_NONSTANDARD, "bad-txns-too-many-sigops"); + // Note: if you modify this code to accept non-standard transactions, then + // you should add code here to check that the transaction does a + // reasonable number of ECDSA signature verifications. int64_t nValueOut = tx.GetValueOut(); int64_t nFees = nValueIn-nValueOut; diff --git a/src/main.h b/src/main.h index 01d3f119e1..a27020459a 100644 --- a/src/main.h +++ b/src/main.h @@ -45,8 +45,6 @@ static const unsigned int MAX_STANDARD_TX_SIZE = 100000; static const unsigned int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50; /** Maxiumum number of signature check operations in an IsStandard() P2SH script */ static const unsigned int MAX_P2SH_SIGOPS = 15; -/** The maximum number of sigops we're willing to relay/mine in a single tx */ -static const unsigned int MAX_TX_SIGOPS = MAX_BLOCK_SIGOPS/5; /** The maximum number of orphan transactions kept in memory */ static const unsigned int MAX_ORPHAN_TRANSACTIONS = MAX_BLOCK_SIZE/100; /** Default for -maxorphanblocks, maximum number of orphan blocks kept in memory */