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 "";
};
};