|
|
|
@ -28,6 +28,25 @@ bool fHavePruned = false;
|
|
|
|
|
bool fPruneMode = false;
|
|
|
|
|
uint64_t nPruneTarget = 0;
|
|
|
|
|
|
|
|
|
|
bool CBlockIndexWorkComparator::operator()(const CBlockIndex* pa, const CBlockIndex* pb) const
|
|
|
|
|
{
|
|
|
|
|
// First sort by most total work, ...
|
|
|
|
|
if (pa->nChainWork > pb->nChainWork) return false;
|
|
|
|
|
if (pa->nChainWork < pb->nChainWork) return true;
|
|
|
|
|
|
|
|
|
|
// ... then by earliest time received, ...
|
|
|
|
|
if (pa->nSequenceId < pb->nSequenceId) return false;
|
|
|
|
|
if (pa->nSequenceId > pb->nSequenceId) return true;
|
|
|
|
|
|
|
|
|
|
// Use pointer address as tie breaker (should only happen with blocks
|
|
|
|
|
// loaded from disk, as those all have id 0).
|
|
|
|
|
if (pa < pb) return false;
|
|
|
|
|
if (pa > pb) return true;
|
|
|
|
|
|
|
|
|
|
// Identical blocks.
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static FILE* OpenUndoFile(const FlatFilePos& pos, bool fReadOnly = false);
|
|
|
|
|
static FlatFileSeq BlockFileSeq();
|
|
|
|
|
static FlatFileSeq UndoFileSeq();
|
|
|
|
|