You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: simulation/docs/SimulatorModel.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -403,19 +403,23 @@ However, in the absence of an attacker, the simulator can simply use the existin
403
403
- Despite being unnecessary, having the RB header announce its second body EB would plausibly decrease the average latency of the EBs.
404
404
But that decrease should be _very_ minor; with the current overly-coarse multiplexer logic (see [Issue 453](https://github.com/input-output-hk/ouroboros-leios/issues/453)), the EB's `RelayHeader` will arrive immediately after the ChainSync header (which are small), except perhaps during severe congestion.
405
405
406
-
The Linear Leios simulator adds the following new variables, some of which also require some new threads.
406
+
The Linear Leios simulator adds the following new variables, some of which also require new threads.
407
407
408
408
-`relayLinearEBState`.
409
409
As a shortcut, the first Linear Leios simulator will instantiate `Relay` with `RelayHeader InputBlockId` and `InputBlock`.
410
410
This is because the IB specified in Short Leios has just a few small fields more than the EB specified in Linear Leios.
411
-
-`waitingForLedgerStateAndLinearEbVar` and `ledgerStateAndLinearEbVar`.
412
-
An RB that contains an EB cert can be adopted before that EB has been validated.
413
-
TODO but it still needs to be applied, which is much cheaper but not free
411
+
-`linearLedgerStateVar`, `waitingForLinearLedgerStateVar`, and `waitingForWaitingForLinearLedgerStateVar`.
412
+
An RB that contains an EB cert canot be validated without the the certified EB's ledger state.
413
+
However, that EB is necessarily certified, so its ledger state can be built comparatively cheaply now, but still not for free.
414
+
- The arrival of a Linear EB populates `waitingForWaitingForLinearLedgerStateVar` (and also `waitingForTipVar`; see below).
415
+
- The arrival of an RB populates `waitingForLinearLedgerStateVar`, which triggers the `waitingForWaitingForLinearLedgerStateVar` action to populate `linearLedgerStateVar` via the comparatively cheap `reapply` task.
414
416
-`waitingForTipVar`.
415
-
The Linear EB should be validated the first time its arrived and its parent RB is the tip of the node's selection.
417
+
The Linear EB should be validated the first time that both it has arrived and its parent RB is the tip of the node's selection.
416
418
-`linearEbsToVoteVar`.
417
419
Once a Linear EB has been validated, it should be voted for.
418
420
A new custom thread monitors this variable in addition to the clock, so that it can avoid issugin a vote too early or too late.
421
+
-`linearEbOfRb`.
422
+
A mapping from RB to its announced Linear EB _that has been validated_, which is needed when issuing an RB.
419
423
420
424
TODO block diffusion pipelining for both RBs and EBs
0 commit comments