diff --git a/lotus-soup/compositions/composition-stress-test-concurrent.toml b/lotus-soup/compositions/composition-stress-test-concurrent.toml new file mode 100644 index 000000000..9fef06fa5 --- /dev/null +++ b/lotus-soup/compositions/composition-stress-test-concurrent.toml @@ -0,0 +1,50 @@ +[metadata] + name = "lotus-soup" + author = "" + +[global] + plan = "lotus-soup" + case = "lotus-deal-stress-test" + total_instances = 6 + builder = "docker:go" + runner = "local:docker" + +[global.build_config] + enable_go_build_cache = true + +[global.run.test_params] + clients = "3" + miners = "2" + genesis_timestamp_offset = "100000" + balance = "2000000000" + sectors = "1000" + random_beacon_type = "mock" + +[[groups]] + id = "bootstrapper" + [groups.instances] + count = 1 + percentage = 0.0 + [groups.run] + [groups.run.test_params] + role = "bootstrapper" + +[[groups]] + id = "miners" + [groups.instances] + count = 2 + percentage = 0.0 + [groups.run] + [groups.run.test_params] + role = "miner" + +[[groups]] + id = "clients" + [groups.instances] + count = 3 + percentage = 0.0 + [groups.run] + [groups.run.test_params] + role = "client" + deals = "300" + deal_mode = "concurrent" diff --git a/lotus-soup/compositions/composition-stress-test-serial.toml b/lotus-soup/compositions/composition-stress-test-serial.toml new file mode 100644 index 000000000..0355f05d8 --- /dev/null +++ b/lotus-soup/compositions/composition-stress-test-serial.toml @@ -0,0 +1,50 @@ +[metadata] + name = "lotus-soup" + author = "" + +[global] + plan = "lotus-soup" + case = "lotus-deal-stress-test" + total_instances = 6 + builder = "docker:go" + runner = "local:docker" + +[global.build_config] + enable_go_build_cache = true + +[global.run.test_params] + clients = "3" + miners = "2" + genesis_timestamp_offset = "100000" + balance = "2000000000" + sectors = "1000" + random_beacon_type = "mock" + +[[groups]] + id = "bootstrapper" + [groups.instances] + count = 1 + percentage = 0.0 + [groups.run] + [groups.run.test_params] + role = "bootstrapper" + +[[groups]] + id = "miners" + [groups.instances] + count = 2 + percentage = 0.0 + [groups.run] + [groups.run.test_params] + role = "miner" + +[[groups]] + id = "clients" + [groups.instances] + count = 3 + percentage = 0.0 + [groups.run] + [groups.run.test_params] + role = "client" + deals = "300" + deal_mode = "serial" diff --git a/lotus-soup/manifest.toml b/lotus-soup/manifest.toml index 7227fdd35..8a6520576 100644 --- a/lotus-soup/manifest.toml +++ b/lotus-soup/manifest.toml @@ -44,3 +44,35 @@ instances = { min = 1, max = 100, default = 5 } # Mining Mode: synchronized -vs- natural time mining_mode = { type = "enum", default = "synchronized", options = ["synchronized", "natural"] } + +[[testcases]] +name = "lotus-deal-stress-test" +instances = { min = 1, max = 100, default = 5 } + + [testcases.params] + clients = { type = "int", default = 1 } + miners = { type = "int", default = 1 } + balance = { type = "int", default = 1 } + sectors = { type = "int", default = 1 } + role = { type = "string" } + + genesis_timestamp_offset = { type = "int", default = 0 } + + random_beacon_type = { type = "enum", default = "mock", options = ["mock", "local-drand", "external-drand"] } + + # Params relevant to drand nodes. drand nodes should have role="drand", and must all be + # in the same composition group. There must be at least threshold drand nodes. + # To get lotus nodes to actually use the drand nodes, you must set random_beacon_type="local-drand" + # for the lotus node groups. + drand_period = { type = "duration", default="10s" } + drand_threshold = { type = "int", default = 2 } + drand_gossip_relay = { type = "bool", default = true } + + # Params relevant to pubsub tracing + enable_pubsub_tracer = { type = "bool", default = false } + + # Mining Mode: synchronized -vs- natural time + mining_mode = { type = "enum", default = "synchronized", options = ["synchronized", "natural"] } + + deals = { type = "int", default = 1 } + deal_mode = { type = "enum", default = "serial", options = ["serial", "concurrent"] }