Implementation of Hashgraph in Go programming language with ZeroMQ framework for the algorithm based on:
"The Hashgraph Protocol: Efficient Asynchronous BFT for High-Throughput Distributed Ledgers"[1]
by Leemon Baird and Atul Luykx.
The implementation of the servers can be found here.
Each Client send a number of transaction. A client transaction contains
- string: Transaction
- int : increased integer number
If you have not already installed Golang follow the instructions here.
cd ~/go/src/
git clone https://github.com/Giorgos-P/HashGraph_Client.git
Open different terminal for each client:
Hashgraph_Client <ID> <N> <Clients> <Remote>
ID : is the client id [0 to (N-1)]
N : is the total number of servers
Clients : is the total number of clients
Remote : is [0 or 1] 0=local execution, 1 is remote execution (we have to set the correct ip address of the remote servers in ip.go)
Adjust the script (Hashgraph_Client/scripts/runClient.sh) and run:
bash ~/go/src/Hashgraph_Client/scripts/runClient.sh
When you are done and want to kill the processes run:
bash ~/go/src/Hashgraph_Client/scripts/killHash.sh