Andreas Fackler
ca65a014d6
Use an unambiguous name for proposer ID.
2018-05-19 17:17:02 +02:00
Andreas Fackler
ab89dabde9
Add a few explaining comments.
2018-05-19 17:10:30 +02:00
Andreas Fackler
b8a2463d1c
Extend tests and fix CommonSubset.
...
Verify termination and more outputs.
`CommonSubset` now instantiates `Agreement` with the correct ID.
2018-05-19 15:56:49 +02:00
Andreas Fackler
8a406dd154
Merge pull request #33 from poanetwork/vk-testnetwork-commonsubset
...
ported Common Subset tests to TestNetwork
2018-05-19 10:45:23 +02:00
Vladimir Komendantskiy
fced73459e
upgraded the protobuf dependency to fix a compile error
2018-05-18 22:45:18 +01:00
Vladimir Komendantskiy
962a618ffd
ported Common Subset tests to TestNetwork
2018-05-18 22:04:09 +01:00
Vladimir Komendantskiy
e4843b496f
Merge pull request #32 from poanetwork/afck-no-protoc
...
Remove protoc dep, use new MerkleTree methods, fix Agreement.
2018-05-18 14:31:00 +01:00
Andreas Fackler
d5f9c4d40d
Fix Agreement and re-enable HoneyBadger test.
2018-05-17 17:38:45 +02:00
Andreas Fackler
50d007b954
Remove protoc dep, use new MerkleTree methods.
2018-05-17 16:50:47 +02:00
Vladimir Komendantskiy
01e89a7c48
Merge pull request #31 from poanetwork/afck-benchmark
...
Add a network simulation example.
2018-05-17 12:50:06 +01:00
Andreas Fackler
500ec81b2f
Add a network simulation example.
2018-05-17 12:52:07 +02:00
Andreas Fackler
31ec37630f
Merge pull request #30 from poanetwork/vk-dist-algo-agreement
...
The BA module now defines a DistAlgorithm instance
2018-05-17 12:51:47 +02:00
Vladimir Komendantskiy
a0627b2550
review comments taken
2018-05-17 11:36:09 +01:00
Vladimir Komendantskiy
ca49f4041b
fixed the outdated code in Agreement test
2018-05-17 11:27:31 +01:00
Vladimir Komendantskiy
c8c8e1bb1f
added a latch for the decided value in Agreement to remember the output value
2018-05-17 10:43:56 +01:00
Vladimir Komendantskiy
0c386276b1
defined a DistAlgorithm instance of Agreement
2018-05-16 22:50:23 +01:00
Vladimir Komendantskiy
4b0eebf299
Merge pull request #28 from poanetwork/afck-testnet
...
Generalize TestNetwork and test HoneyBadger.
2018-05-16 15:57:19 +01:00
Andreas Fackler
4164af1702
Generalize TestNetwork and test HoneyBadger.
2018-05-16 16:21:30 +02:00
Andreas Fackler
f390b4d141
Merge pull request #26 from poanetwork/vk-common-subset-test
...
Common Subset test and fixes
2018-05-16 12:48:33 +02:00
Vladimir Komendantskiy
21b898d8e0
dispatch targeted messages in the Common Subset message handling routine
2018-05-16 11:21:53 +01:00
Vladimir Komendantskiy
5f916c4d08
formatting and lint check
2018-05-15 22:25:41 +01:00
Vladimir Komendantskiy
c8034da332
corrected the CommonSubset module and test to decide on a map of values insetead of a set
2018-05-15 18:18:05 +01:00
Vladimir Komendantskiy
ff3e819a4f
a better check for when bin_values becomes non-empty
2018-05-15 16:00:37 +01:00
Vladimir Komendantskiy
322373a5ae
started using the set of sent agreement values
2018-05-15 15:47:54 +01:00
Vladimir Komendantskiy
eadd233fe4
added the Common Subset test module
2018-05-15 15:44:47 +01:00
Vladimir Komendantskiy
2dfbc2c58d
Merge pull request #21 from poanetwork/afck-algo-trait
...
Define a common DistAlgorithm trait.
2018-05-15 15:43:19 +01:00
Andreas Fackler
66898aee30
In agreement, set sent_bval correctly.
2018-05-15 16:15:41 +02:00
Andreas Fackler
b8c534da2b
Rename has_output to decided, add output iterator.
2018-05-15 16:05:55 +02:00
Andreas Fackler
3895949cf6
Fix broadcast for size < 4, and test more network sizes.
2018-05-15 15:53:37 +02:00
Andreas Fackler
10d9aa73e3
Rename UnexpectedMessage error.
2018-05-15 15:48:43 +02:00
Andreas Fackler
5528fc2de8
Define a common DistAlgorithm trait.
...
This will allow us to deduplicate network simulations in tests for the
different algorithms. More generally, it facilitates writing general
tools and applying them to all distributed algorithms.
2018-05-15 15:48:43 +02:00
Vladimir Komendantskiy
93a6ce1bb4
Merge pull request #22 from poanetwork/afck-protobuf
...
Make protobuf support optional, add serde support.
2018-05-15 12:27:58 +01:00
Andreas Fackler
b543b771a7
Rename util to fmt.
2018-05-15 08:31:13 +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
faab03d984
Merge pull request #16 from poanetwork/vk-test-agreement
...
Binary Agreement test module
2018-05-14 14:05:15 +02:00
Vladimir Komendantskiy
c1a03c28d1
updated comment and fn name
2018-05-14 12:36:00 +01:00
Vladimir Komendantskiy
50ba18b0dd
reduced the set of proposers to 1
2018-05-14 12:36:00 +01:00
Vladimir Komendantskiy
9043b1102f
formatting
2018-05-14 12:35:28 +01:00
Vladimir Komendantskiy
8091b6cc1d
corrected the test message handling loop termination condition
2018-05-14 12:35:28 +01:00
Vladimir Komendantskiy
a20ee74254
added a test for Binary Agreement with 4 proposers
2018-05-14 12:35:28 +01:00
Vladimir Komendantskiy
3d977c8575
Merge pull request #15 from poanetwork/afck--honey-badger
...
Start implementing the top-level Honey Badger algorithm.
2018-05-14 12:20:32 +01:00
Andreas Fackler
71fa32c18f
Remove interior mutability.
...
The `RwLock` is not needed anymore, since the broadcast implementation
doesn't handle any threading internally.
2018-05-14 09:35:34 +02:00
Andreas Fackler
0d005ebdc9
Fix build with protobuf 1.6.0.
...
Protobuf made backwards-incompatible changes but didn't increment the
major version, thus breaking the build.
2018-05-12 16:33:54 +02:00
Andreas Fackler
38cdd596a2
Start implementing the top-level Honey Badger algorithm.
...
This also contains a few fixes for the `common_subset` module:
* Rename `common_subset::Output` to `Message` to avoid confusing it
with the value that the algorithm outputs as a result.
* Implement dispatch of messages to the right instance within
`CommonSubset`, in a way that is transparent to the user.
2018-05-12 16:09:07 +02:00
Vladimir Komendantskiy
a83536dc6f
Merge pull request #14 from poanetwork/afck--types
...
Simplify the message types.
2018-05-10 17:23:08 +01:00
Andreas Fackler
36183b1e27
Simplify the message types.
2018-05-10 17:52:12 +02:00
Andreas Fackler
d9febca3c3
Merge pull request #11 from poanetwork/vk-agreement
...
The ACS and BA algorithms
2018-05-10 14:00:45 +02:00
Vladimir Komendantskiy
57ff64cce0
correction: Agreement outputs a value only once
2018-05-10 12:44:33 +01:00
Vladimir Komendantskiy
68e6a7ae2d
added the missing agreement broadcast message on epoch change
2018-05-10 12:33:01 +01:00