Minichain is a blockchain emulator that provides container-based emulation for blockchain application and network environment. You can evaluate the performance of blockchain system under different host-to-host network conditions.
If you want to use virtual time component, it only supports ubuntu-14.04 so far.
We modify part of Mininet's code to support virtual time. Please use following instructions to install.
$ git clone https://github.com/xwu64/mininet
$ cd mininet
$ util/install.sh
$ cd
$ git clone https://github.com/xwu64/Minichain
$ cd Minichain
$ sudo python setup.py install
Follow the instruction in the repository below.
https://github.com/littlepretty/VirtualTimeKernel
Follow the instruction in the repository.
https://github.com/ethereum/go-ethereum
For evaluating host-to-host delay
$ cd examples/network_evaluate
$ sudo python delay.py
For evaluating host-to-host throughput
$ cd examples/network_evaluate
$ sudo python bw.py
For reproducing experiments in paper.
$ cd examples/geth_evaluate
$ sudo python block_dist.py
For error RTNETLINK answers: File exists
, you need to clear existing virtual interfaces.
$ sudo mn -c
If you abnormally exit program, you should kill
executing blockchain applications manually.