mainnet: cache blocks

This commit is contained in:
Roy Crihfield 2023-09-07 01:04:23 +08:00
parent cd5ea103dc
commit f3ad5e6978

View File

@ -17,10 +17,12 @@ import (
const LatestBlock uint = 3 const LatestBlock uint = 3
var blocks []*types.Block
// LoadBlocks loads fixture blocks up to and including the passed height or the highest available block // LoadBlocks loads fixture blocks up to and including the passed height or the highest available block
func LoadBlocks(upto uint) []*types.Block { func GetBlocks() []*types.Block {
if upto > LatestBlock { if blocks != nil {
upto = LatestBlock return blocks
} }
db := rawdb.NewMemoryDatabase() db := rawdb.NewMemoryDatabase()
genesisBlock := core.DefaultGenesisBlock().MustCommit(db) genesisBlock := core.DefaultGenesisBlock().MustCommit(db)
@ -36,11 +38,11 @@ func LoadBlocks(upto uint) []*types.Block {
panic("mainnet genesis blocks do not match") panic("mainnet genesis blocks do not match")
} }
blocks := make([]*types.Block, upto+1) blocks := make([]*types.Block, LatestBlock+1)
blocks[0] = new(types.Block) blocks[0] = new(types.Block)
rlp.DecodeBytes(block0RLP, blocks[0]) rlp.DecodeBytes(block0RLP, blocks[0])
for i := uint(1); i <= upto; i++ { for i := uint(1); i <= LatestBlock; i++ {
blockRLP, err := loadBlockRLP(fmt.Sprintf("./block%d_rlp", i)) blockRLP, err := loadBlockRLP(fmt.Sprintf("./block%d_rlp", i))
if err != nil { if err != nil {
panic(err) panic(err)