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: src/engine/specification.md
+17-4Lines changed: 17 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ This document specifies the Engine API methods that the Consensus Layer uses to
9
9
10
10
-[Underlying protocol](#underlying-protocol)
11
11
-[Versioning](#versioning)
12
+
-[Constants](#constants)
12
13
-[Message ordering](#message-ordering)
13
14
-[Load-balancing and advanced configurations](#load-balancing-and-advanced-configurations)
14
15
-[Errors](#errors)
@@ -59,13 +60,25 @@ The versioning of the Engine API is defined as follows:
59
60
* a set of structure fields
60
61
* The specification **MAY** reference a method or a structure without the version suffix e.g. `engine_executePayload`. These statements should be read as related to all versions of the referenced method or structure.
61
62
63
+
## Constants
64
+
65
+
| Name | Value |
66
+
| - | - |
67
+
|`MESSAGE_ORDER_RESET_ID`|`0`|
68
+
62
69
## Message ordering
63
70
64
-
Consensus Layer client software **MUST** utilize JSON-RPC request IDs that are strictly
65
-
increasing.
71
+
Consensus Layer client software **MUST** utilize JSON-RPC request IDs that are strictly increasing.
72
+
Request IDs assigned to `engine_forkchoiceUpdated` method calls **MUST** respect the order of
73
+
the corresponding fork choice update events occurring in the system.
74
+
75
+
Execution Layer client software **MUST NOT** process `engine_forkchoiceUpdated` method call
76
+
if its JSON-RPC request ID is lower than the ID assigned to the previous call of this method.
66
77
67
-
Execution Layer client software **MUST** execute calls strictly in the order of request IDs
68
-
to avoid degenerate race conditions.
78
+
Consensus Layer client software **SHOULD** use `MESSAGE_ORDER_RESET_ID` as initial value of request ID
79
+
to reset the ID cached by Execution Layer client software.
80
+
If the ID of a request equals to `MESSAGE_ORDER_RESET_ID`, Execution Layer client software **MUST** process this request
81
+
disregarding the ID of the previous one and use `MESSAGE_ORDER_RESET_ID` value as the latest previous request ID, effectively resetting the request ID event ordering.
0 commit comments