Skip to content

View Graphs

naterush edited this page Mar 3, 2018 · 1 revision

View Graphs, Explained

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.

Binary Consensus

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.

Insert picture of starting screen

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.

Insert picture of one more message being created.

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