github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/engine/consensus/matching.go (about)

     1  package consensus
     2  
     3  import "github.com/onflow/flow-go/model/flow"
     4  
     5  // MatchingCore collects inbound receipts from Execution Node
     6  // for potential inclusion in future blocks.
     7  // Implementations of MatchingCore are generally NOT concurrency safe.
     8  type MatchingCore interface {
     9  	// ProcessReceipt processes a new execution receipt in blocking way.
    10  	// Returns:
    11  	// * exception in case of unexpected error
    12  	// * nil - successfully processed receipt
    13  	ProcessReceipt(receipt *flow.ExecutionReceipt) error
    14  	// OnBlockFinalization notifies the engine that a (potentially new) block was finalized.
    15  	// Implementations are non-blocking.
    16  	// Returns:
    17  	// * exception in case of unexpected error
    18  	// * nil - successfully processed finalized block
    19  	OnBlockFinalization() error
    20  }