Documentation ¶
Index ¶
- type Engine
- func (e *Engine) Done() <-chan struct{}
- func (e *Engine) HandleReceipt(originID flow.Identifier, receipt flow.Entity)
- func (e *Engine) Process(originID flow.Identifier, event interface{}) error
- func (e *Engine) ProcessLocal(event interface{}) error
- func (e *Engine) Ready() <-chan struct{}
- func (e *Engine) Submit(originID flow.Identifier, event interface{})
- func (e *Engine) SubmitLocal(event interface{})
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine is the Matching engine, which builds seals by matching receipts (aka ExecutionReceipt, from execution nodes) and approvals (aka ResultApproval, from verification nodes), and saves the seals into seals mempool for adding into a new block.
func New ¶
func New( log zerolog.Logger, collector module.EngineMetrics, tracer module.Tracer, mempool module.MempoolMetrics, net module.Network, state protocol.State, me module.Local, requester module.Requester, resultsDB storage.ExecutionResults, headersDB storage.Headers, indexDB storage.Index, results mempool.Results, receipts mempool.Receipts, approvals mempool.Approvals, seals mempool.Seals, assigner module.ChunkAssigner, requireApprovals bool, ) (*Engine, error)
New creates a new collection propagation engine.
func (*Engine) Done ¶
func (e *Engine) Done() <-chan struct{}
Done returns a done channel that is closed once the engine has fully stopped. For the propagation engine, it closes the channel when all submit goroutines have ended.
func (*Engine) HandleReceipt ¶
func (e *Engine) HandleReceipt(originID flow.Identifier, receipt flow.Entity)
HandleReceipt pipes explicitely requested receipts to the process function. Receipts can come from this function or the receipt provider setup in the engine constructor.
func (*Engine) Process ¶
func (e *Engine) Process(originID flow.Identifier, event interface{}) error
Process processes the given event from the node with the given origin ID in a blocking manner. It returns the potential processing error when done.
func (*Engine) ProcessLocal ¶
ProcessLocal processes an event originating on the local node.
func (*Engine) Ready ¶
func (e *Engine) Ready() <-chan struct{}
Ready returns a ready channel that is closed once the engine has fully started. For the propagation engine, we consider the engine up and running upon initialization.
func (*Engine) Submit ¶
func (e *Engine) Submit(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.