import (
"sync"
- "github.com/golang/groupcache/lru"
log "github.com/sirupsen/logrus"
+ "github.com/vapor/common"
"github.com/vapor/config"
"github.com/vapor/event"
"github.com/vapor/protocol/bc"
processBlockCh chan *processBlockMsg
consensusNodeManager *consensusNodeManager
- signatureCache *lru.Cache
+ signatureCache *common.Cache
eventDispatcher *event.Dispatcher
cond sync.Cond
orphanManage: NewOrphanManage(),
txPool: txPool,
store: store,
- signatureCache: lru.New(maxSignatureCacheSize),
+ signatureCache: common.NewCache(maxSignatureCacheSize),
eventDispatcher: eventDispatcher,
processBlockCh: make(chan *processBlockMsg, maxProcessBlockChSize),
}
return &c.bestNode.Hash
}
-// BestBlockHeader returns the chain tail block
+// BestIrreversibleHeader returns the chain best irreversible block
+func (c *Chain) BestIrreversibleHeader() *types.BlockHeader {
+ return c.bestIrreversibleNode.BlockHeader()
+}
+
func (c *Chain) BestBlockHeader() *types.BlockHeader {
node := c.index.BestNode()
return node.BlockHeader()