You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Motivation
This code doesn't need to be behind a feature anymore
## Proposal
Remove benchmark feature
## Test Plan
CI
## Release Plan
- Nothing to do / These changes follow the usual release cycle.
@@ -88,6 +90,8 @@ A Byzantine-fault tolerant sidechain with low-latency finality and high throughp
88
90
*`remove-validator` — Remove a validator (admin only)
89
91
*`revoke-epochs` — Deprecates all committees up to and including the specified one
90
92
*`resource-control-policy` — View or update the resource control policy
93
+
*`benchmark` — Start a benchmark, maintaining a given TPS or just sending one transfer per chain in bulk mode
94
+
*`multi-benchmark` — Runs multiple `linera benchmark` processes in parallel
91
95
*`create-genesis-config` — Create genesis configuration for a Linera deployment. Create initial user chains and print information to be used for initialization of validator setup. This will also create an initial wallet for the owner of the initial "root" chains
92
96
*`watch` — Watch the network for notifications
93
97
*`service` — Run a GraphQL service to explore and extend the chains of the wallet
@@ -207,6 +211,7 @@ Open (i.e. activate) a new chain deriving the UID from an existing one
207
211
*`--initial-balance <BALANCE>` — The initial balance of the new chain. This is subtracted from the parent chain's balance
208
212
209
213
Default value: `0`
214
+
*`--super-owner` — Whether to create a super owner for the new chain
210
215
211
216
212
217
@@ -520,6 +525,81 @@ View or update the resource control policy
520
525
521
526
522
527
528
+
## `linera benchmark`
529
+
530
+
Start a benchmark, maintaining a given TPS or just sending one transfer per chain in bulk mode
531
+
532
+
**Usage:**`linera benchmark [OPTIONS]`
533
+
534
+
###### **Options:**
535
+
536
+
*`--num-chains <NUM_CHAINS>` — How many chains to use
537
+
538
+
Default value: `10`
539
+
*`--tokens-per-chain <TOKENS_PER_CHAIN>` — How many tokens to assign to each newly created chain. These need to cover the transaction fees per chain for the benchmark
540
+
541
+
Default value: `0.1`
542
+
*`--transactions-per-block <TRANSACTIONS_PER_BLOCK>` — How many transactions to put in each block
543
+
544
+
Default value: `1`
545
+
*`--fungible-application-id <FUNGIBLE_APPLICATION_ID>` — The application ID of a fungible token on the wallet's default chain. If none is specified, the benchmark uses the native token
546
+
*`--bps <BPS>` — The fixed BPS (Blocks Per Second) rate that block proposals will be sent at
547
+
548
+
Default value: `10`
549
+
*`--close-chains` — If provided, will close the chains after the benchmark is finished. Keep in mind that closing the chains might take a while, and will increase the validator latency while they're being closed
550
+
*`--health-check-endpoints <HEALTH_CHECK_ENDPOINTS>` — A comma-separated list of host:port pairs to query for health metrics. If provided, the benchmark will check these endpoints for validator health and terminate if any validator is unhealthy. Example: "127.0.0.1:21100,validator-1.some-network.linera.net:21100"
551
+
*`--wrap-up-max-in-flight <WRAP_UP_MAX_IN_FLIGHT>` — The maximum number of in-flight requests to validators when wrapping up the benchmark. While wrapping up, this controls the concurrency level when processing inboxes and closing chains
552
+
553
+
Default value: `5`
554
+
*`--confirm-before-start` — Confirm before starting the benchmark
555
+
*`--runtime-in-seconds <RUNTIME_IN_SECONDS>` — How long to run the benchmark for. If not provided, the benchmark will run until it is interrupted
556
+
*`--delay-between-chains-ms <DELAY_BETWEEN_CHAINS_MS>` — The delay between chains, in milliseconds. For example, if set to 200ms, the first chain will start, then the second will start 200 ms after the first one, the third 200 ms after the second one, and so on. This is used for slowly ramping up the TPS, so we don't pound the validators with the full TPS all at once
557
+
*`--config-path <CONFIG_PATH>` — Path to YAML file containing chain IDs to send transfers to. If not provided, only transfers between chains in the same wallet
558
+
559
+
560
+
561
+
## `linera multi-benchmark`
562
+
563
+
Runs multiple `linera benchmark` processes in parallel
*`--processes <PROCESSES>` — The number of `linera benchmark` processes to run in parallel
570
+
571
+
Default value: `1`
572
+
*`--faucet <FAUCET>` — The faucet (which implicitly defines the network)
573
+
*`--client-state-dir <CLIENT_STATE_DIR>` — If specified, a directory with a random name will be created in this directory, and the client state will be stored there. If not specified, a temporary directory will be used for each client
574
+
*`--num-chains <NUM_CHAINS>` — How many chains to use
575
+
576
+
Default value: `10`
577
+
*`--tokens-per-chain <TOKENS_PER_CHAIN>` — How many tokens to assign to each newly created chain. These need to cover the transaction fees per chain for the benchmark
578
+
579
+
Default value: `0.1`
580
+
*`--transactions-per-block <TRANSACTIONS_PER_BLOCK>` — How many transactions to put in each block
581
+
582
+
Default value: `1`
583
+
*`--fungible-application-id <FUNGIBLE_APPLICATION_ID>` — The application ID of a fungible token on the wallet's default chain. If none is specified, the benchmark uses the native token
584
+
*`--bps <BPS>` — The fixed BPS (Blocks Per Second) rate that block proposals will be sent at
585
+
586
+
Default value: `10`
587
+
*`--close-chains` — If provided, will close the chains after the benchmark is finished. Keep in mind that closing the chains might take a while, and will increase the validator latency while they're being closed
588
+
*`--health-check-endpoints <HEALTH_CHECK_ENDPOINTS>` — A comma-separated list of host:port pairs to query for health metrics. If provided, the benchmark will check these endpoints for validator health and terminate if any validator is unhealthy. Example: "127.0.0.1:21100,validator-1.some-network.linera.net:21100"
589
+
*`--wrap-up-max-in-flight <WRAP_UP_MAX_IN_FLIGHT>` — The maximum number of in-flight requests to validators when wrapping up the benchmark. While wrapping up, this controls the concurrency level when processing inboxes and closing chains
590
+
591
+
Default value: `5`
592
+
*`--confirm-before-start` — Confirm before starting the benchmark
593
+
*`--runtime-in-seconds <RUNTIME_IN_SECONDS>` — How long to run the benchmark for. If not provided, the benchmark will run until it is interrupted
594
+
*`--delay-between-chains-ms <DELAY_BETWEEN_CHAINS_MS>` — The delay between chains, in milliseconds. For example, if set to 200ms, the first chain will start, then the second will start 200 ms after the first one, the third 200 ms after the second one, and so on. This is used for slowly ramping up the TPS, so we don't pound the validators with the full TPS all at once
595
+
*`--config-path <CONFIG_PATH>` — Path to YAML file containing chain IDs to send transfers to. If not provided, only transfers between chains in the same wallet
596
+
*`--delay-between-processes <DELAY_BETWEEN_PROCESSES>` — The delay between starting the benchmark processes, in seconds. If --cross-wallet-transfers is true, this will be ignored
597
+
598
+
Default value: `10`
599
+
*`--cross-wallet-transfers` — Whether to send transfers between chains in different wallets
600
+
601
+
602
+
523
603
## `linera create-genesis-config`
524
604
525
605
Create genesis configuration for a Linera deployment. Create initial user chains and print information to be used for initialization of validator setup. This will also create an initial wallet for the owner of the initial "root" chains
0 commit comments