Go to file
Andreas Fackler 5528fc2de8 Define a common DistAlgorithm trait.
This will allow us to deduplicate network simulations in tests for the
different algorithms. More generally, it facilitates writing general
tools and applying them to all distributed algorithms.
2018-05-15 15:48:43 +02:00
examples Define a common DistAlgorithm trait. 2018-05-15 15:48:43 +02:00
proto removed the separate field in Agreement and corrected computation of estimated values 2018-05-10 10:07:22 +01:00
src Define a common DistAlgorithm trait. 2018-05-15 15:48:43 +02:00
tests Define a common DistAlgorithm trait. 2018-05-15 15:48:43 +02:00
.gitignore Merge branch 'master' into remove-autogenerated-message.rs 2018-03-28 14:52:13 +01:00
.travis.yml Add optional serde support. 2018-05-14 18:32:59 +02:00
Cargo.toml Add optional serde support. 2018-05-14 18:32:59 +02:00
LICENSE added GNU license and removed obsolete comments 2018-04-01 21:41:49 +01:00
README.md Make protobuf support optional. 2018-05-14 17:29:04 +02:00
TODO added a TODO file and changed indentation in the .proto file 2018-05-10 10:02:03 +01:00
build.rs Make protobuf support optional. 2018-05-14 17:29:04 +02:00

README.md

Build Status Gitter

About

An implementation of the paper "Honey Badger of BFT Protocols" in Rust. This is a modular library of consensus. There are examples illustrating the use of this algorithm.

Requirements

hbbft has optional protobuf support. To use protobuf, enable the feature serialization-protobuf in your Cargo.toml, and make sure you have Google's Protocol Buffer Compiler, protoc binary, located somewhere in your $PATH. You must be using Protocol Buffer Compiler version 3 or greater. Running any of the following install methods will save a protoc binary at /usr/local/bin/protoc.

Note: as of writing this, the latest stable release of protoc is v3.5.1. You can find out what is the latest compiler version is here, if you are not installing protoc on Debian 9 or Ubuntu 17, change your cURL URL and zip file names accordingly.

Installing protoc on Debian 9 (Strech) and Ubuntu 17 (Artful)

$ sudo apt-get update
$ sudo apt-get install -y protobuf-compiler

Installing protoc on other versions of Debian and Ubuntu

$ sudo apt-get update
$ sudo apt-get install -y unzip
$ cd <some temporary working directory>
$ curl -OL https://github.com/google/protobuf/releases/download/v3.5.1/protoc-3.5.1-linux-x86_64.zip
$ sudo unzip protoc-3.5.1-linux-x86_64.zip -d /usr/local bin/protoc
$ sudo chown $(whoami) /usr/local/bin/protoc
$ rm protoc-3.5.1-linux-x86_64.zip

Installing protoc on OSX

$ cd <some temporary working directory>
$ curl -OL https://github.com/google/protobuf/releases/download/v3.5.1/protoc-3.5.1-osx-x86_64.zip
$ sudo unzip protoc-3.5.1-osx-x86_64.zip -d /usr/local bin/protoc
$ rm protoc-3.5.1-osx-x86_64.zip

Building

Once you have verified that the protoc binary is in your $PATH, you can build hbbft using cargo:

$ cargo build [--release]