Skip to content
Juvix imports

module arch.node.engines.executor_config;

import prelude open;
import arch.node.engines.executor_messages open;
import arch.node.types.engine open;
import arch.node.types.messages open;
import arch.node.types.identities open;

Executor Configuration

Overview

The executor configuration contains static information needed for execution: the transaction program, access rights, and notification targets.

The Executor Configuration

ExecutorCfg

type ExecutorCfg :=
mkExecutorCfg@{
timestamp : TxFingerprint;
executable : Executable;
lazy_read_keys : Set KVSKey;
eager_read_keys : Set KVSKey;
will_write_keys : Set KVSKey;
may_write_keys : Set KVSKey;
worker : EngineID;
issuer : EngineID;
};
Arguments
timestamp
The logical timestamp representing when this transaction executes in the ordering
executable
The transaction's executable code
lazy_read_keys
Keys that may be read during execution
eager_read_keys
Keys that will definitely be read
will_write_keys
Keys that will definitely be written
may_write_keys
Keys that might be written
worker
ID of the worker engine to notify on completion
issuer
ID of the transaction sender to notify on completion

Instantiation

executorCfg : EngineCfg ExecutorCfg :=
mkEngineCfg@{
node := Curve25519PubKey "0xabcd1234";
name := "executor";
cfg :=
mkExecutorCfg@{
timestamp := 0;
executable := "";
lazy_read_keys := Set.empty;
eager_read_keys := Set.empty;
will_write_keys := Set.empty;
may_write_keys := Set.empty;
worker := mkPair none "";
issuer := mkPair none "";
};
};