A Golang with ZeroMQ implementation of the client for the algorithm:
From Consensus to Atomic Broadcast: Time-Free Byzantine-Resistant Protocols without Signatures
By Miguel Correia, Nuno Ferreira Neves, Paulo Verissimo
If you have not already installed Golang follow the instructions here.
cd ~/go/src/
git clone https://github.com/v-petrou/BFTWithoutSignatures_Client.git
Open a different terminal for each client. In each terminal run:
go install BFTWithoutSignatures_Client
BFTWithoutSignatures_Client <ID> <N> <Clients> <Remote>
Adjust the script (BFTWithoutSignatures_Client/scripts/run.sh) and run:
bash ~/go/src/BFTWithoutSignatures_Client/scripts/run.sh
When you are done and want to kill the processes run:
bash ~/go/src/BFTWithoutSignatures_Client/scripts/kill.sh