Module deterministic

Module deterministic 

Source
Expand description

A deterministic runtime that randomly selects tasks to run based on a seed

§Panics

If any task panics, the runtime will panic (and shutdown).

§Example

use commonware_runtime::{Spawner, Runner, deterministic, Metrics};

let executor =  deterministic::Runner::default();
executor.start(|context| async move {
    println!("Parent started");
    let result = context.with_label("child").spawn(|_| async move {
        println!("Child started");
        "hello"
    });
    println!("Child result: {:?}", result.await);
    println!("Parent exited");
    println!("Auditor state: {}", context.auditor().state());
});

Structs§

Auditor
Track the state of the runtime for determinism auditing.
Config
Configuration for the deterministic runtime.
Context
Implementation of crate::Spawner, crate::Clock, crate::Network, and crate::Storage for the deterministic runtime.
Executor
Deterministic runtime that randomly selects tasks to run based on a seed.
Runner
Implementation of crate::Runner for the deterministic runtime.

Type Aliases§

Partition
Map of names to blob contents.