Andreas Fackler
15cc6ffddd
Separate keys and key shares.
2018-07-18 14:44:35 +02: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
c42f606644
Fix module docs. (Review comments.)
2018-07-05 17:51:55 +02:00
Andreas Fackler
f05e087492
Improve mod docs (review comments).
2018-07-05 11:45:30 +02:00
Andreas Fackler
2a30860bb0
Add agreement module-level docs.
2018-07-05 11:45:30 +02:00
Andreas Fackler
daab0eb564
Add coin docs, change parity computation.
...
This makes the signature parity computation take into account all bits,
not just the last one of each byte.
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
2b4f77f11c
Avoid redundant key computations.
2018-06-27 14:47:05 +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
Andreas Fackler
e11f183db2
Remove generic E: Engine from crypto.
2018-06-22 10:08:23 +02: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
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
e116c6c171
added tests for the common coin
2018-06-13 15:17:11 +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
b6587a21e8
get_coin interface to Common Coin
2018-06-13 15:09:12 +01:00
Vladimir Komendantskiy
17dc9df78e
Common Coin module template; added keys in NetworkInfo
2018-06-13 15:09:12 +01:00