Documentation ¶
Index ¶
- func GenerateResultApproval(me module.Local, approvalHasher hash.Hasher, spockHasher hash.Hasher, ...) (*flow.ResultApproval, error)
- func VerifyLastKHeight(k uint64, chainID flow.ChainID, protocolDataDir string, ...) (err error)
- func VerifyRange(from, to uint64, chainID flow.ChainID, protocolDataDir string, ...) (err error)
- type Engine
- func (e *Engine) Done() <-chan struct{}
- 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{})
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateResultApproval ¶ added in v0.26.1
func GenerateResultApproval( me module.Local, approvalHasher hash.Hasher, spockHasher hash.Hasher, attestation *flow.Attestation, spockSecret []byte, ) (*flow.ResultApproval, error)
GenerateResultApproval generates result approval for specific chunk of an execution receipt.
func VerifyLastKHeight ¶ added in v0.37.23
func VerifyLastKHeight(k uint64, chainID flow.ChainID, protocolDataDir string, chunkDataPackDir string, nWorker uint) (err error)
VerifyLastKHeight verifies the last k sealed blocks by verifying all chunks in the results. It assumes the latest sealed block has been executed, and the chunk data packs have not been pruned. Note, it returns nil if certain block is not executed, in this case warning will be logged
func VerifyRange ¶ added in v0.37.23
func VerifyRange( from, to uint64, chainID flow.ChainID, protocolDataDir string, chunkDataPackDir string, nWorker uint, ) (err error)
VerifyRange verifies all chunks in the results of the blocks in the given range. Note, it returns nil if certain block is not executed, in this case warning will be logged
Types ¶
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine (verifier engine) verifies chunks, generates result approvals or raises challenges. as input it accepts verifiable chunks (chunk + all data needed) and perform verification by constructing a partial trie, executing transactions and check the final state commitment and other chunk meta data (e.g. tx count)
func New ¶
func New( log zerolog.Logger, metrics module.VerificationMetrics, tracer module.Tracer, net network.EngineRegistry, state protocol.State, me module.Local, chVerif module.ChunkVerifier, approvals storage.ResultApprovals, ) (*Engine, error)
New creates and returns a new instance of a verifier engine.
func (*Engine) Done ¶
func (e *Engine) Done() <-chan struct{}
Done returns a channel that is closed when the verifier engine is done.
func (*Engine) Process ¶
func (e *Engine) Process(channel channels.Channel, 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 channel that is closed when the verifier engine is ready.
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.