hyperledger-iroha / iroha-dco

Iroha - A simple, decentralized ledger
http://iroha.tech
Apache License 2.0
987 stars 296 forks source link

Yac gate propagates correct round to Synchronizer #2231

Open igor-egorov opened 5 years ago

igor-egorov commented 5 years ago

Signed-off-by: Igor Egorov igor@soramitsu.co.jp

Description of the Change

The case when a node is not voted yet but has received votes for a round is possible. That was a root cause of a rare issue, when a node was not switched to the next round (when reject commit message arrived). As a result, the whole network can stop working (if there are enough of that buggy peers).

The change brings the correct round number propagation from Yac gate to Synchronizer. Thus the peer goes to the correct round despite what was happen or received.

The new tests are created (yac_gate_test -> CommitFromTheFuture tests)

Benefits

Proper Yac gate behavior.

Possible Drawbacks

¯\(°_o)/¯

Usage Examples or Tests

yac_gate_test