Documentation
¶
Overview ¶
Package block implements the generic block based analyzer.
Block based analyzer uses a BlockProcessor to process blocks and handles the common logic for queueing blocks and support for parallel processing.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewAnalyzer ¶
func NewAnalyzer( config *config.BlockBasedAnalyzerConfig, name string, processor BlockProcessor, target storage.TargetStorage, logger *log.Logger, slowSync bool, ) (analyzer.Analyzer, error)
NewAnalyzer returns a new block based analyzer for the provided block processor.
slowSync is a flag that indicates that the analyzer is running in slow-sync mode and it should process blocks in order, ignoring locks as it is assumed it is the only analyzer running.
Types ¶
type BlockProcessor ¶
type BlockProcessor interface {
// PreWork performs tasks that need to be done before the main processing loop starts.
PreWork(ctx context.Context) error
// ProcessBlock processes the provided block, retrieving all required information
// from source storage and committing an atomically-executed batch of queries
// to target storage.
//
// The implementation must commit processed blocks (update the analysis.processed_blocks record with processed_time timestamp).
ProcessBlock(ctx context.Context, height uint64) error
}
BlockProcessor is the interface that block-based processors should implement to use them with the block based analyzer.
Click to show internal directories.
Click to hide internal directories.