mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-26 01:32:26 +01:00
validation: Don't loop over all chainstates in LoadExternalBlock
This simplifies the code. The only reason to call ActivateBestChain() here is to allow the main init thread to finish startup in a case of -reindex. In this situation no second chainstate can exist anyway because -reindex would have deleted any snapshot chainstate earlier. This could change behavior slightly if -loadblocks was used when there is a snapshot chainstate. In this case, there is no reason to call ActivateBestChain() for that chainstate here - it will be called in ImportBlocks() after all blocks have been indexed.
This commit is contained in:
parent
22723c809a
commit
a2675897e2
@ -5158,15 +5158,8 @@ void ChainstateManager::LoadExternalBlockFile(
|
||||
|
||||
// Activate the genesis block so normal node progress can continue
|
||||
if (hash == params.GetConsensus().hashGenesisBlock) {
|
||||
bool genesis_activation_failure = false;
|
||||
for (auto c : GetAll()) {
|
||||
BlockValidationState state;
|
||||
if (!c->ActivateBestChain(state, nullptr)) {
|
||||
genesis_activation_failure = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (genesis_activation_failure) {
|
||||
BlockValidationState state;
|
||||
if (!ActiveChainstate().ActivateBestChain(state, nullptr)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user