index: Fix for indexers skipping genesis block.

This commit is contained in:
Jim Posen
2018-08-27 12:28:35 -07:00
parent 0df9b0aed2
commit ed12d5df1b
3 changed files with 15 additions and 1 deletions

View File

@@ -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;
}

View File

@@ -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<std::pair<uint256, CDiskTxPos>> vPos;
vPos.reserve(block.vtx.size());