Benchmark engine for blockchains
Project description
MixBytes Tank
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4d843bfa63e036367de5e1ca0a4415ea1e44450180ab4060f4bddeca4b0f291 |
|
MD5 | 48647efd4b9a40f1294fdcec2d45ebf5 |
|
BLAKE2b-256 | ddda7b26838c1191a6bccd368082ce90835b35ee6929583c122b9de2dbd8dd7b |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb966d569e3568bea573f01f304a44efdae36033dc2c846a9247fb5fd1ea3c10 |
|
MD5 | 8321652105f52e3c590ca8015d167e78 |
|
BLAKE2b-256 | 17450d8d5ceee40f4fad0dcb53dede597ef9a11fe4b32261d542954ac81fb58b |