Nodes

The leaf event block of a node is a root. When an event block v can reach more than 2n/3 of the roots in the previous frames, v becomes a root.

https://arxiv.org/pdf/1810.10360.pdf

Example of roots

The following example shows a DAG of a network, which consists of 4 validators (Alice, Bob, Carol and Dave).

The label of each vertex is in the form [validator ID][frame number].[event sequence number]. The first letter represents validator’s ID. An upper case letter shows the event is a root. First number is frame number, and second number is event’s sequence number. For example, vertex ‘A1.01’ is an root event block (upper-case A), of validator Alice (A), at frame 1 and the event’s sequence number is 01.

Examples of the roots logic:

  • A1.01 is a root, because it is Alice’s first event.
  • a1.03 isn’t a root, because although it observes 3 roots at frame 1 (A1.01, C1.01, D1.01), it’s forkless caused only by 1 root at frame 1 (A1.01).
  • A2.04 is a root, because it’s forkless caused by at least 3 roots at frame 1 (A1.01, B1.01, D1.01). It receives new frame 2.

https://github.com/Fantom-foundation/go-opera/wiki/Lachesis#what-is-lachesis


Atropos

Atropos- root which was elected as a block head

An Atropos is assigned consensus time through the Lachesis consensus algorithm and is utilized for determining the order between event blocks.

Atropos blocks form a Main-chain, which allows time consensus ordering and responses to attacks. For any root set R in the frame **fi** , the time consensus algorithm checks whether more than **2n/3** roots in the frame **fi−1** selects the same value. However, each node selects one of the values collected from the root set in the previous frame by the time consensus algorithm and Reselection process.


🌱 Back to Garden