## This composition runs a pubsub simulation with no adversarial nodes, to ## establish baseline metrics. ## [metadata] name = "pubsub-{{ COMPOSITION_NAME }}" author = "yusefnapora" [global] plan = "{{ TEST_PLAN | default('test-plans/pubsub/test') }}" case = "evaluate" builder = "{{ TEST_BUILDER | default('docker:go') }}" runner = "{{ TEST_RUNNER | default('local:docker') }}" total_instances = {{ N_NODES }} [global.build_config] {{ BUILD_CONFIG | default('') }} [global.run_config] {{ RUN_CONFIG | default('') }} [[groups]] id = "publishers" instances = { count = {{ N_PUBLISHER }} } [groups.build] selectors = {{ BUILD_SELECTORS }} dependencies = [ { module = "github.com/libp2p/go-libp2p-pubsub", version = "{{ GS_VERSION }}" } ] [groups.run.test_params] t_heartbeat = "{{ T_HEARTBEAT | default('1s') }}" t_heartbeat_initial_delay = "{{ T_HEARTBEAT_INITIAL_DELAY | default('100ms') }}" t_run = "{{ T_RUN }}" t_warm = "{{ T_WARM }}" t_cool = "{{ T_COOL | default('10s') }}" t_setup = "{{ T_SETUP | default('1m') }}" full_traces = "{{ FULL_TRACES | default('false') }}" publisher = "true" flood_publishing = '{{ FLOOD_PUBLISHING }}' topics = '{{ TOPIC_CONFIG | tojson() }}' score_params = '{{ PEER_SCORE_PARAMS | tojson() }}' t_score_inspect_period = '{{ T_SCORE_INSPECT_PERIOD | default('0s') }}' validate_queue_size = '{{ VALIDATE_QUEUE_SIZE | default(0) }}' outbound_queue_size = '{{ OUTBOUND_QUEUE_SIZE | default(0) }}' t_latency = '{{ T_LATENCY | default('5ms') }}' t_latency_max = '{{ T_LATENCY_MAX | default('50ms') }}' jitter_pct = '{{ JITTER_PCT | default(10) | int }}' bandwidth_mb = '{{ BANDWIDTH_MB | default(10240) | int }}' topology = '{{ TOPOLOGY | tojson() }}' degree = '{{ N_DEGREE | default(20) | int }}' overlay_d = '{{ OVERLAY_D | default(-1) | int }}' overlay_dlo = '{{ OVERLAY_DLO | default(-1) | int }}' overlay_dhi = '{{ OVERLAY_DHI | default(-1) | int }}' overlay_dscore = '{{ OVERLAY_DSCORE | default(-1) | int }}' overlay_dlazy = '{{ OVERLAY_DLAZY | default(-1) | int }}' gossip_factor = '{{ GOSSIP_FACTOR | default(0.25) | float }}' opportunistic_graft_ticks = '{{ OPPORTUNISTIC_GRAFT_TICKS | default(60) | int }}' n_container_nodes_total = '{{ N_CONTAINER_NODES_TOTAL | default(N_NODES) }}' n_nodes_per_container = '{{ N_HONEST_PEERS_PER_NODE | default(1) | int }}' connect_delays = '{{ HONEST_CONNECT_DELAYS | default('') }}' connect_delay_jitter_pct = '{{ HONEST_CONNECT_DELAY_JITTER_PCT | default('5') | int }}' [[groups]] id = "lurkers" instances = { count = {{ N_NODES - N_PUBLISHER | int }} } [groups.build] selectors = {{ BUILD_SELECTORS }} dependencies = [ { module = "github.com/libp2p/go-libp2p-pubsub", version = "{{ GS_VERSION }}" } ] [groups.run.test_params] t_heartbeat = "{{ T_HEARTBEAT | default('1s') }}" t_heartbeat_initial_delay = "{{ T_HEARTBEAT_INITIAL_DELAY | default('100ms') }}" t_run = "{{ T_RUN }}" t_warm = "{{ T_WARM }}" t_cool = "{{ T_COOL | default('10s') }}" t_setup = "{{ T_SETUP | default('1m') }}" full_traces = "{{ FULL_TRACES | default('false') }}" topics = '{{ TOPIC_CONFIG | tojson() }}' score_params = '{{ PEER_SCORE_PARAMS | tojson() }}' t_score_inspect_period = '{{ T_SCORE_INSPECT_PERIOD | default('0s') }}' validate_queue_size = '{{ VALIDATE_QUEUE_SIZE | default(0) }}' outbound_queue_size = '{{ OUTBOUND_QUEUE_SIZE | default(0) }}' t_latency = '{{ T_LATENCY | default('5ms') }}' t_latency_max = '{{ T_LATENCY_MAX | default('50ms') }}' jitter_pct = '{{ JITTER_PCT | default(10) | int }}' bandwidth_mb = '{{ BANDWIDTH_MB | default(10240) | int }}' topology = '{{ TOPOLOGY | tojson() }}' degree = '{{ N_DEGREE | default(20) | int }}' overlay_d = '{{ OVERLAY_D | default(-1) | int }}' overlay_dlo = '{{ OVERLAY_DLO | default(-1) | int }}' overlay_dhi = '{{ OVERLAY_DHI | default(-1) | int }}' overlay_dscore = '{{ OVERLAY_DSCORE | default(-1) | int }}' overlay_dlazy = '{{ OVERLAY_DLAZY | default(-1) | int }}' gossip_factor = '{{ GOSSIP_FACTOR | default(0.25) | float }}' opportunistic_graft_ticks = '{{ OPPORTUNISTIC_GRAFT_TICKS | default(60) | int }}' n_container_nodes_total = '{{ N_CONTAINER_NODES_TOTAL }}' n_nodes_per_container = '{{ N_HONEST_PEERS_PER_NODE | default(1) | int }}' connect_delays = '{{ HONEST_CONNECT_DELAYS | default('') }}' connect_delay_jitter_pct = '{{ HONEST_CONNECT_DELAY_JITTER_PCT | default('5') | int }}'