sui_aws_orchestrator::protocol

Trait ProtocolCommands

Source
pub trait ProtocolCommands<T: BenchmarkType> {
    // Required methods
    fn protocol_dependencies(&self) -> Vec<&'static str>;
    fn db_directories(&self) -> Vec<PathBuf>;
    fn genesis_command<'a, I>(&self, instances: I) -> String
       where I: Iterator<Item = &'a Instance>;
    fn node_command<I>(
        &self,
        instances: I,
        parameters: &BenchmarkParameters<T>,
    ) -> Vec<(Instance, String)>
       where I: IntoIterator<Item = Instance>;
    fn monitor_command<I>(&self, instances: I) -> Vec<(Instance, String)>
       where I: IntoIterator<Item = Instance>;
    fn client_command<I>(
        &self,
        instances: I,
        parameters: &BenchmarkParameters<T>,
    ) -> Vec<(Instance, String)>
       where I: IntoIterator<Item = Instance>;
}
Expand description

The minimum interface that the protocol should implement to allow benchmarks from the orchestrator.

Required Methods§

Source

fn protocol_dependencies(&self) -> Vec<&'static str>

The list of dependencies to install (e.g., through apt-get).

Source

fn db_directories(&self) -> Vec<PathBuf>

The directories of all databases (that should be erased before each run).

Source

fn genesis_command<'a, I>(&self, instances: I) -> String
where I: Iterator<Item = &'a Instance>,

The command to generate the genesis and all configuration files. This command is run on each remote machine.

Source

fn node_command<I>( &self, instances: I, parameters: &BenchmarkParameters<T>, ) -> Vec<(Instance, String)>
where I: IntoIterator<Item = Instance>,

The command to run a node. The function returns a vector of commands along with the associated instance on which to run the command.

Source

fn monitor_command<I>(&self, instances: I) -> Vec<(Instance, String)>
where I: IntoIterator<Item = Instance>,

Source

fn client_command<I>( &self, instances: I, parameters: &BenchmarkParameters<T>, ) -> Vec<(Instance, String)>
where I: IntoIterator<Item = Instance>,

The command to run a client. The function returns a vector of commands along with the associated instance on which to run the command.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§