67 lines
3.8 KiB
TOML
67 lines
3.8 KiB
TOML
name = "pubsub"
|
|
|
|
[defaults]
|
|
builder = "exec:go"
|
|
runner = "local:exec"
|
|
|
|
[builders."docker:go"]
|
|
enabled = true
|
|
go_version = "1.14"
|
|
module_path = "github.com/libp2p/test-plans/pubsub/test"
|
|
exec_pkg = "."
|
|
go_ipfs_version = "0.4.22"
|
|
|
|
[builders."exec:go"]
|
|
enabled = true
|
|
module_path = "github.com/libp2p/test-plans/pubsub/test"
|
|
exec_pkg = "."
|
|
|
|
[runners."local:docker"]
|
|
enabled = true
|
|
|
|
[runners."local:exec"]
|
|
enabled = true
|
|
|
|
[runners."cluster:k8s"]
|
|
enabled = true
|
|
|
|
[[testcases]]
|
|
name = "evaluate"
|
|
instances = { min = 1, max = 2000, default = 10 }
|
|
[testcases.params]
|
|
# params with type "duration" must be parseable by time.ParseDuration, e.g. 2m or 30s
|
|
# params with type "size" must be parseable by https://godoc.org/github.com/dustin/go-humanize#ParseBytes, e.g. "1kb"
|
|
|
|
## global params
|
|
t_heartbeat = { type = "duration", desc = "Interval between emiting maintenance messages", default="1s" }
|
|
t_heartbeat_initial_delay = { type = "duration", desc = "Delay before starting hearbeat", default="100ms" }
|
|
t_setup = { type = "duration", desc = "Upper bound on expected time period for waiting for all peers to register etc", default="1m" }
|
|
t_run = { type = "duration", desc = "Time to run the simulation", default="2m" }
|
|
t_warm = { type = "duration", desc = "Time to wait for nodes to establish connections before beginning publishing", default="5s" }
|
|
t_cool = { type = "duration", desc = "Time to wait after test execution for straggling publishers, etc.", default="10s" }
|
|
topics = { type = "json", desc = "json array of TopicConfig objects." }
|
|
score_params = { type = "json", desc = "a json ScoreParams object (see params.go). ignored unless hardened_api build flag is set."}
|
|
full_traces = { type = "bool", desc = "if true, collect full pubsub protobuf trace events, in addition to aggregate metrics", default="false" }
|
|
validate_queue_size = { type = "int", desc = "Size of pubsub validation queue", default=0 }
|
|
outbound_queue_size = { type = "int", desc = "Size of pubsub outbound queue", default=0 }
|
|
t_latency = { type = "duration", desc = "Network latency between nodes", default="5ms" }
|
|
t_latency_max = { type = "duration", desc = "If supplied, latency is between t_latency and t_latency_max", default="50ms" }
|
|
jitter_pct = { type = "int", desc = "Jitter in latency", default=10 }
|
|
bandwidth_mb = { type = "int", desc = "Bandwidth in MiB", default=10240 }
|
|
topology = { type = "string", desc = "topology in json format" }
|
|
degree = { type = "int", desc = "the number of nodes to connect to", default=20 }
|
|
n_container_nodes_total = { type = "int", desc = "the number of total nodes including multiple nodes per container", default=1 }
|
|
n_nodes_per_container = { type = "int", desc = "the number of nodes to start up in each container", default=1 }
|
|
|
|
## pubsub node config
|
|
publisher = { type = "bool", desc = "if true, this instance should publish to subscribed topics instead of lurking", default=false }
|
|
flood_publishing = { type = "bool", desc = "if true, nodes will flood when publishing their own messages. only applies to hardening branch", default=false }
|
|
t_score_inspect_period = { type = "duration", desc = "Interval between printing peer scores", default="0" }
|
|
overlay_d = { type = "int", desc = "the number of nodes gossipsub tries to stay connected to", default=-1 }
|
|
overlay_dlo = { type = "int", desc = "the low watermark of overlay_d", default=-1 }
|
|
overlay_dhi = { type = "int", desc = "the high watermark of overlay_d", default=-1 }
|
|
overlay_dscore = { type = "int", desc = "the number of peers to keep by score", default=-1 }
|
|
overlay_dlazy = { type = "int", desc = "degree for gossip nodes", default=-1 }
|
|
gossip_factor = { type = "float", desc = "gossip factor", default=0.25 }
|
|
opportunistic_graft_ticks = { type = "int", desc = "Number of heartbeat ticks for attempting opportunistic grafting", default=60 }
|