migrate direct usages blockstore.{Get=>View}.
This commit is contained in:
parent
6d78de95a1
commit
af7236f7e7
@ -108,6 +108,8 @@ type ChainStore struct {
|
|||||||
localbs bstore.Blockstore
|
localbs bstore.Blockstore
|
||||||
ds dstore.Batching
|
ds dstore.Batching
|
||||||
|
|
||||||
|
localviewer bstore.Viewer
|
||||||
|
|
||||||
heaviestLk sync.Mutex
|
heaviestLk sync.Mutex
|
||||||
heaviest *types.TipSet
|
heaviest *types.TipSet
|
||||||
|
|
||||||
@ -150,6 +152,10 @@ func NewChainStore(bs bstore.Blockstore, localbs bstore.Blockstore, ds dstore.Ba
|
|||||||
journal: j,
|
journal: j,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := localbs.(bstore.Viewer); ok {
|
||||||
|
cs.localviewer = v
|
||||||
|
}
|
||||||
|
|
||||||
cs.evtTypes = [1]journal.EventType{
|
cs.evtTypes = [1]journal.EventType{
|
||||||
evtTypeHeadChange: j.RegisterEventType("sync", "head_change"),
|
evtTypeHeadChange: j.RegisterEventType("sync", "head_change"),
|
||||||
}
|
}
|
||||||
@ -545,14 +551,22 @@ func (cs *ChainStore) Contains(ts *types.TipSet) (bool, error) {
|
|||||||
// GetBlock fetches a BlockHeader with the supplied CID. It returns
|
// GetBlock fetches a BlockHeader with the supplied CID. It returns
|
||||||
// blockstore.ErrNotFound if the block was not found in the BlockStore.
|
// blockstore.ErrNotFound if the block was not found in the BlockStore.
|
||||||
func (cs *ChainStore) GetBlock(c cid.Cid) (*types.BlockHeader, error) {
|
func (cs *ChainStore) GetBlock(c cid.Cid) (*types.BlockHeader, error) {
|
||||||
|
if cs.localviewer == nil {
|
||||||
sb, err := cs.localbs.Get(c)
|
sb, err := cs.localbs.Get(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return types.DecodeBlock(sb.RawData())
|
return types.DecodeBlock(sb.RawData())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var blk *types.BlockHeader
|
||||||
|
err := cs.localviewer.View(c, func(b []byte) (err error) {
|
||||||
|
blk, err = types.DecodeBlock(b)
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
return blk, err
|
||||||
|
}
|
||||||
|
|
||||||
func (cs *ChainStore) LoadTipSet(tsk types.TipSetKey) (*types.TipSet, error) {
|
func (cs *ChainStore) LoadTipSet(tsk types.TipSetKey) (*types.TipSet, error) {
|
||||||
v, ok := cs.tsCache.Get(tsk)
|
v, ok := cs.tsCache.Get(tsk)
|
||||||
if ok {
|
if ok {
|
||||||
@ -816,25 +830,41 @@ func (cs *ChainStore) GetCMessage(c cid.Cid) (types.ChainMsg, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cs *ChainStore) GetMessage(c cid.Cid) (*types.Message, error) {
|
func (cs *ChainStore) GetMessage(c cid.Cid) (*types.Message, error) {
|
||||||
|
if cs.localviewer == nil {
|
||||||
sb, err := cs.localbs.Get(c)
|
sb, err := cs.localbs.Get(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("get message get failed: %s: %s", c, err)
|
log.Errorf("get message get failed: %s: %s", c, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return types.DecodeMessage(sb.RawData())
|
return types.DecodeMessage(sb.RawData())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var msg *types.Message
|
||||||
|
err := cs.localviewer.View(c, func(b []byte) (err error) {
|
||||||
|
msg, err = types.DecodeMessage(b)
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
return msg, err
|
||||||
|
}
|
||||||
|
|
||||||
func (cs *ChainStore) GetSignedMessage(c cid.Cid) (*types.SignedMessage, error) {
|
func (cs *ChainStore) GetSignedMessage(c cid.Cid) (*types.SignedMessage, error) {
|
||||||
|
if cs.localviewer == nil {
|
||||||
sb, err := cs.localbs.Get(c)
|
sb, err := cs.localbs.Get(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("get message get failed: %s: %s", c, err)
|
log.Errorf("get message get failed: %s: %s", c, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return types.DecodeSignedMessage(sb.RawData())
|
return types.DecodeSignedMessage(sb.RawData())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var msg *types.SignedMessage
|
||||||
|
err := cs.localviewer.View(c, func(b []byte) (err error) {
|
||||||
|
msg, err = types.DecodeSignedMessage(b)
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
return msg, err
|
||||||
|
}
|
||||||
|
|
||||||
func (cs *ChainStore) readAMTCids(root cid.Cid) ([]cid.Cid, error) {
|
func (cs *ChainStore) readAMTCids(root cid.Cid) ([]cid.Cid, error) {
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
// block headers use adt0, for now.
|
// block headers use adt0, for now.
|
||||||
|
Loading…
Reference in New Issue
Block a user