Documentation ¶
Index ¶
- Constants
- func ActorStore(ctx context.Context, bs blockstore.Blockstore) adt.Store
- func DrawRandomness(rbase []byte, pers crypto.DomainSeparationTag, round abi.ChainEpoch, ...) ([]byte, error)
- func NewChainRand(cs *ChainStore, blks []cid.Cid, bheight abi.ChainEpoch) vm.Rand
- func PutMessage(bs bstore.Blockstore, m storable) (cid.Cid, error)
- type ChainIndex
- type ChainStore
- func (cs *ChainStore) AddBlock(ctx context.Context, b *types.BlockHeader) error
- func (cs *ChainStore) AddToTipSetTracker(b *types.BlockHeader) error
- func (cs *ChainStore) Blockstore() bstore.Blockstore
- func (cs *ChainStore) Contains(ts *types.TipSet) (bool, error)
- func (cs *ChainStore) Export(ctx context.Context, ts *types.TipSet, w io.Writer) error
- func (cs *ChainStore) GetBlock(c cid.Cid) (*types.BlockHeader, error)
- func (cs *ChainStore) GetCMessage(c cid.Cid) (types.ChainMsg, error)
- func (cs *ChainStore) GetGenesis() (*types.BlockHeader, error)
- func (cs *ChainStore) GetHeaviestTipSet() *types.TipSet
- func (cs *ChainStore) GetLatestBeaconEntry(ts *types.TipSet) (*types.BeaconEntry, error)
- func (cs *ChainStore) GetMessage(c cid.Cid) (*types.Message, error)
- func (cs *ChainStore) GetParentReceipt(b *types.BlockHeader, i int) (*types.MessageReceipt, error)
- func (cs *ChainStore) GetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*api.HeadChange, error)
- func (cs *ChainStore) GetRandomness(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, ...) ([]byte, error)
- func (cs *ChainStore) GetSignedMessage(c cid.Cid) (*types.SignedMessage, error)
- func (cs *ChainStore) GetTipSetFromKey(tsk types.TipSetKey) (*types.TipSet, error)
- func (cs *ChainStore) GetTipsetByHeight(ctx context.Context, h abi.ChainEpoch, ts *types.TipSet, prev bool) (*types.TipSet, error)
- func (cs *ChainStore) Import(r io.Reader) (*types.TipSet, error)
- func (cs *ChainStore) IsAncestorOf(a, b *types.TipSet) (bool, error)
- func (cs *ChainStore) IsBlockValidated(ctx context.Context, blkid cid.Cid) (bool, error)
- func (cs *ChainStore) Load() error
- func (cs *ChainStore) LoadMessagesFromCids(cids []cid.Cid) ([]*types.Message, error)
- func (cs *ChainStore) LoadSignedMessagesFromCids(cids []cid.Cid) ([]*types.SignedMessage, error)
- func (cs *ChainStore) LoadTipSet(tsk types.TipSetKey) (*types.TipSet, error)
- func (cs *ChainStore) MarkBlockAsValidated(ctx context.Context, blkid cid.Cid) error
- func (cs *ChainStore) MaybeTakeHeavierTipSet(ctx context.Context, ts *types.TipSet) error
- func (cs *ChainStore) MessagesForBlock(b *types.BlockHeader) ([]*types.Message, []*types.SignedMessage, error)
- func (cs *ChainStore) MessagesForTipset(ts *types.TipSet) ([]types.ChainMsg, error)
- func (cs *ChainStore) NearestCommonAncestor(a, b *types.TipSet) (*types.TipSet, error)
- func (cs *ChainStore) PersistBlockHeaders(b ...*types.BlockHeader) error
- func (cs *ChainStore) PutMessage(m storable) (cid.Cid, error)
- func (cs *ChainStore) PutTipSet(ctx context.Context, ts *types.TipSet) error
- func (cs *ChainStore) ReorgOps(a, b *types.TipSet) ([]*types.TipSet, []*types.TipSet, error)
- func (cs *ChainStore) SetGenesis(b *types.BlockHeader) error
- func (cs *ChainStore) SetHead(ts *types.TipSet) error
- func (cs *ChainStore) Store(ctx context.Context) adt.Store
- func (cs *ChainStore) SubHeadChanges(ctx context.Context) chan []*api.HeadChange
- func (cs *ChainStore) SubscribeHeadChanges(f ReorgNotifee)
- func (cs *ChainStore) TryFillTipSet(ts *types.TipSet) (*FullTipSet, error)
- func (cs *ChainStore) VMSys() runtime.Syscalls
- func (cs *ChainStore) Weight(ctx context.Context, ts *types.TipSet) (types.BigInt, error)
- type FullTipSet
- type ReorgNotifee
Constants ¶
const ( HCRevert = "revert" HCApply = "apply" HCCurrent = "current" )
Variables ¶
This section is empty.
Functions ¶
func ActorStore ¶ added in v0.3.0
func ActorStore(ctx context.Context, bs blockstore.Blockstore) adt.Store
func DrawRandomness ¶ added in v0.3.0
func DrawRandomness(rbase []byte, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error)
func NewChainRand ¶
func NewChainRand(cs *ChainStore, blks []cid.Cid, bheight abi.ChainEpoch) vm.Rand
func PutMessage ¶
func PutMessage(bs bstore.Blockstore, m storable) (cid.Cid, error)
Types ¶
type ChainIndex ¶ added in v0.4.0
type ChainIndex struct {
// contains filtered or unexported fields
}
func NewChainIndex ¶ added in v0.4.0
func NewChainIndex(lts loadTipSetFunc) *ChainIndex
func (*ChainIndex) GetTipsetByHeight ¶ added in v0.4.0
func (ci *ChainIndex) GetTipsetByHeight(_ context.Context, from *types.TipSet, to abi.ChainEpoch) (*types.TipSet, error)
func (*ChainIndex) GetTipsetByHeightWithoutCache ¶ added in v0.4.0
func (ci *ChainIndex) GetTipsetByHeightWithoutCache(from *types.TipSet, to abi.ChainEpoch) (*types.TipSet, error)
type ChainStore ¶
type ChainStore struct {
// contains filtered or unexported fields
}
ChainStore is the main point of access to chain data.
Raw chain data is stored in the Blockstore, with relevant markers (genesis, latest head tipset references) being tracked in the Datastore (key-value store).
To alleviate disk access, the ChainStore has two ARC caches:
- a tipset cache
- a block => messages references cache.
func NewChainStore ¶
func NewChainStore(bs bstore.Blockstore, ds dstore.Batching, vmcalls runtime.Syscalls) *ChainStore
func (*ChainStore) AddBlock ¶
func (cs *ChainStore) AddBlock(ctx context.Context, b *types.BlockHeader) error
func (*ChainStore) AddToTipSetTracker ¶
func (cs *ChainStore) AddToTipSetTracker(b *types.BlockHeader) error
func (*ChainStore) Blockstore ¶
func (cs *ChainStore) Blockstore() bstore.Blockstore
func (*ChainStore) Contains ¶
func (cs *ChainStore) Contains(ts *types.TipSet) (bool, error)
Contains returns whether our BlockStore has all blocks in the supplied TipSet.
func (*ChainStore) GetBlock ¶
func (cs *ChainStore) GetBlock(c cid.Cid) (*types.BlockHeader, error)
GetBlock fetches a BlockHeader with the supplied CID. It returns blockstore.ErrNotFound if the block was not found in the BlockStore.
func (*ChainStore) GetCMessage ¶
func (cs *ChainStore) GetCMessage(c cid.Cid) (types.ChainMsg, error)
func (*ChainStore) GetGenesis ¶
func (cs *ChainStore) GetGenesis() (*types.BlockHeader, error)
func (*ChainStore) GetHeaviestTipSet ¶
func (cs *ChainStore) GetHeaviestTipSet() *types.TipSet
GetHeaviestTipSet returns the current heaviest tipset known (i.e. our head).
func (*ChainStore) GetLatestBeaconEntry ¶ added in v0.3.0
func (cs *ChainStore) GetLatestBeaconEntry(ts *types.TipSet) (*types.BeaconEntry, error)
func (*ChainStore) GetMessage ¶
func (cs *ChainStore) GetMessage(c cid.Cid) (*types.Message, error)
func (*ChainStore) GetParentReceipt ¶
func (cs *ChainStore) GetParentReceipt(b *types.BlockHeader, i int) (*types.MessageReceipt, error)
func (*ChainStore) GetPath ¶ added in v0.2.5
func (cs *ChainStore) GetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*api.HeadChange, error)
func (*ChainStore) GetRandomness ¶
func (cs *ChainStore) GetRandomness(ctx context.Context, blks []cid.Cid, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error)
func (*ChainStore) GetSignedMessage ¶
func (cs *ChainStore) GetSignedMessage(c cid.Cid) (*types.SignedMessage, error)
func (*ChainStore) GetTipSetFromKey ¶ added in v0.2.8
func (*ChainStore) GetTipsetByHeight ¶
func (cs *ChainStore) GetTipsetByHeight(ctx context.Context, h abi.ChainEpoch, ts *types.TipSet, prev bool) (*types.TipSet, error)
GetTipsetByHeight returns the tipset on the chain behind 'ts' at the given height. In the case that the given height is a null round, the 'prev' flag selects the tipset before the null round if true, and the tipset following the null round if false.
func (*ChainStore) IsAncestorOf ¶
func (cs *ChainStore) IsAncestorOf(a, b *types.TipSet) (bool, error)
IsAncestorOf returns true if 'a' is an ancestor of 'b'
func (*ChainStore) IsBlockValidated ¶ added in v0.4.0
func (cs *ChainStore) IsBlockValidated(ctx context.Context, blkid cid.Cid) (bool, error)
func (*ChainStore) Load ¶
func (cs *ChainStore) Load() error
func (*ChainStore) LoadMessagesFromCids ¶
func (cs *ChainStore) LoadMessagesFromCids(cids []cid.Cid) ([]*types.Message, error)
func (*ChainStore) LoadSignedMessagesFromCids ¶
func (cs *ChainStore) LoadSignedMessagesFromCids(cids []cid.Cid) ([]*types.SignedMessage, error)
func (*ChainStore) LoadTipSet ¶
func (*ChainStore) MarkBlockAsValidated ¶ added in v0.4.0
func (cs *ChainStore) MarkBlockAsValidated(ctx context.Context, blkid cid.Cid) error
func (*ChainStore) MaybeTakeHeavierTipSet ¶
MaybeTakeHeavierTipSet evaluates the incoming tipset and locks it in our internal state as our new head, if and only if it is heavier than the current head.
func (*ChainStore) MessagesForBlock ¶
func (cs *ChainStore) MessagesForBlock(b *types.BlockHeader) ([]*types.Message, []*types.SignedMessage, error)
func (*ChainStore) MessagesForTipset ¶
func (*ChainStore) NearestCommonAncestor ¶
func (*ChainStore) PersistBlockHeaders ¶
func (cs *ChainStore) PersistBlockHeaders(b ...*types.BlockHeader) error
func (*ChainStore) PutMessage ¶
func (cs *ChainStore) PutMessage(m storable) (cid.Cid, error)
func (*ChainStore) SetGenesis ¶
func (cs *ChainStore) SetGenesis(b *types.BlockHeader) error
func (*ChainStore) SetHead ¶
func (cs *ChainStore) SetHead(ts *types.TipSet) error
SetHead sets the chainstores current 'best' head node. This should only be called if something is broken and needs fixing
func (*ChainStore) Store ¶ added in v0.3.0
func (cs *ChainStore) Store(ctx context.Context) adt.Store
func (*ChainStore) SubHeadChanges ¶
func (cs *ChainStore) SubHeadChanges(ctx context.Context) chan []*api.HeadChange
func (*ChainStore) SubscribeHeadChanges ¶
func (cs *ChainStore) SubscribeHeadChanges(f ReorgNotifee)
func (*ChainStore) TryFillTipSet ¶
func (cs *ChainStore) TryFillTipSet(ts *types.TipSet) (*FullTipSet, error)
func (*ChainStore) VMSys ¶ added in v0.2.1
func (cs *ChainStore) VMSys() runtime.Syscalls
type FullTipSet ¶
FullTipSet is an expanded version of the TipSet that contains all the blocks and messages
func NewFullTipSet ¶
func NewFullTipSet(blks []*types.FullBlock) *FullTipSet
func (*FullTipSet) Cids ¶
func (fts *FullTipSet) Cids() []cid.Cid
func (*FullTipSet) TipSet ¶
func (fts *FullTipSet) TipSet() *types.TipSet
TipSet returns a narrower view of this FullTipSet elliding the block messages.
type ReorgNotifee ¶ added in v0.4.0
ReorgNotifee represents a callback that gets called upon reorgs.