Commit Graph

8 Commits

Author SHA1 Message Date
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 eec3102cbf Move node to examples, deduplicate code. 2018-05-05 17:54:29 +02:00
Andreas Fackler 6117e11a9e applied rustfmt 2018-04-30 18:55:51 +03:00
Andreas Fackler f399ed2c07 fixed Clippy lint warnings 2018-04-30 18:50:24 +03:00
Vladimir Komendantskiy b776087b26 removed redundant type constraint 2018-04-11 15:44:59 +01:00
Vladimir Komendantskiy ef2ec016e4 node indexing fixes and more logging to debug messaging issues 2018-04-04 12:18:57 +01:00
Vladimir Komendantskiy e01a80dfa7 introduced a Connection struct and a procedure to start the network 2018-04-01 22:29:12 +01:00
Vladimir Komendantskiy 264b72011c added example of intended use of Node and a draft of value encryption 2018-03-27 21:59:38 +01:00