Documentation ¶
Index ¶
Constants ¶
const ( DefaultLogTimeThreshold = 1 * time.Second DefaultExecutionTimeLimit = 10 * time.Second DefaultMaxErrorMessageSize = 1000 // 1000 chars )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EntropyProviderPerBlock ¶ added in v0.32.0
type EntropyProviderPerBlock interface { // AtBlockID returns an entropy provider at the given block ID. AtBlockID(blockID flow.Identifier) environment.EntropyProvider }
EntropyProviderPerBlock is an abstraction for entropy providers that can be used in `QueryExecutor`.
`EntropyProvider` is defined in `fvm/environment` and abstracts the distributed random source used by the protocol.
For a full-protocol node implementation , `EntropyProvider` is implemented by the protocol `Snapshot`, while `EntropyProviderPerBlock` is implemented by the protocol `State`. For nodes answering script queries that do not participate in the protocol, `EntropyProvider` and `EntropyProviderPerBlock` can be implemented by other components that provide the source of randomness for each block.
func NewProtocolStateWrapper ¶ added in v0.32.0
func NewProtocolStateWrapper(s protocol.State) EntropyProviderPerBlock
NewProtocolStateWrapper wraps a protocol.State input as an `EntropyProviderPerBlock`
type Executor ¶
type Executor interface { ExecuteScript( ctx context.Context, script []byte, arguments [][]byte, blockHeader *flow.Header, snapshot snapshot.StorageSnapshot, ) ( []byte, error, ) GetAccount( ctx context.Context, addr flow.Address, header *flow.Header, snapshot snapshot.StorageSnapshot, ) ( *flow.Account, error, ) }
type QueryConfig ¶
type QueryConfig struct { LogTimeThreshold time.Duration ExecutionTimeLimit time.Duration ComputationLimit uint64 MaxErrorMessageSize int }
func NewDefaultConfig ¶
func NewDefaultConfig() QueryConfig
type QueryExecutor ¶
type QueryExecutor struct {
// contains filtered or unexported fields
}
func NewQueryExecutor ¶
func NewQueryExecutor( config QueryConfig, logger zerolog.Logger, metrics module.ExecutionMetrics, vm fvm.VM, vmCtx fvm.Context, derivedChainData *derived.DerivedChainData, entropyPerBlock EntropyProviderPerBlock, ) *QueryExecutor