Crate zombienet_configuration

Source
Expand description

This crate is used to create type safe configuration for Zombienet SDK using nested builders.

The main entry point of this crate is the NetworkConfigBuilder which is used to build a full network configuration but all inner builders are also exposed to allow more granular control over the configuration.

Note: Not all options can be checked at compile time and some will be checked at runtime when spawning a network (e.g.: supported args for a specific node version).

§Example

use zombienet_configuration::NetworkConfigBuilder;

let simple_configuration = NetworkConfigBuilder::new()
    .with_relaychain(|relaychain| {
        relaychain
            .with_chain("polkadot")
            .with_random_nominators_count(10)
            .with_default_resources(|resources| {
                resources
                    .with_limit_cpu("1000m")
                    .with_request_memory("1Gi")
                    .with_request_cpu(100_000)
            })
            .with_node(|node| {
                node.with_name("node")
                    .with_command("command")
                    .validator(true)
            })
    })
    .with_parachain(|parachain| {
        parachain
            .with_id(1000)
            .with_chain("myparachain1")
            .with_initial_balance(100_000)
            .with_default_image("myimage:version")
            .with_collator(|collator| {
                collator
                    .with_name("collator1")
                    .with_command("command1")
                    .validator(true)
            })
    })
    .with_parachain(|parachain| {
        parachain
            .with_id(2000)
            .with_chain("myparachain2")
            .with_initial_balance(50_0000)
            .with_collator(|collator| {
                collator
                    .with_name("collator2")
                    .with_command("command2")
                    .validator(true)
            })
    })
    .with_hrmp_channel(|hrmp_channel1| {
        hrmp_channel1
            .with_sender(1)
            .with_recipient(2)
            .with_max_capacity(200)
            .with_max_message_size(500)
    })
    .with_hrmp_channel(|hrmp_channel2| {
        hrmp_channel2
            .with_sender(2)
            .with_recipient(1)
            .with_max_capacity(100)
            .with_max_message_size(250)
    })
    .with_global_settings(|global_settings| {
        global_settings
            .with_network_spawn_timeout(1200)
            .with_node_spawn_timeout(240)
    })
    .build();

assert!(simple_configuration.is_ok())

Re-exports§

pub use shared::node::NodeConfig;
pub use shared::types;

Modules§

para_states
shared

Structs§

GlobalSettings
Global settings applied to an entire network.
GlobalSettingsBuilder
A global settings builder, used to build GlobalSettings declaratively with fields validation.
HrmpChannelConfig
HRMP channel configuration, with fine-grained configuration options.
HrmpChannelConfigBuilder
HRMP channel configuration builder, used to build an HrmpChannelConfig declaratively with fields validation.
NetworkConfig
A network configuration, composed of a relaychain, parachains and HRMP channels.
NetworkConfigBuilder
A network configuration builder, used to build a NetworkConfig declaratively with fields validation.
ParachainConfig
A parachain configuration, composed of collators and fine-grained configuration options.
ParachainConfigBuilder
A parachain configuration builder, used to build a ParachainConfig declaratively with fields validation.
RelaychainConfig
A relay chain configuration, composed of nodes and fine-grained configuration options.
RelaychainConfigBuilder
A relay chain configuration builder, used to build a RelaychainConfig declaratively with fields validation.

Enums§

RegistrationStrategy
The registration strategy that will be used for the parachain.