Go to file
Vladimir Komendantskiy eadd233fe4 added the Common Subset test module 2018-05-15 15:44:47 +01: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 added the Common Subset test module 2018-05-15 15:44:47 +01:00
tests added the Common Subset test module 2018-05-15 15:44:47 +01: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]