diff --git a/TODO b/TODO new file mode 100644 index 0000000..e79c0e1 --- /dev/null +++ b/TODO @@ -0,0 +1,12 @@ +TODO +==== + +* Fix the inappropriate use of Common Coin in the Byzantine Agreement protocol + + This bug is explained in https://github.com/amiller/HoneyBadgerBFT/issues/59 + where a solution is suggested introducing an additional type of message, + CONF. + + There may be alternative solutions, such as using a different Byzantine + Agreement protocol altogether, for example, + https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Distributed%20Computation/BYZANTYNE%20AGREEMENT%20MADE%20TRIVIAL.pdf \ No newline at end of file diff --git a/proto/message.proto b/proto/message.proto index 92ae378..5b07082 100644 --- a/proto/message.proto +++ b/proto/message.proto @@ -1,53 +1,52 @@ syntax = "proto3"; message MessageProto { - oneof payload { - BroadcastProto broadcast = 1; - AgreementProto agreement = 2; - } + oneof payload { + BroadcastProto broadcast = 1; + AgreementProto agreement = 2; + } } message BroadcastProto { - oneof payload { - ValueProto value = 1; - EchoProto echo = 2; - ReadyProto ready = 3; - } + oneof payload { + ValueProto value = 1; + EchoProto echo = 2; + ReadyProto ready = 3; + } } message ValueProto { - ProofProto proof = 1; + ProofProto proof = 1; } message EchoProto { - ProofProto proof = 1; + ProofProto proof = 1; } message ReadyProto { - bytes root_hash = 1; + bytes root_hash = 1; } message ProofProto { - bytes root_hash = 1; - LemmaProto lemma = 2; - bytes value = 3; + bytes root_hash = 1; + LemmaProto lemma = 2; + bytes value = 3; } message LemmaProto { - bytes node_hash = 1; - LemmaProto sub_lemma = 2; - - oneof sibling_hash { - bytes left_sibling_hash = 3; - bytes right_sibling_hash = 4; - } + bytes node_hash = 1; + LemmaProto sub_lemma = 2; + oneof sibling_hash { + bytes left_sibling_hash = 3; + bytes right_sibling_hash = 4; + } } message AgreementProto { - uint32 epoch = 1; - oneof payload { - bool bval = 2; - bool aux = 3; - } + uint32 epoch = 1; + oneof payload { + bool bval = 2; + bool aux = 3; + } } \ No newline at end of file