Documentation
¶
Index ¶
Constants ¶
View Source
const ( // BlockBloomFilterNamespace indicated the kvstore namespace to store block BloomFilters BlockBloomFilterNamespace = "BlockBloomFilters" // RangeBloomFilterNamespace indicates the kvstore namespace to store range BloomFilters RangeBloomFilterNamespace = "RangeBloomFilters" // CurrentHeightKey indicates the key of current bf indexer height in underlying DB CurrentHeightKey = "CurrentHeight" )
Variables ¶
View Source
var ( // ErrActionIndexNA indicates action index is not supported ErrActionIndexNA = errors.New("action index not supported") )
View Source
var ( // TotalBloomFilterNamespace indicates the kvstore namespace to store total ranges TotalBloomFilterNamespace = []byte("TotalBloomFilters") )
Functions ¶
This section is empty.
Types ¶
type BloomFilterIndexer ¶ added in v1.1.3
type BloomFilterIndexer interface {
blockdao.BlockIndexer
// RangeBloomFilterNumElements returns the number of elements that each rangeBloomfilter indexes
RangeBloomFilterNumElements() uint64
// BlockFilterByHeight returns the block-level bloomfilter which includes not only topic but also address of logs info by given block height
BlockFilterByHeight(uint64) (bloom.BloomFilter, error)
// FilterBlocksInRange returns the block numbers by given logFilter in range from start to end
FilterBlocksInRange(*filter.LogFilter, uint64, uint64) ([]uint64, error)
}
BloomFilterIndexer is the interface for bloomfilter indexer
func NewBloomfilterIndexer ¶ added in v1.1.3
NewBloomfilterIndexer creates a new bloomfilterindexer struct by given kvstore and rangebloomfilter size
type IndexBuilder ¶
type IndexBuilder struct {
// contains filtered or unexported fields
}
IndexBuilder defines the index builder
func NewIndexBuilder ¶
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
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
Source Files
¶
Click to show internal directories.
Click to hide internal directories.