diff --git a/apis/beacon/blocks/blinded_blocks.v2.yaml b/apis/beacon/blocks/blinded_blocks.v2.yaml index ed69b0de..c49fc7ff 100644 --- a/apis/beacon/blocks/blinded_blocks.v2.yaml +++ b/apis/beacon/blocks/blinded_blocks.v2.yaml @@ -13,8 +13,7 @@ post: successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202). Pre-Bellatrix, this endpoint will accept - a `SignedBeaconBlock`. After Deneb, this additionally instructs the beacon node to broadcast all given - signed blobs. The broadcast behaviour may be adjusted via the `broadcast_validation` + a `SignedBeaconBlock`. The broadcast behaviour may be adjusted via the `broadcast_validation` query parameter. parameters: - name: broadcast_validation @@ -55,7 +54,7 @@ post: - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Altair.SignedBeaconBlock" - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock" - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock" - - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBlockContents" + - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBeaconBlock" application/octet-stream: schema: description: "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body." diff --git a/apis/beacon/blocks/blinded_blocks.yaml b/apis/beacon/blocks/blinded_blocks.yaml index 23748c99..75253448 100644 --- a/apis/beacon/blocks/blinded_blocks.yaml +++ b/apis/beacon/blocks/blinded_blocks.yaml @@ -13,8 +13,7 @@ post: successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202). Pre-Bellatrix, this endpoint will accept - a `SignedBeaconBlock`. After Deneb, this additionally instructs the beacon node to broadcast all given - signed blobs. + a `SignedBeaconBlock`. parameters: - in: header schema: @@ -33,7 +32,7 @@ post: - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Altair.SignedBeaconBlock" - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock" - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock" - - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBlockContents" + - $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBeaconBlock" application/octet-stream: schema: description: "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body." diff --git a/apis/validator/blinded_block.yaml b/apis/validator/blinded_block.yaml index 20c2d42b..d1b7a5d0 100644 --- a/apis/validator/blinded_block.yaml +++ b/apis/validator/blinded_block.yaml @@ -63,7 +63,7 @@ get: - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Altair.BeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BlindedBeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BlindedBeaconBlock" - - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlindedBlockContents" + - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlindedBeaconBlock" application/octet-stream: schema: description: "SSZ serialized block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version`." diff --git a/apis/validator/block.v3.yaml b/apis/validator/block.v3.yaml index c4cfc9c6..c7b8ff76 100644 --- a/apis/validator/block.v3.yaml +++ b/apis/validator/block.v3.yaml @@ -76,14 +76,14 @@ get: example: "12345" data: oneOf: - - $ref: '../../beacon-node-oapi.yaml#/components/schemas/BeaconBlock' + - $ref: "../../beacon-node-oapi.yaml#/components/schemas/BeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Altair.BeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BlindedBeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BlindedBeaconBlock" - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlockContents" - - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlindedBlockContents" + - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlindedBeaconBlock" application/octet-stream: schema: description: "SSZ serialized block or blinded block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version` and block type in `Eth-Blinded-Payload`." diff --git a/beacon-node-oapi.yaml b/beacon-node-oapi.yaml index 5e12bfdc..4b6477cb 100644 --- a/beacon-node-oapi.yaml +++ b/beacon-node-oapi.yaml @@ -369,22 +369,12 @@ components: $ref: './types/deneb/block_contents.yaml#/Deneb/SignedBlockContents' Deneb.BlindedBeaconBlock: $ref: './types/deneb/block.yaml#/Deneb/BlindedBeaconBlock' - Deneb.SignedBlindedBlockContents: - $ref: './types/deneb/block_contents.yaml#/Deneb/SignedBlindedBlockContents' - Deneb.BlindedBlockContents: - $ref: './types/deneb/block_contents.yaml#/Deneb/BlindedBlockContents' Deneb.SignedBlindedBeaconBlock: $ref: './types/deneb/block.yaml#/Deneb/SignedBlindedBeaconBlock' Blob: $ref: './types/primitive.yaml#/Blob' Deneb.BlobSidecars: $ref: './types/deneb/blob_sidecar.yaml#/Deneb/BlobSidecars' - Deneb.SignedBlobSidecar: - $ref: './types/deneb/blob_sidecar.yaml#/Deneb/SignedBlobSidecar' - Deneb.BlindedBlobSidecar: - $ref: './types/deneb/blob_sidecar.yaml#/Deneb/BlindedBlobSidecar' - Deneb.SignedBlindedBlobSidecar: - $ref: './types/deneb/blob_sidecar.yaml#/Deneb/SignedBlindedBlobSidecar' Node: $ref: './types/fork_choice.yaml#/Node' ExtraData: diff --git a/types/deneb/blob_sidecar.yaml b/types/deneb/blob_sidecar.yaml index 4f287b75..ff8c8ca4 100644 --- a/types/deneb/blob_sidecar.yaml +++ b/types/deneb/blob_sidecar.yaml @@ -6,83 +6,27 @@ Deneb: minItems: 0 maxItems: 6 + KZGCommitmentInclusionProof: + type: array + items: + $ref: "../primitive.yaml#/Bytes32" + minItems: 17 + maxItems: 17 + BlobSidecar: type: object description: "A blob sidecar as defined in the Deneb consensus spec." properties: - block_root: - $ref: "../primitive.yaml#/Root" index: $ref: "../primitive.yaml#/Uint64" - slot: - $ref: "../primitive.yaml#/Uint64" - block_parent_root: - $ref: "../primitive.yaml#/Root" - proposer_index: - $ref: "../primitive.yaml#/Uint64" blob: $ref: "../primitive.yaml#/Blob" kzg_commitment: $ref: '../primitive.yaml#/KZGCommitment' kzg_proof: $ref: '../primitive.yaml#/KZGProof' + signed_block_header: + $ref: "../block.yaml#/SignedBeaconBlockHeader" + kzg_commitment_inclusion_proof: + $ref: '#/Deneb/KZGCommitmentInclusionProof' - SignedBlobSidecars: - type: array - items: - $ref: '#/Deneb/SignedBlobSidecar' - minItems: 0 - maxItems: 6 - - SignedBlobSidecar: - type: object - description: "The `SignedBlobSidecar` object envelope from the CL Deneb spec." - properties: - message: - $ref: "#/Deneb/BlobSidecar" - signature: - $ref: "../primitive.yaml#/Signature" - - BlindedBlobSidecars: - type: array - items: - $ref: '#/Deneb/BlindedBlobSidecar' - minItems: 0 - maxItems: 6 - - BlindedBlobSidecar: - type: object - description: "A blob sidecar with the SSZ root of the blob rather than the full blob." - properties: - block_root: - $ref: "../primitive.yaml#/Root" - index: - $ref: "../primitive.yaml#/Uint64" - slot: - $ref: "../primitive.yaml#/Uint64" - block_parent_root: - $ref: "../primitive.yaml#/Root" - proposer_index: - $ref: "../primitive.yaml#/Uint64" - blob_root: - $ref: "../primitive.yaml#/Root" - kzg_commitment: - $ref: '../primitive.yaml#/KZGCommitment' - kzg_proof: - $ref: '../primitive.yaml#/KZGProof' - - SignedBlindedBlobSidecars: - type: array - items: - $ref: '#/Deneb/SignedBlindedBlobSidecar' - minItems: 0 - maxItems: 6 - - SignedBlindedBlobSidecar: - type: object - description: "A variant of the `SignedBlobSidecar` object envelope from the CL Deneb spec, which contains a `BlindedBlobSidecar` rather than a `BlobSidecar`." - properties: - message: - $ref: "#/Deneb/BlindedBlobSidecar" - signature: - $ref: "../primitive.yaml#/Signature" diff --git a/types/deneb/block_contents.yaml b/types/deneb/block_contents.yaml index 1fa4fddf..5bbe86fa 100644 --- a/types/deneb/block_contents.yaml +++ b/types/deneb/block_contents.yaml @@ -1,21 +1,28 @@ Deneb: + KZGProofs: + type: array + items: + $ref: '../primitive.yaml#/KZGProof' + minItems: 0 + maxItems: 4096 + + Blobs: + type: array + items: + $ref: "../primitive.yaml#/Blob" + minItems: 0 + maxItems: 4096 + BlockContents: type: object description: "The required object for block production according to the Deneb CL spec." properties: block: $ref: "./block.yaml#/Deneb/BeaconBlock" - blob_sidecars: - $ref: "./blob_sidecar.yaml#/Deneb/BlobSidecars" - - BlindedBlockContents: - type: object - description: "The required object for blinded block production according to the Deneb CL spec." - properties: - blinded_block: - $ref: "./block.yaml#/Deneb/BlindedBeaconBlock" - blinded_blob_sidecars: - $ref: "./blob_sidecar.yaml#/Deneb/BlindedBlobSidecars" + kzg_proofs: + $ref: "#/Deneb/KZGProofs" + blobs: + $ref: "#/Deneb/Blobs" SignedBlockContents: type: object @@ -23,15 +30,7 @@ Deneb: properties: signed_block: $ref: "./block.yaml#/Deneb/SignedBeaconBlock" - signed_blob_sidecars: - $ref: "./blob_sidecar.yaml#/Deneb/SignedBlobSidecars" - - SignedBlindedBlockContents: - type: object - description: "The required signed components of block production according to the Deneb CL spec." - properties: - signed_blinded_block: - $ref: "./block.yaml#/Deneb/SignedBlindedBeaconBlock" - signed_blinded_blob_sidecars: - $ref: "./blob_sidecar.yaml#/Deneb/SignedBlindedBlobSidecars" - \ No newline at end of file + kzg_proofs: + $ref: "#/Deneb/KZGProofs" + blobs: + $ref: "#/Deneb/Blobs" diff --git a/types/primitive.yaml b/types/primitive.yaml index f87a4718..4c44bad5 100644 --- a/types/primitive.yaml +++ b/types/primitive.yaml @@ -144,3 +144,4 @@ KZGProof: format: hex pattern: "^0x[a-fA-F0-9]{96}$" description: "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." +