supernova

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2024 License: Apache-2.0

README ยถ

Overview

supernova is a command-line interface (CLI) tool for stress-testing Gno Tendermint 2 networks. It is used to monitor and report on node performance by executing transactions and measuring response-time.

Key Features

  • ๐Ÿš€ Batch transactions to make stress testing easier to orchestrate
  • ๐Ÿ›  Multiple stress testing modes: REALM_DEPLOYMENT, PACKAGE_DEPLOYMENT, and REALM_CALL
  • ๐Ÿ’ฐ Distributed transaction stress testing through subaccounts
  • ๐Ÿ’ธ Automatic subaccount fund top-up
  • ๐Ÿ“Š Detailed statistics calculation
  • ๐Ÿ“ˆ Output cycle run results to a file

Results

To view the results of the stress tests, visit the benchmarks reports for supernova.

Usage Example

To run a stress test with supernova, you will need to have go 1.19 or greater.

  1. Build out the binary

To build out the binary, run the following command:

make build
  1. Run the stress test by specifying options
./build/supernova -sub-accounts 5 -transactions 100 -url http://localhost:26657 -mnemonic "source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast" -output result.json

This will run a stress test against a Gno TM2 node running at http://localhost:26657. The test will use 5 sub-accounts, and send out 100 transactions. The sub-accounts are derived from the specified mnemonic. Finally, results are saved to a file result.json.

For any stress test run, there need to be funds on a specific address. The address that is in charge of funds distribution to subaccounts is the first address with index 0 in the specified mnemonic. Make sure this address has an appropriate amount of funds before running the stress test.

Banner

supernova supports the following options:

USAGE
  [flags] [<arg>...]

Starts the stress testing suite against a Gno TM2 cluster

FLAGS
  -batch 20               the batch size of JSON-RPC transactions
  -chain-id dev           the chain ID of the Gno blockchain
  -mnemonic ...           the mnemonic used to generate sub-accounts
  -mode REALM_DEPLOYMENT  the mode for the stress test. Possible modes: [REALM_DEPLOYMENT, PACKAGE_DEPLOYMENT, REALM_CALL]
  -output ...             the output path for the results JSON
  -sub-accounts 10        the number of sub-accounts that will send out transactions
  -transactions 100       the total number of transactions to be emitted
  -url ...                the JSON-RPC URL of the cluster

Modes

REALM_DEPLOYMENT

The REALM_DEPLOYMENT mode is pretty straightforward - it is a simple Realm deployment mode from accounts. This mode sends out transactions that are deploy transactions for a realm holding state.

PACKAGE_DEPLOYMENT

The PACKAGE_DEPLOYMENT is similar to REALM_DEPLOYMENT. This mode also sends out transactions, but these transactions deploy a package.

REALM_CALL

The REALM_CALL mode deploys a Realm to the Gno blockchain network being tested before starting the cycle run. When the cycle run begins, the transactions that are sent out are method calls.

Directories ยถ

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL