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.)
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.
- Install Rust v1.51
$ curl https://sh.rustup.rs -sSf | sh
$ rustup override set 1.51
- Build Meepo-OpenEthereum
$ git clone http://github.com/InPlusLab/Meepo/
$ cd Meepo/build/
$ ./debug.sh # or ./release.sh
- Run Node0 (Shard0)
$ cd Meepo/build/
$ ./initrun0.sh
- Run Node1 (Shard1)
$ cd Meepo/build/
$ ./initrun1.sh
- Try anything you want via Web3.js or other Ethereum toolchain. As for benchmark, please see the following.
More benchmark scripts, logs, and analytic results can be found in this repo: MeepoBenchmark.
(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.)