Ensure the security of your smart contracts

MixBytes Among Web3 Foundation Wave 2 Grantees

Author: MixBytes team
The MixBytes team is grateful to Web3 Foundation for their trust and opportunity to participate in the development of the Parity Substrate infrastructure.
What is Parity Substrate?
Parity Substrate is a blockchain development framework allowing to launch your own blockchain with a list of significant features like modular architecture, upgradable blockchains, customizable block execution logic, and consensus algorithm.
What is MixBytes Tank?
MixBytes Tank is a tool for blockchain stability and performance benchmarking. It will allow to identify bottlenecks and pain points of the project, report the results and offer recommendations. The tool will be suitable for multiple benchmarking of new blockchain versions.

As a team of blockchain engineers, we have tried to take into account the requirements that are valuable to blockchain developer teams during performance benchmarking.

  • Open-source solution

  • Multiple benchmarking options (different precision rate, timing and load profiles): smoke tests, massively parallel benchmarking, massively parallel geographically distributed benchmarking.

  • Various load profiles written in js: simple cryptocurrency transactions, complex smart contract operations, etc.

  • Using visualization tools (like Grafana) as a convenient tool for metric collection, display, analysis and download. Key blockchain metrics : throughput, block latency, finality latency, resource usage. Separate statistics with the most insightful indicators such as 99 percentiles.

  • Ready-to-use code: an automated stand for recurrent benchmarking allowing to assess quality rate, test releases, etc.

  • Minimal cloud resource consumption due to automated network deployment and shutdown.
Current issues
Building complex software and testing final products make blockchain development a costly process. Blockchain performance assessment can be tricky: the network performs brilliantly when limited to 2-3 nodes running in a lab environment, yet, results change dramatically in production where entire network segments may get cut off and network latency may rise.

Much depends on transaction types and resources for their processing. Usually, developers concentrate more on product creation putting aside benchmarking and infrastructure analysis.

Also, developers must be sure blockchain updates and new version release will not cause network splitting, poor operation stability or performance. Blockchain and consensus optimization decisions should be based on factual data and measured values.

MixBytes Tank solution shall solve these issues.
List of features and future plans
The benchmarking tool will include the following features:

* System metrics collection and visualization
* Virtualized infrastructure deployment, scripts, and playbooks
* Blockchain automated parallel deployment, blockchain initialization, and warmup
* Blockchain metrics integration
* Smoke tests
* Block time breaking tests
* Development of load profiles
* Massively parallel tests
* Geographically distributed massively parallel tests

We are planning to further develop the project under Apache 2 license, adding new features such as system testing for network partition tolerance, high network latency, byzantine actors, etc; testing various blockchain nodes and creating a universal set of metrics for blockchain operation assessment.

We hope that MixBytes Tank will help teams building on Substrate and serve as an additional impetus for blockchain technology expansion and community growth.
References
Other posts