-
Notifications
You must be signed in to change notification settings - Fork 44
View Graphs
At first glance, the visualizations that the CBC Casper Research Codebase displays can be a bit confusing. As such, it's worth walking through these visualizations for some of the protocols, step by step, as to make sense of them.
To start, we will walk through an execution of binary consensus. Specifically, we will have 3 nodes come to consensus on either a 0 or 1 by exchanging a series of messages.
This first picture is the start of the execution of our protocol. Each circle (node) at the bottom represents the "starting value" for a validator. From now on, you can think of all messages being generated in the straight line above this initial message being made by the same validator who created the initial message.
Furthermore, the label of either 0 or 1 on these initial messages represent the starting estimate of each of these validators. For example, validators one and two both started with estimate 0 while validator three started with estimate 1.
Now, let's have the first validator send a message to the second validator and then have the second validator generate a new message.
There is now a new node above the second validator. This node represents the new message that the validator created. This node is connected to two nodes: the starting message that the second node, and the first message of the first node.
These lines represent the [justification](link to an FAQ question about the justification). Each message has a justification, and it contains a commitment to the messages that a validator has seen previously. Thus, as a validator has clearly seen their own previous message, and was sent the initial message of the first validator, they also have seen this message as well (and thus decided to commit to it).
Finially, there's one more thing to note here: the validators changed