From ed12d5df1ba52b5ef3dd3799de26bb5e1d3fc654 Mon Sep 17 00:00:00 2001 From: Jim Posen Date: Mon, 27 Aug 2018 12:28:35 -0700 Subject: index: Fix for indexers skipping genesis block. --- src/index/base.cpp | 6 +++++- src/index/txindex.cpp | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/index') diff --git a/src/index/base.cpp b/src/index/base.cpp index 788f7adccd..3cf2a89a2d 100644 --- a/src/index/base.cpp +++ b/src/index/base.cpp @@ -60,7 +60,11 @@ bool BaseIndex::Init() } LOCK(cs_main); - m_best_block_index = FindForkInGlobalIndex(chainActive, locator); + if (locator.IsNull()) { + m_best_block_index = nullptr; + } else { + m_best_block_index = FindForkInGlobalIndex(chainActive, locator); + } m_synced = m_best_block_index.load() == chainActive.Tip(); return true; } diff --git a/src/index/txindex.cpp b/src/index/txindex.cpp index c85030e18e..224004ce1c 100644 --- a/src/index/txindex.cpp +++ b/src/index/txindex.cpp @@ -245,6 +245,9 @@ bool TxIndex::Init() bool TxIndex::WriteBlock(const CBlock& block, const CBlockIndex* pindex) { + // Exclude genesis block transaction because outputs are not spendable. + if (pindex->nHeight == 0) return true; + CDiskTxPos pos(pindex->GetBlockPos(), GetSizeOfCompactSize(block.vtx.size())); std::vector> vPos; vPos.reserve(block.vtx.size()); -- cgit v1.2.3