|
|
@ -691,6 +691,16 @@ CBlockIndex* FindForkInGlobalIndex(const CChain& chain, const CBlockLocator& loc |
|
|
|
CCoinsViewCache *pcoinsTip = NULL; |
|
|
|
CCoinsViewCache *pcoinsTip = NULL; |
|
|
|
CBlockTreeDB *pblocktree = NULL; |
|
|
|
CBlockTreeDB *pblocktree = NULL; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum FlushStateMode { |
|
|
|
|
|
|
|
FLUSH_STATE_NONE, |
|
|
|
|
|
|
|
FLUSH_STATE_IF_NEEDED, |
|
|
|
|
|
|
|
FLUSH_STATE_PERIODIC, |
|
|
|
|
|
|
|
FLUSH_STATE_ALWAYS |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// See definition for documentation
|
|
|
|
|
|
|
|
bool static FlushStateToDisk(CValidationState &state, FlushStateMode mode); |
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// mapOrphanTransactions
|
|
|
|
// mapOrphanTransactions
|
|
|
@ -1581,6 +1591,9 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa |
|
|
|
BOOST_FOREACH(const uint256& hashTx, vHashTxToUncache) |
|
|
|
BOOST_FOREACH(const uint256& hashTx, vHashTxToUncache) |
|
|
|
pcoinsTip->Uncache(hashTx); |
|
|
|
pcoinsTip->Uncache(hashTx); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// After we've (potentially) uncached entries, ensure our coins cache is still within its size limits
|
|
|
|
|
|
|
|
CValidationState stateDummy; |
|
|
|
|
|
|
|
FlushStateToDisk(stateDummy, FLUSH_STATE_PERIODIC); |
|
|
|
return res; |
|
|
|
return res; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -2558,13 +2571,6 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
enum FlushStateMode { |
|
|
|
|
|
|
|
FLUSH_STATE_NONE, |
|
|
|
|
|
|
|
FLUSH_STATE_IF_NEEDED, |
|
|
|
|
|
|
|
FLUSH_STATE_PERIODIC, |
|
|
|
|
|
|
|
FLUSH_STATE_ALWAYS |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Update the on-disk chain state. |
|
|
|
* Update the on-disk chain state. |
|
|
|
* The caches and indexes are flushed depending on the mode we're called with |
|
|
|
* The caches and indexes are flushed depending on the mode we're called with |
|
|
@ -5684,7 +5690,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, |
|
|
|
Misbehaving(pfrom->GetId(), nDoS); |
|
|
|
Misbehaving(pfrom->GetId(), nDoS); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
FlushStateToDisk(state, FLUSH_STATE_PERIODIC); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|