Skip to content

Commit d41fdf1

Browse files
MarcoPolofradamt
andauthored
engine_getBlobsV2: Don't prohibit partial responses (#671)
* engine_getBlobsV2: Support partial responses Reverts to previous behavior of supporting partial responses. This enables optimizations that require these partial responses. * Update src/engine/osaka.md Co-authored-by: fradamt <[email protected]> --------- Co-authored-by: fradamt <[email protected]>
1 parent f1ea462 commit d41fdf1

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/engine/osaka.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,8 @@ Consensus layer clients **MAY** use this method to fetch blobs from the executio
108108
Refer to the specification for [`engine_getBlobsV1`](./cancun.md#engine_getblobsv1) with changes of the following:
109109

110110
1. Given an array of blob versioned hashes client software **MUST** respond with an array of `BlobAndProofV2` objects with matching versioned hashes, respecting the order of versioned hashes in the input array.
111-
2. Client software **MUST** return `null` in case of any missing or older version blobs. For instance,
112-
1. 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 `null`.
113-
2. if the request is `[A_versioned_hash_for_blob_with_blob_proof]`, the response **MUST** be `null` as well.
111+
1. Given an array of blob versioned hashes, if client software has every one of the requested blobs, it **MUST** return an array of `BlobAndProofV2` objects whose order exactly matches the input array. For instance, if the request is `[A_versioned_hash, B_versioned_hash, C_versioned_hash]` and client software has `A`, `B` and `C` available, the response **MUST** be `[A, B, C]`.
112+
2. If one or more of the requested blobs are unavailable, the client **MUST** return either `null` or an array of the same length and order, inserting `null` only at the positions of the 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 either `null` or `[A, null, C]`.
114113
3. 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.
115114
4. Client software **MUST** return `null` if syncing or otherwise unable to serve blob pool data.
116115
5. 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.

0 commit comments

Comments
 (0)