MeepoBenchmark

Introduction

This project aims at providing the scripts, logs, and analytic results for Meepo Blockchain (the Rust implementaion on OpenEthereum).

In short, it provides open-source and reproducible benchmark results for Meepo-OpenEthereum.

Test-bed

We use 128 AliCloud servers as a test bed. Each machine is equipped with 4 vCPU, 32 GiB memory, and 894 GiB NVME disk. The detailed configuration of the ECS (ecs.i2.xlarge) can be found here.

Scripts

The scripts are in encoder/ and client/.
First, we encode and sign the transactions for benchmark.
Second, for each shard, we use a client to submit the transaction to blockchain one by one.
All transactions are signed and sent in the way as the same as Ethereum, using Web3.js.

Availibility

All the logs are in the meepo128/ directory in this repo.
With the following commands, you can verify the results afterwards.

$ git clone http://github.com/tczpl/MeepoBenchmark/
$ cd MeepoBenchmark/meepo128
$ ls *.zip | xargs -n1 unzip # you should install unzip first or mannualy unzip
$ cd .. 
$ python3 rq1-1_tps.py # or other Python script

Key Results

ERC20 Cross-shard Performance

Cross-shard TPS in differnt scales (102400 accounts per shard, 32×4=128 machines in maximum) Corresponding Latency in differnt scales
image image
Cross-shard TPS in differnt shards and total accounts (1 member) Cross-shard TPS in differnt total accounts (32 shards, 4 consortium members, 128 machines)
image image

Taobao E-commerce Performance

TPS in differnt scales (4 consoritum members, 32×4=128 machines in maximum) Processing time of block duration
image image
Cross-shard communication time per block Number of cross-epochs per block
image image

GitHub

View Github