Documentation ¶
Index ¶
- type BlockLoader
- type CollectionFetcher
- type Engine
- func (e *Engine) BlockProcessable(b *flow.Header, _ *flow.QuorumCertificate)
- func (e *Engine) Done() <-chan struct{}
- func (e *Engine) OnCollection(originID flow.Identifier, entity flow.Entity)
- func (e *Engine) Process(channel channels.Channel, originID flow.Identifier, event interface{}) error
- func (e *Engine) ProcessLocal(event interface{}) error
- func (e *Engine) Ready() <-chan struct{}
- func (e *Engine) Submit(channel channels.Channel, originID flow.Identifier, event interface{})
- func (e *Engine) SubmitLocal(event interface{})
- type Mempool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlockLoader ¶ added in v0.32.0
type BlockLoader interface {
LoadUnexecuted(ctx context.Context) ([]flow.Identifier, error)
}
type CollectionFetcher ¶ added in v0.32.0
type CollectionFetcher interface { // FetchCollection decides which collection nodes to fetch the collection from // No error is expected during normal operation FetchCollection(blockID flow.Identifier, height uint64, guarantee *flow.CollectionGuarantee) error // Force forces the requests to be sent immediately Force() }
CollectionFetcher abstracts the details of how to fetch collection
type Engine ¶
type Engine struct { psEvents.Noop // satisfy protocol events consumer interface // contains filtered or unexported fields }
An Engine receives and saves incoming blocks.
func New ¶
func New( unit *engine.Unit, logger zerolog.Logger, net network.EngineRegistry, me module.Local, collectionFetcher CollectionFetcher, headers storage.Headers, blocks storage.Blocks, collections storage.Collections, executionEngine computation.ComputationManager, providerEngine provider.ProviderEngine, execState state.ExecutionState, metrics module.ExecutionMetrics, tracer module.Tracer, extLog bool, pruner *pruner.Pruner, uploader *uploader.Manager, stopControl *stop.StopControl, loader BlockLoader, ) (*Engine, error)
func (*Engine) BlockProcessable ¶ added in v0.10.0
func (e *Engine) BlockProcessable(b *flow.Header, _ *flow.QuorumCertificate)
BlockProcessable handles the new verified blocks (blocks that have passed consensus validation) received from the consensus nodes NOTE: BlockProcessable might be called multiple times for the same block. NOTE: Ready calls reloadUnexecutedBlocks during initialization, which handles dropped protocol events.
func (*Engine) Done ¶
func (e *Engine) Done() <-chan struct{}
Done returns a channel that will close when the engine has successfully stopped.
func (*Engine) OnCollection ¶
func (e *Engine) OnCollection(originID flow.Identifier, entity flow.Entity)
OnCollection is a callback for handling the collections requested by the collection requester.
func (*Engine) ProcessLocal ¶
ProcessLocal processes an event originating on the local node.
func (*Engine) Ready ¶
func (e *Engine) Ready() <-chan struct{}
Ready returns a channel that will close when the engine has successfully started.
func (*Engine) Submit ¶
func (e *Engine) Submit( channel channels.Channel, originID flow.Identifier, event interface{}, )
Submit submits the given event from the node with the given origin ID for processing in a non-blocking manner. It returns instantly and logs a potential processing error internally when done.
func (*Engine) SubmitLocal ¶
func (e *Engine) SubmitLocal(event interface{})
SubmitLocal submits an event originating on the local node.
type Mempool ¶
type Mempool struct { ExecutionQueue *stdmap.Queues BlockByCollection *stdmap.BlockByCollections }
func (*Mempool) Run ¶
func (m *Mempool) Run(f func(blockByCollection *stdmap.BlockByCollectionBackdata, executionQueue *stdmap.QueuesBackdata) error) error