Commit Graph

12 Commits

Author SHA1 Message Date
Andreas Fackler 15cc6ffddd Separate keys and key shares. 2018-07-18 14:44:35 +02:00
Peter van Nostrand a86f6666b5 Clear 'Poly' and 'BivarPoly' coeffs on drop. 2018-07-16 09:38:27 -04:00
Marc Brinkmann 3e19b01f1f Tweak CI, now runs stable.
The following changes have been made to the Travis CI:

* The cache timeout has been increased, before builds would spend three minutes trying to cache something before giving up.
* The toolchain for building and testing has been switched to stable. A nightly version is still used to run `clippy` and `rustfmt`; however in both cases the toolchain binaries are used instead of compiling them from scratch.
* The `cargo check` pass has been removed; it simply tested whether or not the crate compiled against stable before compiling again against release. As there very, very few bugs that will cause a mismatch here (differences will be in execution), a trade-off was made in favor of compiling only once.
2018-07-16 09:34:28 +02:00
Peter van Nostrand 04f654ff31 Removed protoc installation from CI setup. 2018-07-14 07:46:15 -04:00
Marc Brinkmann 1107e54771 Show `rustfmt` version in CI to make it easier to hit the correct version in your local dev environment. 2018-07-05 17:29:04 +02:00
Vladimir Komendantskiy 87485c2eb1 optimised tests to execute faster - needed by pairing computations 2018-06-13 15:18:27 +01:00
Andreas Fackler 0017a2a7c0 Make public keys and signatures serializable. 2018-05-30 10:08:43 +02:00
Andreas Fackler 9a0622f3f2 Update Rust, re-enable rustfmt. 2018-05-21 11:26:42 +02:00
Andreas Fackler e2c66e9a0a Add optional serde support.
If the feature "serialization-serde" is specified, protocol messages
implement serde's `Serialize` and `Deserialize` traits.

Close #18
2018-05-14 18:32:59 +02:00
Andreas Fackler e8838f1491 Make protobuf support optional.
Protobuf support is now only built if the feature
"serialization-protobuf" is enabled.

Close #19
2018-05-14 17:29:04 +02:00
Andreas Fackler b98bbe9dcd Fix broadcast and example, enable more tests.
This fixes several issues with the broadcast algorithm and enables the
previously ignored tests that now pass:
* Don't decide on a root hash based on anyone's `Echo` message.
* Work around the `merkle` crate's inability to produce the proof of the
  `i`-th leaf for a given index `i`.
* Ignore messages from unknown nodes.
* Avoid decoding multiple times.
* Document the full algorithm.
* Don't count multiple `Echo` or `Ready` messages coming from the same
  node.
* Fix index computation for a given proof.
* Move `BroadcastMessage` into `broadcast` to make the module more
  self-contained.

The example now only executes a single broadcast instance, expecting the
first node (the one with the lexicographically lowest address) to
propose a value. A shell script is added that runs for example nodes.

Use env_logger instead of simple_logger, so the log level can be controlled
with an environment variable. You can e.g. log all output from the broadcast
test and the crate itself in debug mode with:
RUST_LOG=hbbft=debug,broadcast=debug

Some debugging messages are more concise now and use hexadecimal
notation instead of printing arrays of decimal values.

An indentation error in the Travis script is also fixed.
2018-05-08 17:04:38 +02:00
Andreas Fackler 7826987af1 added a Travis configuration file, fixed Clippy lints 2018-05-05 09:53:29 +02:00