The repository contains C++ implementation of OHIE. The technical aspects of the approach are described in our paper.
The code has been tested on Ubuntu 16.04 with Boost ASIO library installed:
sudo apt-get install libboost-all-dev
- Compile the code
make
- Run the script
quick_test.sh
This will run OHIE network of 3 nodes -- their outputs are written in outputnodeX.txt
. So, while running, for example, check the output with tail -f outputnode1.txt
.
At the end, make sure to kill the network, i.e. fuser -k *
.
There are many parameters that can be configured, starting form the IP address of the nodes, to number of chains, block sizes, mining times, etc:
- For most widely used parameters, check the file
_configuration
. - For a full list of parameters, check
configuration.cpp
. - The list of network nodes (ip:port) is defined in a separate file, check
_peers
- To start a single node use
./Node <portNumber> <file_peers>
Large scale experiments (based on the above code) were conducted on Amazon EC2, using the scripts from amazonEC2
folder.
Note: For each AWS region you want to use, make sure you have the public key written in a file and stored in keys
folder, and have the correct launching templates. Update regions.py
to reflect the file paths and the templates.