Commit Graph

48 Commits

Author SHA1 Message Date
Vladimir Komendantskiy 4b88759844 review comments 2018-07-17 18:27:28 +01:00
Vladimir Komendantskiy c6a0090859 removed cloning of FaultLog 2018-07-16 12:33:00 +01:00
Vladimir Komendantskiy db9191768b review comments 2018-07-13 22:53:44 +01:00
Vladimir Komendantskiy d7a2808774
Merge branch 'master' into vk-api-refactor66 2018-07-13 13:53:21 +01:00
Marc Brinkmann 5336fbe707 Added `RandomAdversary` and the necessary auxiliary functions.
Random adversaries are created for `broadcast` and `honey_badger`.  Random value generation was added for all type-dependencies of these algorithms, causing the `Rand` trait to be implement for a large portion of the codebase.

Additionally, `MessageWithSender` turned into an actual struct, making it much easier to handle. Tuple-like construction is still available through `MessageWithSender::new()`.
2018-07-13 13:27:49 +02:00
Vladimir Komendantskiy 7fb1017bb1 changed Step::output to Vec but that didn't fix the dynamic HB test 2018-07-12 21:23:52 +01:00
Vladimir Komendantskiy 1254d40147 fixed a starvation issue in Agreement when num_faulty=0 2018-07-12 15:12:06 +01:00
Vladimir Komendantskiy 0ba06fdb76 added step output in DistAlgorithm 2018-07-12 14:54:05 +01:00
c0gent f0ed2e6e12 Make `*HoneyBadger` types thread safe.
Replaces `Rc` with `Arc`. This allows usage from different threads
which will be necessary for use with Parity.
2018-07-11 16:28:41 -07:00
Peter van Nostrand 6783ece9b0 Added faulty node logging to algorithms. 2018-07-09 13:45:11 -04:00
Andreas Fackler 6248e4079f Fix Subset for a single validator. 2018-07-09 11:38:56 +02:00
Andreas Fackler c42f606644 Fix module docs. (Review comments.) 2018-07-05 17:51:55 +02:00
Andreas Fackler 2a30860bb0 Add agreement module-level docs. 2018-07-05 11:45:30 +02:00
Andreas Fackler bbc27e8a66 Update terminology: "observers" and "validators" 2018-07-02 14:14:19 +02:00
Andreas Fackler 7a0b397233 Add node transaction messages to Dynamic HB. 2018-07-02 14:14:19 +02:00
Andreas Fackler 2db67df325 Rename is_full_node to is_peer. 2018-06-26 10:57:44 +02:00
Andreas Fackler 2a5f9f1bfe Allow observer nodes in all algorithms.
This allows nodes to join the network without sending any messages
themselves. They can't give any input and just observe the outcome.

Closes #81
2018-06-26 09:17:12 +02:00
Vladimir Komendantskiy 7be2510e36 swapped False and True coins 2018-06-22 17:39:55 +01:00
Vladimir Komendantskiy 7a4fc37628 implemented an optimistic random common coin schedule 2018-06-22 10:39:55 +01:00
Andreas Fackler 83f8d61402 Support serde by default.
This removes the `serialization-serde` feature, since serde is already
used internally and therefore a dependency anyway.
2018-06-20 10:21:52 +02:00
Andreas Fackler 66f396e01c Remove more NodeUid trait bounds.
Use a `BTreeMap` instead of `HashMap` in `NetworkInfo`. The number of
nodes can't grow very large anyway.
2018-06-18 16:37:07 +02:00
Andreas Fackler 3f707a8e12 Return proposer info from HoneyBadger.
Also, consistently name generic arguments, and remove some unused trait
bounds.
2018-06-18 16:19:54 +02:00
Vladimir Komendantskiy 3ed63a1507 formatting 2018-06-14 14:10:05 +01:00
Vladimir Komendantskiy 82b4250f0d added the broadcast proposer ID in the common coin nonce 2018-06-14 13:36:48 +01:00
Vladimir Komendantskiy 994600bcf6 renamed a fn argument for readability 2018-06-14 12:43:18 +01:00
Vladimir Komendantskiy 3393052b4b review comment coverage 2018-06-14 12:28:38 +01:00
Vladimir Komendantskiy 5008d11ada Revert "the set of node indices of common coin shares is now computed only once"
This reverts commit e9808efc61.
2018-06-14 10:05:05 +01:00
Vladimir Komendantskiy e9808efc61 the set of node indices of common coin shares is now computed only once 2018-06-13 22:05:11 +01:00
Vladimir Komendantskiy 4dbef3968d fixed early update of Agreement epoch 2018-06-13 15:18:27 +01:00
Vladimir Komendantskiy d5794cb5fe extended the common coin nonce with a global UID and the top-level epoch 2018-06-13 15:18:27 +01:00
Vladimir Komendantskiy f4b6c90c8c added a queue of incoming common coin signature shares 2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy 94049e8636 fixed propagation of common coin messages to the top level 2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy 40eeee90fc protobuf serialization 2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy 122f1fc6f1 updated the tests with key initialisation 2018-06-13 15:15:41 +01:00
Vladimir Komendantskiy cf45a4e3cb common coin implementation 2018-06-13 15:15:41 +01:00
Vladimir Komendantskiy d1362ed500
Merge pull request #56 from poanetwork/vk-term-agreement
Added Term messages in Agreement and enabled early termination
2018-06-08 09:06:46 +01:00
Vladimir Komendantskiy dc4475ba82 for each node, never count both Aux and Term messages 2018-06-07 20:29:51 +01:00
Vladimir Komendantskiy 35d5ad106a added Term messages in Agreement and enabled early termination 2018-06-07 20:06:44 +01:00
Andreas Fackler f970272d3e Add bandwidth and CPU to the simulation. 2018-05-31 14:28:10 +02:00
Andreas Fackler bb61d0c5ab Ignore messages in Agreement after termination. 2018-05-30 17:33:24 +02:00
Vladimir Komendantskiy d09f3e26b4 introduced common shared network information 2018-05-29 14:53:01 +01:00
Vladimir Komendantskiy 2aac22f083 comment updates 2018-05-28 11:54:37 +01:00
Vladimir Komendantskiy 67c7bf4f8b updated protobuf serialisation 2018-05-24 19:11:56 +01:00
Vladimir Komendantskiy 111ed03a47 review comments taken into account 2018-05-24 18:52:58 +01:00
Vladimir Komendantskiy eef846550f added the ACS algorithm with one clause not ready yet 2018-04-26 14:22:18 +01:00
Vladimir Komendantskiy 9554c3c543 added GNU license and removed obsolete comments 2018-04-01 21:41:49 +01:00
Vladimir Komendantskiy c38aad2c0a Refactored the comms from the consensus node module
I reduced the socket IO tasks to mere message forwarders. The algorithm
complexity lies in stage modules. Example: broadcast/mod.rs. Communication is
set up and modules are run from the node module.

There is a problem with this commit. std:🧵:spawn imposes a static
lifetime guarantee on type T in Message<T>.
2018-03-19 17:12:20 +00:00
Vladimir Komendantskiy 5301123872 initial commit: elements of profobuf interface 2018-03-15 00:03:21 +00:00