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: sim-rs/implementations/LINEAR_LEIOS.md
+11-3Lines changed: 11 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,13 +11,21 @@ Whenever a node creates an RB, it also creates an EB. The RB header contains a r
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
14
-
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 (note that this should be redundant based on the procedure below).
15
-
16
14
When a node receives an EB body, it runs lightweight validation and then propagates the body to peers. After this lightweight validation, it runs more expensive complete validation (presumably at the TX level) before voting.
17
15
18
16
To detect equivocation, a node will wait until at least `3 * Δhdr` after an EB was generated before voting for it.
19
17
20
-
When voting, a node runs a VRF lottery to decide how many times it can vote for that EB; if it has any votes, it will transmit them to all peers. If the EB has been certified after `L_vote` + `L_diff` slots have passed, the node removes all of its transactions from the mempool (under the assumption that the EB will make it on-chain).
18
+
When voting, a node runs a VRF lottery to decide how many times it can vote for that EB; if it has any votes, it will transmit them to all peers.
19
+
20
+
## Mempool behavior
21
+
22
+
When a node creates an RB, it will follow these steps in order:
23
+
1. Try to produce a cert for the parent RB's EB.
24
+
1. If this succeeds, remove all of this EB's transactions from its mempool.
25
+
2. Fill the RB body with transactions from its mempool
26
+
3. Create a new EB, filled with transactions from its mempool WITHOUT removing those transactions from the mempool.
27
+
28
+
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.
0 commit comments