merge bitcoin#24133: Improve robustness of coinstatsindex at restart

This commit is contained in:
Kittywhiskers Van Gogh 2022-01-23 01:55:14 +01:00 committed by PastaPastaPasta
parent 123cf8d2c7
commit 6f270bbf9b
2 changed files with 8 additions and 3 deletions

View File

@ -41,10 +41,10 @@ protected:
DB(const fs::path& path, size_t n_cache_size,
bool f_memory = false, bool f_wipe = false, bool f_obfuscate = false);
/// Read block locator of the chain that the txindex is in sync with.
/// Read block locator of the chain that the index is in sync with.
bool ReadBestBlock(CBlockLocator& locator) const;
/// Write block locator of the chain that the txindex is in sync with.
/// Write block locator of the chain that the index is in sync with.
void WriteBestBlock(CDBBatch& batch, const CBlockLocator& locator);
};

View File

@ -358,7 +358,12 @@ bool CoinStatsIndex::Init()
return error("%s: Cannot read current %s state; index may be corrupted",
__func__, GetName());
}
uint256 out;
m_muhash.Finalize(out);
if (entry.muhash != out) {
return error("%s: Cannot read current %s state; index may be corrupted",
__func__, GetName());
}
m_transaction_output_count = entry.transaction_output_count;
m_bogo_size = entry.bogo_size;
m_total_amount = entry.total_amount;