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
* sim-rs: fix warnings from rust 1.89
* sim-rs: use latest CIP timings
* sim-rs: RBs don't have both TXs and endorsements
* sim-rs: do not produce empty EBs
* sim-rs: update linear leios docs
* sim-rs: bump version to 1.3.0
Copy file name to clipboardExpand all lines: sim-rs/implementations/LINEAR_LEIOS.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ The log file schema is currently identical to every other variant (though `pipel
7
7
8
8
## Description
9
9
10
-
Whenever a node creates an RB, it also creates an EB. The RB header contains a reference to this new EB. If the RB producer has a certificate for the parent RB’s EB, it will include that certificate in the RB body.
10
+
Whenever a node creates an RB, it also has an opportunity to create an EB (though it will not produce empty EBs). The RB header contains a reference to this new EB. If the RB producer has a certificate for the parent RB’s EB, and at least `3 * Δhdr + L_vote + L_diff` has passed since that RB was created, it will include that certificate in the RB body.
11
11
12
12
RB headers are diffused separately from bodies. When a node receives an RB header, it checks whether that RB should be the new head of its chain. If so, it will request the RB body and the referenced EB (from the first peer which announces them).
13
13
@@ -36,17 +36,17 @@ A node will wait at least `3 * Δhdr` after an EB was created before voting for
36
36
For a node to vote for an EB, all of the following must be true.
37
37
- The RB which announced that EB is currently the head of that node's chain.
38
38
- The node received the relevant RB header at most `Δhdr` after it was created.
39
-
- The node received the EB body itself at most `L_vote` after it was created.
39
+
- The node finished validating the EB body itself at most`3 * Δhdr` +`L_vote` after it was created.
40
40
41
41
## Mempool behavior
42
42
43
43
When a node creates an RB, it will follow these steps in order:
44
44
1. Try to produce a cert for the parent RB's EB.
45
45
1. If this succeeds, remove all of this EB's transactions from its mempool.
46
-
2. Create an empty RB and empty EB.
46
+
2. Create an empty RB.
47
47
3. If we have received and fully validated the RB, along with all referenced transactions,
48
48
1. Fill the RB body with transactions from our mempool
49
-
2.Fill the EB with transactions from our mempool WITHOUT removing those transactions from the mempool.
49
+
2.Build an EB with transactions from our mempool WITHOUT removing those transactions from the mempool.
50
50
51
51
When a node receives an RB body, it immediately removes all referenced/conflicting transactions from its mempool. If the RB has an EB certificate, it also removes that EB’s transactions from its mempool. If the certified EB arrives after the RB body, we remove its TXs from the mempool once it arrives.
0 commit comments