Trace verification with sample trace

Params

A test setup requires parameters, which are bundled in the Params record. There are the network parameters, the identifier for the system under test (SUT) and there are the schedules for block production and voting in the field winning-slots. Note, in Linear Leios EBs are produced optionally together with an RB.

Additional Linear Leios parameters

Linear Leios has the following three protocol parameters

SpecStructure

In order to build a test trace, an implementation for the SpecStructure needs to be specified. For the test trace, we rely on the implementation provided in Test.Defaults.

TraceVerifier

EndorserBlocks that will be used in the test trace
Checking hash of EndorserBlocks
RankingBlocks that will be used in the test trace
Votes
Starting at slot 100

Build a test trace

slot: 100 101 102 103 104 105 106 107 108 109

            3* Lhdr    Lvote   Ldiff
          <---------> <-----> <------>
  ___|___|___|___|___|___|___|___|___|___|___

                     +---+
                     |VT₀|
                     +---+
     +---+             |             +---+
  <--|RB₁| <-----------+-------------|RB₂|<--
     |EB₁| <-----------+---+---------|CRT|
     +---+                 |         +---+
                           |
                         +---+
                         |VT₁|
                         +---+

Slot 100

Submitting transactions, Receiving RB₀

Slot 101

Receiving RB₁/EB₁ generated by party 1 in slot 100

Slot 102

Slot 103

Slot 104

The SUT is voting for EB₁ in this slot

Slot 105

Another vote is received

Slot 106

Slot 107

Slot 108

SUT is slot leader: create an EB and RB (implicit in Base₂-Action)

Slot 109

Verify the test-trace

Test error handling