added a TODO file and changed indentation in the .proto file

This commit is contained in:
Vladimir Komendantskiy 2018-05-07 18:28:22 +01:00
parent 5215156ec5
commit 2205f9083e
2 changed files with 38 additions and 27 deletions

12
TODO Normal file
View File

@ -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

View File

@ -1,53 +1,52 @@
syntax = "proto3"; syntax = "proto3";
message MessageProto { message MessageProto {
oneof payload { oneof payload {
BroadcastProto broadcast = 1; BroadcastProto broadcast = 1;
AgreementProto agreement = 2; AgreementProto agreement = 2;
} }
} }
message BroadcastProto { message BroadcastProto {
oneof payload { oneof payload {
ValueProto value = 1; ValueProto value = 1;
EchoProto echo = 2; EchoProto echo = 2;
ReadyProto ready = 3; ReadyProto ready = 3;
} }
} }
message ValueProto { message ValueProto {
ProofProto proof = 1; ProofProto proof = 1;
} }
message EchoProto { message EchoProto {
ProofProto proof = 1; ProofProto proof = 1;
} }
message ReadyProto { message ReadyProto {
bytes root_hash = 1; bytes root_hash = 1;
} }
message ProofProto { message ProofProto {
bytes root_hash = 1; bytes root_hash = 1;
LemmaProto lemma = 2; LemmaProto lemma = 2;
bytes value = 3; bytes value = 3;
} }
message LemmaProto { message LemmaProto {
bytes node_hash = 1; bytes node_hash = 1;
LemmaProto sub_lemma = 2; LemmaProto sub_lemma = 2;
oneof sibling_hash {
bytes left_sibling_hash = 3;
bytes right_sibling_hash = 4;
}
oneof sibling_hash {
bytes left_sibling_hash = 3;
bytes right_sibling_hash = 4;
}
} }
message AgreementProto { message AgreementProto {
uint32 epoch = 1; uint32 epoch = 1;
oneof payload { oneof payload {
bool bval = 2; bool bval = 2;
bool aux = 3; bool aux = 3;
} }
} }