Is the binary consensus part in PARSEC virtuel?

Hey,

I pretty much read 80% of the PARSEC source code line by line to really get all the details. The main reason is that the whitepaper should be peer reviewed and pushed into the scientific space, like the AMS… But it needs to be rewritten first, as the meta election part is quite confusing. … I’m currently writing a review and send it to you once it is done.

One thing that is not clear to me is the following:

Are the values of estimate, bin_value, aux and decision computed only locall, i.e. virtual, or are they transmitted along events through the network? Regarding the original binary consensus of Raynal et al. at leat the est and aux value has to be sended…

This is never mentioned, neither in the paper, nor the video… I assume they are pure virtual, as they don’t appear in the struct PackedEvents. Maybe someone could elaborate on this. However I think this will not work. Est and Bin have to be sended. I would like to discuss that in detail, but I’m not sure where and with whom

P.S.: What is the best way for me to get in contact with the developers of PARSEC? I tried via email, but nothing yet. Its true that I don’t qualify as a reviewer once my identity is known to the authors of the paper, but it will be easy to get three other peer reviewers once the paper is written properly.

27 Likes

Hi @Andre_Gerome, will make sure this gets through to the right people (everyone’s on the Forum as well btw). Out of interest, could you let me know what email address you used as well please? Just want to make sure that it’s clear where/how people can get in touch about PARSEC if they’re not on the Forum.

5 Likes

The main reason is that the whitepaper should be peer reviewed and pushed into the scientific space, like the AMS… But it needs to be rewritten first, as the meta election part is quite confusing. …

Thanks for your honest feedback. I’ll give you that we could have an “extended version” that is more accessible without being deeply involved in the field, with more explanations of the concepts in plain english. It’s something I also thought when the paper got rejected from CESC because one reviewer thought it wasn’t accessible without prerequisite knowledge. Addressing this in a way or another is on our roadmap :slight_smile:

Are the values of estimate, bin_value, aux and decision computed only locall, i.e. virtual, or are they transmitted along events through the network? Regarding the original binary consensus of Raynal et al. at leat the est and aux value has to be sended…

Indeed, they’re all virtual in PARSEC. The mechanism is the same as in the original paper (minus common coin) but we’re doing this based on meta-votes (Do we think a given node’s observation should be considered when deciding the next stable events?). We do send the information needed to generate these virtual observations by gossiping all transactions to each other. (Gossip guarantees that each node will be able to construct the exact same DAG. You can prove the DAG you have is the same everyone else has received or will eventually receive up to the latest event you strongly see [that takes care of forks])

I’m definitely open to discussing these things with you. The forum is probably a good place since everyone can learn from the questions you’re asking. @bart is on holidays at the moment, but @qi_ma and @anon86652309 can probably chime in too with valuable insights :smiley:

Thanks a lot for dedicating your time to reviewing our work. :smiley: Looking forward to the conversation :slight_smile:

BTW. I don’t know which address you emailed but the email didn’t make it to me at least.

18 Likes

I used your mail adresses from github

1 Like

Regarding the virtual consensus, I don’t get, how say peer A knows the initial choice of est (their proposed values for the consensus) of all other peers =/= A… One requirement of BFT consensus is, that the decided value must be proposed at least by one honest peer. So we can not just start with an arbitrary value of est. But since we don’t communicate est values with other peers, we don’t know their initial decision. At least for the classical b-ABFT of Raynal et. al… So in PARSEC you start with what initial of est w.r.t a certain meta vote?

This corresponse to line (00) in Figure 2 of the original paper of Raynal

Sorry if this might be imprecise, I will get back to it later…

4 Likes

Hi @Andre_Gerome,

Have you seen the PARSEC RFC - in particular the graph? That helped me a lot in understanding the virtual voting.

To use that graph as an example to answer your question, let’s look at Bob’s series of events. When he creates his event b_4, by definition that one is his observer (the details of the definition can be found in the Definitions section).

Given that this is his observer event, that then begins to carry his virtual votes. Looking just at his meta vote relating to Dave (i.e. the answer to the question “Do I strongly see an interesting event from Dave”), Bob starts with an estimate of true.

In the original paper, this estimate would be communicated explicitly to all other peers (e.g. by broadcast/gossip), but we can see from the graph that all peers will eventually hold the same graph as far as b_4, and hence will also deduce that b_4 is Bob’s observer and then can derive the same initial estimate for Bob’s vote about Dave.

Does that help at all?

(btw, I did get your email yesterday, and was hoping to answer tonight - I’m just back from a week’s leave and am still catching up! :smiley: This forum is probably a better medium for these questions though, since they could be interesting to a lot of people, you’ll be likely to get an answer more quickly, and any mistakes I might make in replying will be caught and corrected!)

13 Likes

Yes, that might help… I will dive a little deeper and reply in a few day. Thanks so far

11 Likes

Thank you for your beautifully clarifying thread.

One question here, what do you mean by “interesting”? It’s neither in the paper nor RFC nor anywhere else.

(Crossposting with Understand if-how Parsec solves this problem, please explain/describe Parsec .)

1 Like

Sure?

2 Likes

We only started using the term after the RFC was published, and it came about as a way to simplify what we were describing in the definition of an observer event:

observer : the first gossip event created by a node X which can strongly see that GossipEvent s created by a supermajority of nodes can see a valid Block which is not yet stable. The Block that’s seen as valid may be different for different nodes

So basically, we should have defined “interesting event” as an event which makes a Block which is not yet stable become valid.

4 Likes