diff options
author | Fabian Jahr <fjahr@protonmail.com> | 2020-01-24 18:58:47 +0100 |
---|---|---|
committer | Fabian Jahr <fjahr@protonmail.com> | 2021-04-19 20:28:48 +0200 |
commit | 3c914d58ff323255b32e717d0ce28209ec0abdaa (patch) | |
tree | 34187e016ca1869013b06f76027cbdd624263e45 /src/node | |
parent | dd58a4de21469d6d848ae309edc47f558628221d (diff) |
index: Coinstats index can be activated with command line flag
Diffstat (limited to 'src/node')
-rw-r--r-- | src/node/coinstats.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/node/coinstats.cpp b/src/node/coinstats.cpp index a9af53ca80..dc9d32035d 100644 --- a/src/node/coinstats.cpp +++ b/src/node/coinstats.cpp @@ -8,6 +8,7 @@ #include <coins.h> #include <crypto/muhash.h> #include <hash.h> +#include <index/coinstatsindex.h> #include <serialize.h> #include <uint256.h> #include <util/system.h> @@ -92,13 +93,19 @@ static bool GetUTXOStats(CCoinsView* view, BlockManager& blockman, CCoinsStats& { std::unique_ptr<CCoinsViewCursor> pcursor(view->Cursor()); assert(pcursor); - stats.hashBlock = pcursor->GetBestBlock(); + + const CBlockIndex* pindex; { LOCK(cs_main); assert(std::addressof(g_chainman.m_blockman) == std::addressof(blockman)); - const CBlockIndex* block = blockman.LookupBlockIndex(stats.hashBlock); - stats.nHeight = Assert(block)->nHeight; + pindex = blockman.LookupBlockIndex(stats.hashBlock); + stats.nHeight = Assert(pindex)->nHeight; + } + + // Use CoinStatsIndex if it is available and a hash_type of Muhash or None was requested + if ((stats.m_hash_type == CoinStatsHashType::MUHASH || stats.m_hash_type == CoinStatsHashType::NONE) && g_coin_stats_index) { + return g_coin_stats_index->LookUpStats(pindex, stats); } PrepareHash(hash_obj, stats); |