Skip to main content

Benchmark engine for blockchains

Project description

MixBytes Tank master

MixBytes Tank is a console tool which can set up a blockchain cluster in minutes in a cloud and bench it using various transaction loads. It'll highlight blockchain problems and give insights into performance and stability of the technology.

At the moment, supported blockchains are Haya and Polkadot.

Setup - bench - dispose workflow is very similar to a test case, that is why configuration of such run is described in a declarative YAML file called "testcase".

More info can be found at:

Contributions are welcomed!

Discuss in our chat: https://t.me/MixBytes.

Quick guide

Requirements

  • Python3

Installation

pip3 install mixbytes-tank

Use the --pre option to get the latest release candidate:

pip3 install mixbytes-tank --pre

Usage

1. Configure the user config

Configure ~/.tank.yml. The example can be found at docs/config.yml.example.

Please configure at least one cloud provider. The essential steps are:

  • providing (and possibly creating) a key pair
  • registering a public key with your cloud provider (if needed)
  • specifying a cloud provider access token or credentials

2. Create or get a tank testcase

The example can be found at docs/testcase_example.yml.

3. Start a tank run

tank cluster deploy <testcase file>

As a result, the cluster instance listing will be printed along with the run id and the monitoring link.

4. Log in to the monitoring

Open the monitoring link in your browser, type in 'tank' in the username and password fields. You will see cluster metrics in the predefined dashboards.

5. List current active runs

There can be multiple tank runs at the same time. The runs list and brief information about each run can be seen via:

tank cluster list

6. Create synthetic load

tank cluster bench <run id> <load profile js> [--tps N] [--total-tx N]

<run id> - run ID

<load profile js> - a js file with a load profile: custom logic which creates transactions to be sent to the cluster

--tps - total number of generated transactions per second,

--total-tx - total number of transactions to be sent.

7. Shutdown and remove the cluster

tank cluster destroy <run id>

Development

Branching

features -> develop -> master.

master is production-ready code.

develop is expected-to-be production-ready code which is merged into master after thorough testing (so, no faulty code in develop pls).

develop and master branches are permanent.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mixbytes-tank-1.0.2.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

mixbytes_tank-1.0.2-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

Details for the file mixbytes-tank-1.0.2.tar.gz.

File metadata

  • Download URL: mixbytes-tank-1.0.2.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.2

File hashes

Hashes for mixbytes-tank-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f4d843bfa63e036367de5e1ca0a4415ea1e44450180ab4060f4bddeca4b0f291
MD5 48647efd4b9a40f1294fdcec2d45ebf5
BLAKE2b-256 ddda7b26838c1191a6bccd368082ce90835b35ee6929583c122b9de2dbd8dd7b

See more details on using hashes here.

File details

Details for the file mixbytes_tank-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: mixbytes_tank-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 36.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.2

File hashes

Hashes for mixbytes_tank-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cb966d569e3568bea573f01f304a44efdae36033dc2c846a9247fb5fd1ea3c10
MD5 8321652105f52e3c590ca8015d167e78
BLAKE2b-256 17450d8d5ceee40f4fad0dcb53dede597ef9a11fe4b32261d542954ac81fb58b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page