|
|
@ -57,7 +57,7 @@ bool fPruneMode = false; |
|
|
|
bool fIsBareMultisigStd = true; |
|
|
|
bool fIsBareMultisigStd = true; |
|
|
|
bool fCheckBlockIndex = false; |
|
|
|
bool fCheckBlockIndex = false; |
|
|
|
bool fCheckpointsEnabled = true; |
|
|
|
bool fCheckpointsEnabled = true; |
|
|
|
unsigned int nCoinCacheSize = 5000; |
|
|
|
size_t nCoinCacheUsage = 5000 * 300; |
|
|
|
uint64_t nPruneTarget = 0; |
|
|
|
uint64_t nPruneTarget = 0; |
|
|
|
|
|
|
|
|
|
|
|
/** Fees smaller than this (in satoshi) are considered zero fee (for relaying and mining) */ |
|
|
|
/** Fees smaller than this (in satoshi) are considered zero fee (for relaying and mining) */ |
|
|
@ -1894,7 +1894,7 @@ bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if ((mode == FLUSH_STATE_ALWAYS) || |
|
|
|
if ((mode == FLUSH_STATE_ALWAYS) || |
|
|
|
((mode == FLUSH_STATE_PERIODIC || mode == FLUSH_STATE_IF_NEEDED) && pcoinsTip->GetCacheSize() > nCoinCacheSize) || |
|
|
|
((mode == FLUSH_STATE_PERIODIC || mode == FLUSH_STATE_IF_NEEDED) && pcoinsTip->DynamicMemoryUsage() > nCoinCacheUsage) || |
|
|
|
(mode == FLUSH_STATE_PERIODIC && GetTimeMicros() > nLastWrite + DATABASE_WRITE_INTERVAL * 1000000) || |
|
|
|
(mode == FLUSH_STATE_PERIODIC && GetTimeMicros() > nLastWrite + DATABASE_WRITE_INTERVAL * 1000000) || |
|
|
|
fFlushForPrune) { |
|
|
|
fFlushForPrune) { |
|
|
|
// Typical CCoins structures on disk are around 100 bytes in size.
|
|
|
|
// Typical CCoins structures on disk are around 100 bytes in size.
|
|
|
@ -3197,7 +3197,7 @@ bool CVerifyDB::VerifyDB(CCoinsView *coinsview, int nCheckLevel, int nCheckDepth |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// check level 3: check for inconsistencies during memory-only disconnect of tip blocks
|
|
|
|
// check level 3: check for inconsistencies during memory-only disconnect of tip blocks
|
|
|
|
if (nCheckLevel >= 3 && pindex == pindexState && (coins.GetCacheSize() + pcoinsTip->GetCacheSize()) <= nCoinCacheSize) { |
|
|
|
if (nCheckLevel >= 3 && pindex == pindexState && (coins.DynamicMemoryUsage() + pcoinsTip->DynamicMemoryUsage()) <= nCoinCacheUsage) { |
|
|
|
bool fClean = true; |
|
|
|
bool fClean = true; |
|
|
|
if (!DisconnectBlock(block, state, pindex, coins, &fClean)) |
|
|
|
if (!DisconnectBlock(block, state, pindex, coins, &fClean)) |
|
|
|
return error("VerifyDB(): *** irrecoverable inconsistency in block data at %d, hash=%s", pindex->nHeight, pindex->GetBlockHash().ToString()); |
|
|
|
return error("VerifyDB(): *** irrecoverable inconsistency in block data at %d, hash=%s", pindex->nHeight, pindex->GetBlockHash().ToString()); |
|
|
|