Commit Graph

492 Commits

Author SHA1 Message Date
Igor Barinov 39546476b6 Update README.md
Changed Travis-CI badge to org from com because we build it on travis-ci.org domain at the moment
2018-08-26 14:48:02 +02:00
Marc Brinkmann d459683288 Added commented-out `after_failure` commands to `.travis.yml` to debug `SIGILL` issues. 2018-08-26 14:47:19 +02:00
Andreas Fackler d93ea7b561 Rename CommonSubset to Subset. 2018-08-22 16:20:09 -07:00
Andreas Fackler 6bcf365cf8 Rename CommonCoin to Coin. 2018-08-22 16:20:09 -07:00
Andreas Fackler f7d4860a94 Fix DHB test: wait for lagging nodes.
The Dynamic Honey Badger tests would currently fail _without_ faulty
nodes, because with "first" delivery, all but the first _N - f_ nodes
are lagging indefinitely.

This change makes sure we give lagging nodes a chance to finish the first
phase of the test and arrive at the batch containing the completed
`Remove` event.
2018-08-14 12:08:34 +02:00
Andrew Gross f661e8ace3 Update links
link to threshold crypto
2018-08-12 12:26:33 -07:00
Andreas Fackler e4ddd6a079 Replace ring with tiny-keccak. 2018-08-10 09:23:27 +02:00
Andreas Fackler b90a7bf450 Replace merkle.rs with custom implementation. 2018-08-10 09:23:27 +02:00
Andreas Fackler b7fe494fad Fix build if secure env vars are unavailable. 2018-08-09 22:26:34 +02:00
c0gent ac39de66a8 Make refinements to SyncKeyGen error and fault handling. 2018-08-09 15:44:36 -04:00
DrPeterVanNostrand 8ab58d35d4 Added error handling for mlock errors in threshold_crypto crate. 2018-08-09 15:44:36 -04:00
Andreas Fackler 8cc60698db Move matches from EpochState to SubsetState. 2018-08-09 16:04:09 +02:00
Andreas Fackler e9b960d020 Fix and clean up the HoneyBadger impl.
* Remove unnecessary recursive method calls.
* Add `handle_message` (without the trait).
* Fix a bug where `handle_message_content` would create an `EpochState`
  with the wrong number.
2018-08-09 16:04:09 +02:00
Andreas Fackler df21cdcb07
Merge pull request #199 from poanetwork/afck-bc-split
Split up the broadcast module.
2018-08-09 09:38:40 +02:00
Andreas Fackler 5cc7b54c06 Split up the broadcast module.
Also, rename broadcast and agreement messages to just `Message`.
2018-08-08 15:46:43 +02:00
natalia 6d42d749c5 Added deploy key 2018-08-07 16:02:42 -07:00
Andreas Fackler b017311e49 Split out individual epochs from Honey Badger. 2018-08-06 10:50:30 -07:00
Andreas Fackler 46a8728792 Split out Threshold Decryption from Honey Badger. 2018-08-06 10:50:30 -07:00
Andreas Fackler 22ccb740f1
Merge pull request #187 from c0gent/c0gent-supertraits
Add common supertraits and rename related type parameters.
2018-08-03 11:13:40 +02:00
c0gent 697ba6f0a8
Add common supertraits and rename related type parameters.
* Add the `Contribution`, `NodeUidT`, and `Message` supertraits.
* Rename type parameters:
  * `Tx` -> `T` or `C`
  * `NodeUid` -> `N`
2018-08-02 14:52:12 -07:00
Nick Sanders b1aa82b1c9
Merge pull request #186 from c0gent/c0gent-mod-reorg
Reorganize `dynamic_honey_badger` and `agreement` modules slightly.

Redux.
2018-08-02 13:28:00 -07:00
c0gent f66dbdf3a1
Reorganize `dynamic_honey_badger` and `agreement` modules slightly.
* Move `CoinState` and `Agreement` definitions from `agreement/mod.rs`
  to `.../agreement.rs`.
* Move `DynamicHoneyBadger` definition from `dynamic_honey_badger/mod.rs`
  to `.../dynamic_honey_badger.rs`.
2018-08-02 13:01:57 -07:00
Nick Sanders 5b3522b48b
Merge pull request #185 from poanetwork/revert-184-c0gent-mod-reorg
Revert "Reorganize `dynamic_honey_badger` and `agreement` modules slightly."
2018-08-02 12:59:41 -07:00
Nick Sanders c5977d1ab8
Revert "Reorganize `dynamic_honey_badger` and `agreement` modules slightly." 2018-08-02 12:24:25 -07:00
Nick Sanders d74530004f
Merge pull request #184 from c0gent/c0gent-mod-reorg
Reorganize `dynamic_honey_badger` and `agreement` modules slightly.

* Some additional rustfmt-ing crept in due to me accidentally using a newer version.
2018-08-02 12:13:47 -07:00
c0gent 7824b7a0ea
Reorganize `dynamic_honey_badger` and `agreement` modules slightly.
* Move `CoinState` and `Agreement` definitions from `agreement/mod.rs`
  to `.../agreement.rs`.
* Move `DynamicHoneyBadger` definition from `dynamic_honey_badger/mod.rs`
  to `.../dynamic_honey_badger.rs`.
2018-08-02 11:24:15 -07:00
Andreas Fackler 4b854568f6
Merge pull request #182 from poanetwork/afck-agreement
Extract SBV broadcast from agreement.
2018-08-02 19:06:40 +02:00
Andreas Fackler dd31758bdf Extract SBV broadcast from agreement. 2018-08-02 12:55:17 +02:00
Andreas Fackler 572fa7b028
Merge pull request #180 from c0gent/c0gent-crypto-pub
Re-export `crypto`.
2018-08-01 19:18:48 +02:00
Andreas Fackler 071bfed00b
Merge pull request #179 from poanetwork/afck-qhb-single
Change the QHB criterion for moving on to the next epoch.
2018-08-01 19:18:31 +02:00
c0gent affa0eee37
Re-export `crypto`. 2018-08-01 09:56:36 -07:00
Andreas Fackler eeb519862f Simplify Honey Badger tests and example. 2018-08-01 18:52:32 +02:00
Andreas Fackler d19afc2634 Change the QHB criterion for moving on to the next epoch.
`QueueingHoneyBadger` now waits after an output, and only makes its
proposal for the next epoch when:

* there are pending transactions in the queue,
* there are pending key generation or vote messages, or
* _f + 1_ other validators have already made their proposal.

This rule should work well for small networks: With 1 - 3 nodes, it will
produce a new batch whenever at least one of them has transactions to
contribute. In larger networks, it prevents an adversary controlling _f_
nodes from producing lots of empty epochs.

An exception is made for a currently joining validator: We will commit
up to _(N + 1)² + 1_ key generation messages for them, which is the
maximum number a correct node will send.
2018-08-01 18:52:32 +02:00
Andreas Fackler b3e1452a3a
Merge pull request #178 from poanetwork/afck-hb-split
Split honey_badger into submodules.
2018-08-01 18:50:42 +02:00
Andreas Fackler 5591f5ebd0 Split honey_badger into submodules. 2018-08-01 09:56:18 +02:00
Andreas Fackler 7c66ef06ee
Merge pull request #172 from poanetwork/vk-crypto-crate
crypto module moved into its own crate
2018-07-31 22:26:19 +02:00
Vladimir Komendantskiy 062b7150e1
Merge pull request #173 from poanetwork/afck-hb-clear-cs
Fix removal of terminated CS instances in HB.
2018-07-31 15:15:54 +01:00
Vladimir Komendantskiy 6753c12b7c formatting 2018-07-31 12:15:05 +01:00
Vladimir Komendantskiy 77ed1d50d4 separated crypto module into its own crate 2018-07-31 12:15:05 +01:00
Vladimir Komendantskiy 0e7055f8eb
Merge pull request #177 from poanetwork/afck-no-protobuf
Remove protobuf support.
2018-07-31 12:12:26 +01:00
Andreas Fackler 47c00016be Remove protobuf support. 2018-07-31 11:58:44 +02:00
Vladimir Komendantskiy 47ab6eb7df
Merge pull request #174 from poanetwork/afck-bin-values
Represent BinValues as a u8; rename to BoolSet.
2018-07-31 09:06:27 +01:00
Andreas Fackler c448e057f8 Rename BinValues to BoolSet. 2018-07-31 09:42:30 +02:00
Andreas Fackler 4159acf8cd Represent BinValues as a u8. 2018-07-31 09:39:51 +02:00
Andreas Fackler fa45b1fc39
Merge pull request #166 from c0gent/c0gent-error-fail
Replace `chain_error` with `failure`
2018-07-31 09:29:24 +02:00
c0gent 847a79793e
Replace `chain_error` with `failure`
Changes:

* Remove `error_chain` and convert errors to `failure` types.
* Add variants for each possible error generation point.
2018-07-30 15:14:19 -07:00
Andreas Fackler 8346085fb9 Fix removal of terminated CS instances in HB. 2018-07-30 15:02:20 +02:00
Vladimir Komendantskiy 649353b999
Merge pull request #171 from poanetwork/afck-agreement
Fix agreement bugs, and refactor a few fields.
2018-07-30 12:35:47 +01:00
Andreas Fackler 78ab9742a9 Avoid heap allocation in BinValues::into_iter. 2018-07-30 13:08:17 +02:00
Andreas Fackler 8beab3d2b4 Log duplicate agreement messages as faults. 2018-07-30 12:04:28 +02:00