Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 4 additions & 16 deletions src/engine/specification.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,25 +60,13 @@ The versioning of the Engine API is defined as follows:
* a set of structure fields
* 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.

## Constants

| Name | Value |
| - | - |
| `MESSAGE_ORDER_RESET_ID` | `0` |

## Message ordering

Consensus Layer client software **MUST** utilize JSON-RPC request IDs that are strictly increasing.
Request IDs assigned to `engine_forkchoiceUpdated` method calls **MUST** respect the order of
the corresponding fork choice update events occurring in the system.

Execution Layer client software **MUST NOT** process `engine_forkchoiceUpdated` method call
if its JSON-RPC request ID is lower than the ID assigned to the previous call of this method.
Consensus Layer client software **MUST** respect the order of the corresponding fork choice update events
when making calls to the `engine_forkchoiceUpdated` method.

Consensus Layer client software **SHOULD** use `MESSAGE_ORDER_RESET_ID` as initial value of request ID
to reset the ID cached by Execution Layer client software.
If the ID of a request equals to `MESSAGE_ORDER_RESET_ID`, Execution Layer client software **MUST** process this request
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.
Execution Layer client software **MUST** process `engine_forkchoiceUpdated` method calls
in the same order as they have been received.

## Load-balancing and advanced configurations

Expand Down