Andreas Fackler
15cc6ffddd
Separate keys and key shares.
2018-07-18 14:44:35 +02:00
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