xwu64 / Minichain

Blockchain emulator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Minichain

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.

Getting Started

Prerequisites

If you want to use virtual time component, it only supports ubuntu-14.04 so far.

Installing

Mininet

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

Minichain

$ cd
$ git clone https://github.com/xwu64/Minichain
$ cd Minichain
$ sudo python setup.py install

Virtual time

Follow the instruction in the repository below.

https://github.com/littlepretty/VirtualTimeKernel

Go-Ethereum

Follow the instruction in the repository.

https://github.com/ethereum/go-ethereum

Running the tests

Network performance evaluation

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

Application evaluation

For reproducing experiments in paper.

$ cd examples/geth_evaluate
$ sudo python block_dist.py

Trouble shooting

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.

About

Blockchain emulator


Languages

Language:Python 100.0%