hbbft
hbbft copied to clipboard
Move some `agreement` logic into submodules.
The Agreement
implementation is pretty convoluted, even though some parts of it could be split out and have a somewhat well-defined contract by themselves. E.g. the BVal
round is called "Binary-value Broadcast", and together with Aux
"Synchronized Binary-value Broadcast" in https://hal.archives-ouvertes.fr/hal-01176110/document.
Maybe we should also factor out AgreementEpoch
, to split the epoch management and dispatching from the main part of the logic, and to avoid clearing all those fields individually. (That makes it easy to forget one.)
I'd love to see this API refined and clarified :)
Unassigning but not closing this for now. It would be good to make a decision about #198 before we continue with refactoring this module.