Skip to content

Blazing fast tool to benchmark Starknet sequencers 🦀

License

Notifications You must be signed in to change notification settings

Angel-Petrov/gomu-gomu-no-gatling

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gomu Gomu no Gatling


GitHub Workflow Status Project license Pull Requests welcome Rust docs Rust crate

Blazing fast tool to benchmark Starknet sequencers 🦀.

Installation

From source

git clone https://github.com/keep-starknet-strange/gomu-gomu-no-gatling
cd gomu-gomu-no-gatling
cargo install --path .

From crates.io

cargo install --locked gatling

Run debug

RUST_LOG=debug cargo run -- shoot -c config/default.yaml

Usage

gatling --help

For Katana, currently you need to increase the DEFAULT_PREFUNDED_ACCOUNT_BALANCE in constants to 0xffffffffffffffffffffffffffffffff and run the node with flag --no-validate.

Configuration

Gomu gomu's configuration is specified as a yaml file. You can find example configurations under the config folder.

As it uses the config crate under the hood, the configuration could be specified as any other file type such as TOML or JSON.

The configuration is defined by the following spec

  • rpc

    • url: Starknet RPC url, should be compliant with the specification
  • setup

v0 and v1 CAN'T be specified at the same time

  • erc20_contract: ERC20 contract used to benchmark transfers

    • v0: Path to Cairo Zero contract artifact

    • v1:

      • path: Path to Cairo contract sierra artifact
      • casm_path: Path to Cairo contract casm artifact
    • erc721_contract: ERC721 contract used to benchmark mints ...

    • account_contract: Account contract used to send transactions ...

    • fee_token_address: Contract address of the fee token on the target chain

    • num_accounts: Number of accounts sending transactions

  • run

    • num_erc20_transfers: Number of ERC20 transfer transactions
    • num_erc721_mints: Number of ERC721 mint transactions
  • report

    • num_blocks: Number of last blocks to take into account in the report
    • reports_dir: Path to the directory where to save the reports
  • deployer

    • salt: Salt used to compute deployment addresses
    • address: Address of the deployer account (should be pre-funded)
    • signing_key: Private key of the deployer signer

Run a load test

gatling shoot -c config/default.yaml

Resources

Contributors

Abdel @ StarkWare
Abdel @ StarkWare

💻
0xevolve
0xevolve

💻
Oak
Oak

💻
drspacemn
drspacemn

💻
Haroune | Quadratic
Haroune | Quadratic

💻
Daniel Bejarano
Daniel Bejarano

💻
nbz
nbz

💻

About

Blazing fast tool to benchmark Starknet sequencers 🦀

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.3%
  • Dockerfile 0.7%