mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 02:10:46 +00:00
move cache to insert func
This commit is contained in:
parent
f2e08263ce
commit
0cb5dbc04d
1 changed files with 9 additions and 17 deletions
|
|
@ -506,7 +506,11 @@ func (bc *BlockChain) insert(block *types.Block) {
|
||||||
}
|
}
|
||||||
bc.currentBlock.Store(block)
|
bc.currentBlock.Store(block)
|
||||||
|
|
||||||
// If the block is better than our head or is on a different chain, force update heads
|
// save cache BlockSigners
|
||||||
|
engine := bc.Engine().(*XDPoS.XDPoS)
|
||||||
|
engine.CacheData(block.Header(), block.Transactions(), bc.GetReceiptsByHash(block.Hash()))
|
||||||
|
|
||||||
|
// If the block is better than our head or is on a different chain, force update heads
|
||||||
if updateHeads {
|
if updateHeads {
|
||||||
bc.hc.SetCurrentHeader(block.Header())
|
bc.hc.SetCurrentHeader(block.Header())
|
||||||
|
|
||||||
|
|
@ -1069,11 +1073,7 @@ func (bc *BlockChain) insertChain(chain types.Blocks) (int, []interface{}, []*ty
|
||||||
seals[i] = true
|
seals[i] = true
|
||||||
bc.downloadingBlock.Add(block.Hash(), true)
|
bc.downloadingBlock.Add(block.Hash(), true)
|
||||||
}
|
}
|
||||||
st, err := bc.State()
|
abort, results := bc.engine.VerifyHeaders(bc, headers, seals)
|
||||||
if err != nil {
|
|
||||||
return 0, nil, nil, err
|
|
||||||
}
|
|
||||||
abort, results := bc.engine.VerifyHeaders(bc, st, headers, seals)
|
|
||||||
defer close(abort)
|
defer close(abort)
|
||||||
|
|
||||||
// Iterate over the blocks and insert when the verifier permits
|
// Iterate over the blocks and insert when the verifier permits
|
||||||
|
|
@ -1250,11 +1250,7 @@ func (bc *BlockChain) PrepareBlock(block *types.Block) (err error) {
|
||||||
log.Debug("Stop prepare a block because inserting", "number", block.NumberU64(), "hash", block.Hash(), "validator", block.Header().Validator)
|
log.Debug("Stop prepare a block because inserting", "number", block.NumberU64(), "hash", block.Hash(), "validator", block.Header().Validator)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
state, err := bc.State()
|
err = bc.engine.VerifyHeader(bc, block.Header(), false)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = bc.engine.VerifyHeader(bc, state, block.Header(), false)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -1684,11 +1680,7 @@ Error: %v
|
||||||
// because nonces can be verified sparsely, not needing to check each.
|
// because nonces can be verified sparsely, not needing to check each.
|
||||||
func (bc *BlockChain) InsertHeaderChain(chain []*types.Header, checkFreq int) (int, error) {
|
func (bc *BlockChain) InsertHeaderChain(chain []*types.Header, checkFreq int) (int, error) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
state, err := bc.State()
|
if i, err := bc.hc.ValidateHeaderChain(chain, checkFreq); err != nil {
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if i, err := bc.hc.ValidateHeaderChain(chain, state, checkFreq); err != nil {
|
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1836,7 +1828,7 @@ func (bc *BlockChain) UpdateM1() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
addr := common.HexToAddress(common.MasternodeVotingSMC)
|
addr := common.HexToAddress(common.MasternodeVotingSMC)
|
||||||
validator, err := contractValidator.NewXDCValidator(addr, client)
|
validator, err := contractValidator.NewTomoValidator(addr, client)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue