Skip to content

Commit fbb5de1

Browse files
committed
engine: send only execution requests hash commitment instead of full requests
1 parent 48de028 commit fbb5de1

File tree

2 files changed

+15
-32
lines changed

2 files changed

+15
-32
lines changed

src/engine/openrpc/methods/payload.yaml

Lines changed: 9 additions & 19 deletions
Large diffs are not rendered by default.

src/engine/prague.md

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ This specification is based on and extends [Engine API - Cancun](./cancun.md) sp
2626

2727
### engine_newPayloadV4
2828

29-
Method parameter list is extended with `executionRequests`.
29+
Method parameter list is extended with `executionRequestsHash`.
3030

3131
#### Request
3232

@@ -35,9 +35,7 @@ Method parameter list is extended with `executionRequests`.
3535
1. `executionPayload`: [`ExecutionPayloadV3`](./cancun.md#executionpayloadv3).
3636
2. `expectedBlobVersionedHashes`: `Array of DATA`, 32 Bytes - Array of expected blob versioned hashes to validate.
3737
3. `parentBeaconBlockRoot`: `DATA`, 32 Bytes - Root of the parent beacon block.
38-
4. `executionRequests`: `Array of DATA` - List of execution layer triggered requests,
39-
each element of the list represents an SSZ encoded list of requests of a certain type as it is defined by [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685)
40-
Elements of the list **MUST** be ordered by `requestType` in ascending order.
38+
4. `executionRequestsHash`: `DATA`, 32 Bytes - Hash of execution layer triggered requests, defined by [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685)
4139

4240
#### Response
4341

@@ -49,14 +47,11 @@ This method follows the same specification as [`engine_newPayloadV3`](./cancun.m
4947

5048
1. Client software **MUST** return `-38005: Unsupported fork` error if the `timestamp` of the payload does not fall within the time frame of the Prague fork.
5149

52-
2. Given the `executionRequests`, client software **MUST** compute the execution requests commitment
53-
and incorporate it into the `blockHash` validation process.
54-
That is, if the computed commitment does not match the corresponding commitment in the execution layer block header,
55-
the call **MUST** return `{status: INVALID, latestValidHash: null, validationError: errorMessage | null}`.
50+
2. Client software **MUST** incorporate the given `executionRequestsHash` into the `blockHash` validation process. That is, if the computed hash does not match the corresponding hash in the `executionPayload`, the call **MUST** return `{status: INVALID, latestValidHash: null, validationError: errorMessage | null}`.
5651

5752
### engine_getPayloadV4
5853

59-
The response of this method is extended with the `executionRequests` field.
54+
The response of this method is extended with the `executionRequestsHash` field.
6055

6156
#### Request
6257

@@ -72,7 +67,7 @@ The response of this method is extended with the `executionRequests` field.
7267
- `blockValue` : `QUANTITY`, 256 Bits - The expected value to be received by the `feeRecipient` in wei
7368
- `blobsBundle`: [`BlobsBundleV1`](#BlobsBundleV1) - Bundle with data corresponding to blob transactions included into `executionPayload`
7469
- `shouldOverrideBuilder` : `BOOLEAN` - Suggestion from the execution layer to use this `executionPayload` instead of an externally provided one
75-
- `executionRequests`: `Array of DATA` - Execution layer triggered requests obtained from the `executionPayload` transaction execution.
70+
- `executionRequestsHash`: `DATA`, Bytes 32 - Hash of execution layer triggered requests obtained from the `executionPayload` transaction execution.
7671
* error: code and message set in case an exception happens while getting the payload.
7772

7873
#### Specification
@@ -81,9 +76,7 @@ This method follows the same specification as [`engine_getPayloadV3`](./cancun.m
8176

8277
1. Client software **MUST** return `-38005: Unsupported fork` error if the `timestamp` of the built payload does not fall within the time frame of the Prague fork.
8378

84-
2. The call **MUST** return `executionRequests` list representing execution layer triggered requests obtained from the `executionPayload` transaction execution.
85-
Each element of the list represents an SSZ encoded list of requests of a certain type as it is defined by [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685).
86-
Elements of the `executionRequests` list **MUST** be ordered by the `requestType` in ascending order.
79+
2. The call **MUST** return `executionRequestsHash` representing the corresponding execution layer header field triggered requests obtained from the `executionPayload` transaction execution.
8780

8881
### Update the methods of previous forks
8982

0 commit comments

Comments
 (0)