github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/engine/verification/assigner/processor.go (about) 1 package assigner 2 3 import ( 4 "github.com/onflow/flow-go/model/flow" 5 "github.com/onflow/flow-go/module" 6 ) 7 8 // FinalizedBlockProcessor should be implemented by the verification node engine responsible 9 // for processing execution receipts included in a finalized block. 10 // 11 // In the current version, the assigner engine is responsible of processing execution receipts 12 // included in a finalized block. 13 // From the architectural perspective, FinalizedBlockProcessor aligns as following on the verification pipeline: 14 // ----------------------------- ------------------ -------------------------- 15 // | Consensus Follower Engine | ---> finalized blocks --> | Block Consumer | ---> finalized block workers --> | FinalizedBlockProcessor| 16 // ----------------------------- ------------------ -------------------------- 17 type FinalizedBlockProcessor interface { 18 // ProcessFinalizedBlock receives a finalized block and processes all of its constituent execution receipts. 19 // Note: it should be implemented in a non-blocking way. 20 ProcessFinalizedBlock(*flow.Block) 21 22 // WithBlockConsumerNotifier sets the notifier of this finalized block processor. 23 // The notifier is called by the internal logic of the processor to let the consumer know that 24 // the processor is done by processing a block so that the next block may be passed to the processor 25 // by the consumer through invoking ProcessFinalizedBlock of this processor. 26 WithBlockConsumerNotifier(module.ProcessingNotifier) 27 }