Skip to content
/ Meepo Public
forked from InPlusLab/Meepo

Meepo implementation on OpenEthereum.

License

Notifications You must be signed in to change notification settings

pxw0520/Meepo

 
 

Repository files navigation

Meepo (Meepo-OpenEthereum)

Meepo implementation on OpenEthereum.

MEEPO = Multiple Execution Environments Per Organization. (It is also a legendary hero who can split himself, each one acting independently but relying on together, just like the shards.)

This is an implmentation based on the conference paper: P. Zheng, Q. Xu, Z. Zheng, Z. Zhou, Y. Yan and H. Zhang, "Meepo: Sharded Consortium Blockchain," 2021 IEEE 37th International Conference on Data Engineering (ICDE), 2021, pp. 1847-1852, doi: 10.1109/ICDE51399.2021.00165.

Since Meepo-Geth (Golang) is unable to be open-source because of the copyright, our community provides another implementation (Rust) based on the published paper.

Build and Run (Linux)

  1. Install Rust v1.51
$ curl https://sh.rustup.rs -sSf | sh
$ rustup override set 1.51
  1. Build Meepo-OpenEthereum
$ git clone http://github.com/InPlusLab/Meepo/
$ cd Meepo/build/
$ ./debug.sh # or ./release.sh
  1. Run Node0 (Shard0)
$ cd Meepo/build/
$ ./initrun0.sh
  1. Run Node1 (Shard1)
$ cd Meepo/build/
$ ./initrun1.sh
  1. Try anything you want via Web3.js or other Ethereum toolchain. As for benchmark, please see the following.

Benchmark

More benchmark scripts, logs, and analytic results can be found in this repo: MeepoBenchmark.

image

(32x4=128 machines in maximum, each machine is equipped with 4 vCPU, 32 GiB memory, and 894 GiB NVME disk, 102400 accounts per shard, 100000000+ transactions to an ERC20-like contract.)

About

Meepo implementation on OpenEthereum.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.5%
  • Other 0.5%