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