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
-[Update the methods of previous forks](#update-the-methods-of-previous-forks)
30
36
31
37
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
32
38
@@ -64,6 +70,13 @@ The fields are encoded as follows:
64
70
65
71
All of the above three arrays **MUST** be of same length.
66
72
73
+
### BlobAndProofV1
74
+
75
+
The fields are encoded as follows:
76
+
77
+
-`blob`: `DATA` - `FIELD_ELEMENTS_PER_BLOB * BYTES_PER_FIELD_ELEMENT = 4096 * 32 = 131072` bytes (`DATA`) representing a SSZ-encoded `Blob` as defined in [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844).
78
+
-`proof`: `DATA` - `KZGProof` as defined in [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), 48 bytes (`DATA`).
79
+
67
80
### PayloadAttributesV3
68
81
69
82
This structure has the syntax of [`PayloadAttributesV2`](./shanghai.md#payloadattributesv2) and appends a single field: `parentBeaconBlockRoot`.
@@ -170,6 +183,36 @@ Refer to the specification for [`engine_getPayloadV2`](./shanghai.md#engine_getp
170
183
171
184
5. Client software **MAY** use any heuristics to decide whether to set `shouldOverrideBuilder` flag or not. If client software does not implement any heuristic this flag **SHOULD** be set to `false`.
172
185
186
+
### engine_getBlobsV1
187
+
188
+
Consensus layer clients **MAY** use this method to fetch blobs from the execution layer blob pool.
189
+
190
+
*Note*: This is a new optional method introduced after Cancun. It is defined here because it is backwards-compatible with Cancun.
191
+
192
+
#### Request
193
+
194
+
* method: `engine_getBlobsV1`
195
+
* params:
196
+
1.`Array of DATA`, 32 Bytes - Array of blob versioned hashes.
197
+
* timeout: 1s
198
+
199
+
#### Response
200
+
201
+
* result: `Array of BlobAndProofV1` - Array of [`BlobAndProofV1`](#BlobAndProofV1), items of which may be `null`.
202
+
* error: code and message set in case an error occurs during processing of the request.
203
+
204
+
#### Specification
205
+
206
+
1. Given an array of blob versioned hashes client software **MUST** respond with an array of `BlobAndProofV1` objects with matching versioned hashes, respecting the order of versioned hashes in the input array.
207
+
208
+
1. Client software **MUST** place responses in the order given in the request, using `null` for any missing blobs. For instance, if the request is `[A_versioned_hash, B_versioned_hash, C_versioned_hash]` and client software has data for blobs `A` and `C`, but doesn't have data for `B`, the response **MUST** be `[A, null, C]`.
209
+
210
+
1. Client software **MUST** support request sizes of at least 128 blob versioned hashes. The client **MUST** return `-38004: Too large request` error if the number of requested blobs is too large.
211
+
212
+
1. Client software **MAY** return an array of all `null` entries if syncing or otherwise unable to serve blob pool data.
213
+
214
+
1. Callers **MUST** consider that execution layer clients may prune old blobs from their pool, and will respond with `null` if a blob has been pruned.
This document introduces deprecation of [`engine_exchangeTransitionConfigurationV1`](./paris.md#engine_exchangetransitionconfigurationv1). The deprecation is specified as follows:
@@ -192,4 +235,4 @@ For the following methods:
192
235
193
236
a validation **MUST** be added:
194
237
195
-
1. Client software **MUST** return `-38005: Unsupported fork` error if the `timestamp` of payload or payloadAttributes greater or equal to the Cancun activation timestamp.
238
+
1. Client software **MUST** return `-38005: Unsupported fork` error if the `timestamp` of payload or payloadAttributes greater or equal to the Cancun activation timestamp.
0 commit comments