add initial function during load latest block from db (#96)

This commit is contained in:
Liam 2022-05-29 11:28:08 +02:00 committed by GitHub
parent 7effc71547
commit 0317e871d4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 0 deletions

View file

@ -130,6 +130,15 @@ func NewFaker(db ethdb.Database, chainConfig *params.ChainConfig) *XDPoS {
return fakeEngine
}
func (x *XDPoS) Initial(chain consensus.ChainReader, header *types.Header) error {
switch x.config.BlockConsensusVersion(header.Number) {
case params.ConsensusEngineVersion2:
return x.EngineV2.Initial(chain, header)
default: // Default "v1"
return nil
}
}
/*
Eth Consensus engine interface implementation
*/

View file

@ -352,6 +352,13 @@ func (bc *BlockChain) loadLastState() error {
}
bc.hc.SetCurrentHeader(currentHeader)
if engine, ok := bc.Engine().(*XDPoS.XDPoS); ok {
err := engine.Initial(bc, currentHeader)
if err != nil {
return err
}
}
// Restore the last known head fast block
bc.currentFastBlock.Store(currentBlock)
if head := GetHeadFastBlockHash(bc.db); head != (common.Hash{}) {