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.