Back to

package blockindex

Latest Go to latest
Published: May 14, 2020 | License: Apache-2.0 | Module:



var (

	// ErrActionIndexNA indicates action index is not supported
	ErrActionIndexNA = errors.New("action index not supported")

type IndexBuilder

type IndexBuilder struct {
	// contains filtered or unexported fields

IndexBuilder defines the index builder

func NewIndexBuilder

func NewIndexBuilder(chainID uint32, dao blockdao.BlockDAO, indexer Indexer) (*IndexBuilder, error)

NewIndexBuilder instantiates an index builder

func (*IndexBuilder) Indexer

func (ib *IndexBuilder) Indexer() Indexer

Indexer returns the indexer

func (*IndexBuilder) ReceiveBlock

func (ib *IndexBuilder) ReceiveBlock(blk *block.Block) error

ReceiveBlock handles the block and create the indices for the actions and receipts in it

func (*IndexBuilder) Start

func (ib *IndexBuilder) Start(ctx context.Context) error

Start starts the index builder

func (*IndexBuilder) Stop

func (ib *IndexBuilder) Stop(ctx context.Context) error

Stop stops the index builder

type Indexer

type Indexer interface {
	Start(context.Context) error
	Stop(context.Context) error
	PutBlock(context.Context, *block.Block) error
	PutBlocks([]*block.Block) error
	DeleteTipBlock(*block.Block) error
	Height() (uint64, error)
	GetBlockHash(height uint64) (hash.Hash256, error)
	GetBlockHeight(hash hash.Hash256) (uint64, error)
	GetBlockIndex(uint64) (*blockIndex, error)
	GetActionIndex([]byte) (*actionIndex, error)
	GetTotalActions() (uint64, error)
	GetActionHashFromIndex(uint64, uint64) ([][]byte, error)
	GetActionCountByAddress(hash.Hash160) (uint64, error)
	GetActionsByAddress(hash.Hash160, uint64, uint64) ([][]byte, error)

Indexer is the interface for block indexer

func NewIndexer

func NewIndexer(kv db.KVStore, genesisHash hash.Hash256) (Indexer, error)

NewIndexer creates a new indexer

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
f or F : Jump to identifier