Skip to content
Closed
Show file tree
Hide file tree
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
7 changes: 7 additions & 0 deletions src/engine/openrpc/methods/blob.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
type: array
items:
$ref: '#/components/schemas/hash32'
- name: Partial response requested
required: true
schema:
title: partialResponse
type: boolean
result:
name: List of blobs and corresponding cell proofs
schema:
Expand All @@ -60,6 +65,8 @@
- name: Blob versioned hashes
value:
- '0x000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014'
- name: Partial response requested
value: true
result:
name: List of blobs and corresponding cell proofs
value:
Expand Down
16 changes: 11 additions & 5 deletions src/engine/osaka.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,24 +96,30 @@ Consensus layer clients **MAY** use this method to fetch blobs from the executio
* method: `engine_getBlobsV2`
* params:
1. `Array of DATA`, 32 Bytes - Array of blob versioned hashes.
2. `partialResponse` : `BOOLEAN` - Controls whether to return partial hits.
* timeout: 1s

#### Response

* result: `Array of BlobAndProofV2` - Array of [`BlobAndProofV2`](#BlobAndProofV2) or `null` in case of any missing blobs.
* result: `Array of BlobAndProofV2`:
* if `partialResponse=false`: Array of [`BlobAndProofV2`](#BlobAndProofV2), or `null` in case of ANY missing blobs.
* if `partialResponse=true`: Array of [`BlobAndProofV2`](#BlobAndProofV2), containing `null` for EACH missing blob.
* error: code and message set in case an error occurs during processing of the request.

#### Specification

Refer to the specification for [`engine_getBlobsV1`](./cancun.md#engine_getblobsv1) with changes of the following:

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.
2. Client software **MUST** return `null` in case of any missing or older version blobs. For instance,
2. When `partialResponse=false`, client software **MUST** return `null` in case of any missing or older version blobs. For instance,
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`.
2. if the request is `[A_versioned_hash_for_blob_with_blob_proof]`, the response **MUST** be `null` as well.
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.
4. Client software **MUST** return `null` if syncing or otherwise unable to serve blob pool data.
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.
3. When `partialResponse=true`, client software **MUST** place responses in the order given in the request, using `null` for any missing blobs. For instance,
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 `[A, null, C]`.
2. if the request is `[A_versioned_hash_for_blob_with_blob_proof]`, the response **MUST** be `null`.
4. 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.
5. Client software **MUST** return `null` if syncing or otherwise unable to serve blob pool data.
6. 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.

### Update the methods of previous forks

Expand Down
Loading