mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-17 13:07:54 +02:00
Dont create pcoinsTip until after ReplayBlocks.
This requires that we not access pcoinsTip in InitBlockIndex's FlushStateToDisk (so we just skip it until later in AppInitMain) and the LoadChainTip in LoadBlockIndex (which there is already one later in AppinitMain, after ReplayBlocks, so skipping it there is fine). Includes some simplifications by Suhas Daftuar and Pieter Wuille.
This commit is contained in:
parent
eaca1b7b08
commit
d6af06d68a
3 changed files with 2 additions and 12 deletions
|
|
@ -3420,7 +3420,6 @@ bool static LoadBlockIndexDB(const CChainParams& chainparams)
|
|||
pblocktree->ReadFlag("txindex", fTxIndex);
|
||||
LogPrintf("%s: transaction index %s\n", __func__, fTxIndex ? "enabled" : "disabled");
|
||||
|
||||
LoadChainTip(chainparams);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3783,8 +3782,6 @@ bool InitBlockIndex(const CChainParams& chainparams)
|
|||
CBlockIndex *pindex = AddToBlockIndex(block);
|
||||
if (!ReceivedBlockTransactions(block, state, pindex, blockPos, chainparams.GetConsensus()))
|
||||
return error("LoadBlockIndex(): genesis block not accepted");
|
||||
// Force a chainstate write so that when we VerifyDB in a moment, it doesn't check stale data
|
||||
return FlushStateToDisk(chainparams, state, FLUSH_STATE_ALWAYS);
|
||||
} catch (const std::runtime_error& e) {
|
||||
return error("LoadBlockIndex(): failed to initialize block database: %s", e.what());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue