aboutsummaryrefslogtreecommitdiff
path: root/src/txmempool.cpp
diff options
context:
space:
mode:
authorPieter Wuille <[email protected]>2015-10-28 02:24:44 +0100
committerPieter Wuille <[email protected]>2015-10-28 02:25:06 +0100
commite06c14fb59ee493da5283819420d949a14304ca7 (patch)
tree2d1b41bd1895a3e59001f44b6eda249bdf5c2712 /src/txmempool.cpp
parentMerge pull request #6895 (diff)
parentSupport -checkmempool=N, which runs checks on average once every N transactions (diff)
downloaddiscoin-e06c14fb59ee493da5283819420d949a14304ca7.tar.xz
discoin-e06c14fb59ee493da5283819420d949a14304ca7.zip
Merge pull request #6776
ab1f560 Support -checkmempool=N, which runs checks on average once every N transactions (Pieter Wuille)
Diffstat (limited to 'src/txmempool.cpp')
-rw-r--r--src/txmempool.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/txmempool.cpp b/src/txmempool.cpp
index 47e8de536..a772e7ade 100644
--- a/src/txmempool.cpp
+++ b/src/txmempool.cpp
@@ -314,7 +314,7 @@ CTxMemPool::CTxMemPool(const CFeeRate& _minReasonableRelayFee) :
// Sanity checks off by default for performance, because otherwise
// accepting transactions becomes O(N^2) where N is the number
// of transactions in the pool
- fSanityCheck = false;
+ nCheckFrequency = 0;
minerPolicyEstimator = new CBlockPolicyEstimator(_minReasonableRelayFee);
minReasonableRelayFee = _minReasonableRelayFee;
@@ -487,7 +487,7 @@ void CTxMemPool::removeCoinbaseSpends(const CCoinsViewCache *pcoins, unsigned in
if (it2 != mapTx.end())
continue;
const CCoins *coins = pcoins->AccessCoins(txin.prevout.hash);
- if (fSanityCheck) assert(coins);
+ if (nCheckFrequency != 0) assert(coins);
if (!coins || (coins->IsCoinBase() && ((signed long)nMemPoolHeight) - coins->nHeight < COINBASE_MATURITY)) {
transactionsToRemove.push_back(tx);
break;
@@ -568,7 +568,10 @@ void CTxMemPool::clear()
void CTxMemPool::check(const CCoinsViewCache *pcoins) const
{
- if (!fSanityCheck)
+ if (nCheckFrequency == 0)
+ return;
+
+ if (insecure_rand() >= nCheckFrequency)
return;
LogPrint("mempool", "Checking mempool with %u transactions and %u inputs\n", (unsigned int)mapTx.size(), (unsigned int)mapNextTx.size());