diff --git a/consensus/bor/api.go b/consensus/bor/api.go index d5de0a61cbb537d1998c535ff500bf0d1357e2f7..672d378215aea51b5d6a3d9f0b2b7bbdb55cadec 100644 --- a/consensus/bor/api.go +++ b/consensus/bor/api.go @@ -35,7 +35,6 @@ import ( var ( // MaxCheckpointLength is the maximum number of blocks that can be requested for constructing a checkpoint root hash MaxCheckpointLength = uint64(math.Pow(2, 15)) - once sync.Once ) // API is a user facing RPC API to allow controlling the signer and voting @@ -124,13 +123,7 @@ func (api *API) GetCurrentValidators() ([]*Validator, error) { // GetRootHash returns the merkle root of the start to end block headers func (api *API) GetRootHash(start int64, end int64) ([]byte, error) { - var err error - once.Do(func() { - if api.rootHashCache == nil { - api.rootHashCache, err = lru.NewARC(10) - } - }) - if err != nil { + if err := api.initializeRootHashCache(); err != nil { return nil, err } key := getRootHashKey(start, end) @@ -184,6 +177,14 @@ func (api *API) GetRootHash(start int64, end int64) ([]byte, error) { return root, nil } +func (api *API) initializeRootHashCache() error { + var err error + if api.rootHashCache == nil { + api.rootHashCache, err = lru.NewARC(10) + } + return err +} + func getRootHashKey(start int64, end int64) string { return strconv.FormatInt(start, 10) + "-" + strconv.FormatInt(end, 10) }