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
* Change CPU model of linear leios
* Implement actual voting rules
* Variant: linear leios with TX references
* Update schema with new task type
* Update docs
Copy file name to clipboardExpand all lines: data/simulation/config.schema.json
+11-1Lines changed: 11 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,8 @@
78
78
"full",
79
79
"full-without-ibs",
80
80
"full-with-tx-references",
81
-
"linear"
81
+
"linear",
82
+
"linear-with-tx-references"
82
83
],
83
84
"type": "string"
84
85
},
@@ -154,6 +155,12 @@
154
155
"properties": {},
155
156
"type": "number"
156
157
},
158
+
"eb-body-validation-cpu-time-ms-constant": {
159
+
"type": "number"
160
+
},
161
+
"eb-body-validation-cpu-time-ms-per-byte": {
162
+
"type": "number"
163
+
},
157
164
"eb-diffusion-max-bodies-to-request": {
158
165
"additionalProperties": false,
159
166
"description": "Only supported by Haskell simulation.",
@@ -182,6 +189,9 @@
182
189
"eb-generation-probability": {
183
190
"type": "number"
184
191
},
192
+
"eb-header-validation-cpu-time-ms": {
193
+
"type": "number"
194
+
},
185
195
"eb-max-age-for-relay-slots": {
186
196
"additionalProperties": false,
187
197
"description": "The maximum age of EBs to be relayed.\n\nAn EB from slot `s` will only be relayed\nup to slot `s+eb-max-age-for-relay-slots`.\n\nOnly supported by Haskell simulation.",
Copy file name to clipboardExpand all lines: sim-rs/LINEAR_LEIOS.md
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,7 @@
1
1
# Linear Leios (rust simulation)
2
2
3
-
To run it, set `leios-variant` to `linear`.
3
+
To run Linear Leios with entire transactions stored in EBs, set `leios-variant` to `linear`.
4
+
To run Linear Leios with transaction references stored in EBs, set `leios-variant` to `linear-with-tx-references`.
4
5
5
6
The log file schema is currently identical to every other variant (though `pipeline` is always 0).
6
7
@@ -12,7 +13,9 @@ RB headers are diffused separately from bodies. When a node receives an RB heade
12
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).
14
15
15
-
When a node receives an EB body, it immediately 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).
16
+
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
+
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. 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).
16
19
17
20
## New parameters
18
21
@@ -21,6 +24,9 @@ When a node receives an EB body, it immediately runs a VRF lottery to decide how
21
24
|`linear-vote-stage-length-slots`|How many slots the EB voting stage is allowed to last. For equivocation protection, this should be at least 3 * delta_hdr (which is currently 1 second).|5|
22
25
|`linear-diffuse-stage-length-slots`|How many slots are votes allowed to diffuse.|5|
23
26
|`eb-body-avg-size-bytes`|If `simulate-transactions` is false, this controls the size of the EBs we generate.|0|
27
+
|`eb-header-validation-cpu-time-ms`|The time taken to validate an EB _before_ we propagate it to peers|50.0|
28
+
|`eb-body-validation-cpu-time-ms-constant`|The time taken to validate the transactions in an EB _after_ we propagate it to peers.|50.0|
29
+
|`eb-body-validation-cpu-time-ms-per-byte`|The time taken to validate the transactions in an EB _after_ we propagate it to peers.|50.0|
24
30
|`vote-generation-cpu-time-ms-per-tx`|A per-transaction CPU cost to apply when generating new vote bundles.|0|
0 commit comments