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
|`DENEB_FORK_VERSION` and later |`deneb.BlobSidecar`|
205
205
206
+
###### Blob retrieval via local execution layer client
207
+
208
+
In addition to `BlobSidecarsByRoot` requests, recent blobs MAY be retrieved by querying the Execution Layer (i.e. via `engine_getBlobsV1`).
209
+
Implementers are encouraged to leverage this method to increase the likelihood of incorporating and attesting to the last block when its proposer is not able to publish blobs on time.
210
+
211
+
When clients use the local execution layer to retrieve blobs, they MUST behave as if the corresponding `blob_sidecar` had been received via gossip. In particular they MUST:
212
+
* publish the corresponding `blob_sidecar` on the `blob_sidecar_{subnet_id}` subnet.
213
+
* update gossip rule related data structures (i.e. update the anti-equivocation cache).
214
+
206
215
##### Attestation subnets
207
216
208
217
###### `beacon_attestation_{subnet_id}`
@@ -413,16 +422,6 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
|`DENEB_FORK_VERSION` and later |`deneb.BlobSidecar`|
415
424
416
-
###### Blob retrieval via local execution layer client
417
-
418
-
In addition to `BlobSidecarsByRoot` requests, recent blobs MAY be retrieved by querying the Execution Layer (i.e. via `engine_getBlobsV1`).
419
-
Implementers are encouraged to leverage this method to increase the likelihood of incorporating and attesting to the last block when its proposer is not able to publish blobs on time.
420
-
421
-
When clients use the local execution layer to retrieve blobs, they MUST behave as if the corresponding `blob_sidecar` had been received via gossip. In particular they MUST:
422
-
423
-
* publish the corresponding `blob_sidecar` on the `blob_sidecar_{subnet_id}` subnet.
424
-
* update gossip rule related data structures (i.e. update the anti-equivocation cache).
425
-
426
425
## Design decision rationale
427
426
428
427
### Why are blobs relayed as a sidecar, separate from beacon blocks?
-[Distributed Blob Publishing using blobs retreived from local execution layer client](#distributed-blob-publishing-using-blobs-retreived-from-local-execution-layer-client)
@@ -204,6 +205,16 @@ The following validations MUST pass before forwarding the `sidecar: DataColumnSi
204
205
205
206
*Note:* In the `verify_data_column_sidecar_inclusion_proof(sidecar)` check, for all the sidecars of the same block, it verifies against the same set of `kzg_commitments` of the given beacon block. Client can choose to cache the result of the arguments tuple `(sidecar.kzg_commitments, sidecar.kzg_commitments_inclusion_proof, sidecar.signed_block_header)`.
206
207
208
+
###### Distributed Blob Publishing using blobs retreived from local execution layer client
209
+
210
+
Similar to the Deneb specification, recent blobs MAY be retrieved by querying the Execution Layer via `engine_getBlobsV2`. Clients will be able to convert the EL blob response into data columns to satisfy block availability requirements.
211
+
212
+
Implementers are encouraged to leverage this method to increase the likelihood of incorporating and attesting to the last block when its proposer is not able to publish data columns on time.
213
+
214
+
When clients use the local execution layer to retrieve blob and compute data columns, they MUST behave as if the imported `data_column_sidecar` had been received via gossip. Note that this only applies to the data columns gossip topics they are subscribed to - specifically, the node’s assigned custody columns. In particular, clients MUST:
215
+
* publish the corresponding `data_column_sidecar` on the `data_column_sidecar_{subnet_id}` subnet.
216
+
* update gossip rule related data structures (i.e. update the anti-equivocation cache).
0 commit comments