-
Couldn't load subscription status.
- Fork 199
Standardized Epbs Beacon Api #552
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 7 commits
4011900
d0ba3ba
953fd29
a1d3acc
2953725
b96e789
8faafdf
0ae952c
3064374
164f1d8
7929dfe
5eccf7f
b30273c
2d1438f
a4335fb
04a6d7a
aa8a636
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,41 @@ | ||||||
| post: | ||||||
| operationId: publishExecutionPayloadBid | ||||||
| summary: Publish signed execution payload bid | ||||||
| description: | | ||||||
| Instructs the beacon node to broadcast a signed execution payload bid to the beacon network, | ||||||
|
||||||
| Instructs the beacon node to broadcast a signed execution payload bid to the beacon network, | |
| Instructs the beacon node to broadcast a signed execution payload bid to the network, |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| to be gossiped for potential inclusion in block building. A success response indicates | |
| to be gossiped for potential inclusion in block building. A success response (20x) indicates |
For uniformity with publishExecutionPayloadEnvelope
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,41 @@ | ||||||
| post: | ||||||
| operationId: publishExecutionPayloadEnvelope | ||||||
| summary: Publish signed execution payload envelope | ||||||
| description: | | ||||||
| Instructs the beacon node to broadcast a signed execution payload envelope to the beacon network, | ||||||
|
||||||
| Instructs the beacon node to broadcast a signed execution payload envelope to the beacon network, | |
| Instructs the beacon node to broadcast a signed execution payload envelope to the network, |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,83 @@ | ||
| get: | ||
| operationId: getPoolPayloadAttestations | ||
| summary: Get payload attestations from operations pool | ||
| description: Retrieves payload attestations known by the node but not necessarily incorporated into any block | ||
| parameters: | ||
| - name: slot | ||
| in: query | ||
| required: false | ||
| schema: | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Uint64" | ||
| tags: | ||
| - Beacon | ||
| responses: | ||
| "200": | ||
| description: Successful response | ||
| content: | ||
| application/json: | ||
| schema: | ||
| title: GetPoolPayloadAttestationsResponse | ||
| type: object | ||
| required: [version, data] | ||
| properties: | ||
| version: | ||
| type: string | ||
| enum: [gloas] | ||
| example: "gloas" | ||
| data: | ||
| type: array | ||
| items: | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Gloas.PayloadAttestationMessage" | ||
| "400": | ||
| description: "The slot could not be parsed" | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/schemas/ErrorMessage" | ||
| example: | ||
| code: 400 | ||
| message: "Invalid slot parameter" | ||
| "500": | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/responses/InternalError" | ||
|
|
||
| post: | ||
| operationId: submitPayloadAttestationMessage | ||
| summary: Submit payload attestation message | ||
| description: | | ||
| Submits a payload attestation message to the beacon node. | ||
|
|
||
| The beacon node will validate the payload attestation message according to the gossip validation rules | ||
| and, if valid, store it in the pool and broadcast it globally to the network. | ||
|
|
||
| A success response indicates that the payload attestation message passed validation and was | ||
| successfully stored and broadcast. | ||
| tags: | ||
| - Beacon | ||
| - ValidatorRequiredApi | ||
| requestBody: | ||
| description: "The PayloadAttestationMessage object to be submitted." | ||
| required: true | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Gloas.PayloadAttestationMessage" | ||
| application/octet-stream: | ||
| schema: | ||
| description: "SSZ serialized PayloadAttestationMessage bytes. Use Content-Type header to indicate that SSZ data is contained in the request body." | ||
| responses: | ||
| "200": | ||
| description: "The payload attestation message was stored in the pool and has been broadcast." | ||
| content: | ||
| text/plain: | ||
| schema: | ||
| type: string | ||
| "400": | ||
| description: "The PayloadAttestationMessage object is invalid or failed gossip validation" | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/schemas/ErrorMessage" | ||
| "415": | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/responses/UnsupportedMediaType" | ||
| "500": | ||
| $ref: "../../../beacon-node-oapi.yaml#/components/responses/InternalError" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,7 +6,7 @@ get: | |
| summary: "Produce an attestation data" | ||
| description: | | ||
| Requests that the beacon node produce an AttestationData. For `slot`s in | ||
| Electra and later, this AttestationData must have a `committee_index` of 0. | ||
| Electra and Fulu, this AttestationData must have a `committee_index` of 0. In Gloas, this `committee_index` field is repurposed to signal payload status: 0 if the execution payload is not present in the canonical chain (EMPTY), or 1 if the payload is present (FULL). For current slot attestations, always use 0. | ||
|
||
|
|
||
| A 503 error must be returned if the block identified by the response | ||
| `beacon_block_root` is optimistic (i.e. the attestation attests to a block | ||
|
|
@@ -22,7 +22,7 @@ get: | |
| in: query | ||
| description: | | ||
| The committee index for which an attestation data should be created. For `slot`s in | ||
| Electra and later, this parameter MAY always be set to 0. | ||
| Electra and Fulu, this parameter MAY always be set to 0. In Gloas, it signals payload status: 0 for EMPTY payload status, 1 for FULL payload status. | ||
| required: true | ||
| schema: | ||
| $ref: "../../beacon-node-oapi.yaml#/components/schemas/Uint64" | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,13 +5,13 @@ get: | |
| operationId: "produceBlockV3" | ||
| summary: "Produce a new block, without signature." | ||
| description: | | ||
| Requests a beacon node to produce a valid block, which can then be signed by a validator. The | ||
| returned block may be blinded or unblinded, depending on the current state of the network as | ||
| decided by the execution and beacon nodes. | ||
| Requests a beacon node to produce a valid block, which can then be signed by a validator. | ||
|
|
||
| The beacon node must return an unblinded block if it obtains the execution payload from its | ||
| paired execution node. It must only return a blinded block if it obtains the execution payload | ||
| header from an MEV relay. | ||
| Post-gloas, proposers submit execution payload | ||
| bids rather than full execution payloads, so there is no longer a concept of blinded or unblinded blocks. Builders release the payload later. For pre-Gloas forks, the returned block may be blinded or unblinded, depending on the current | ||
| state of the network as decided by the execution and beacon nodes. The beacon node returns an | ||
| unblinded block if it obtains the execution payload from its paired execution node, or a | ||
| blinded block if it obtains the execution payload header from an MEV relay. | ||
|
|
||
| Metadata in the response indicates the type of block produced, and the supported types of block | ||
| will be added to as forks progress. | ||
|
|
@@ -83,36 +83,51 @@ get: | |
| content: | ||
| application/json: | ||
| schema: | ||
| title: ProduceBlockV3Response | ||
| type: object | ||
| required: [version, execution_payload_blinded, execution_payload_value, consensus_block_value, data] | ||
| properties: | ||
| version: | ||
| type: string | ||
| enum: [phase0, altair, bellatrix, capella, deneb, electra, fulu] | ||
| example: "electra" | ||
| execution_payload_blinded: | ||
| type: boolean | ||
| example: false | ||
| execution_payload_value: | ||
| type: string | ||
| example: "12345" | ||
| consensus_block_value: | ||
| type: string | ||
| example: "12345" | ||
| data: | ||
| anyOf: | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Fulu.BlockContents" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlockContents" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlindedBeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlockContents" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.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/Bellatrix.BeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BlindedBeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Altair.BeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Phase0.BeaconBlock" | ||
| oneOf: | ||
| - title: "ProduceBlockV3Response (Gloas)" | ||
| type: object | ||
| required: [version, data, consensus_block_value] | ||
|
||
| properties: | ||
| version: | ||
| type: string | ||
| enum: [gloas] | ||
| example: "gloas" | ||
| consensus_block_value: | ||
| type: string | ||
| example: "12345" | ||
| description: "Consensus rewards for this block in Wei" | ||
| data: | ||
| $ref: "../../beacon-node-oapi.yaml#/components/schemas/Gloas.BeaconBlock" | ||
| - title: "ProduceBlockV3Response (Pre-Gloas)" | ||
| type: object | ||
| required: [version, data, consensus_block_value, execution_payload_blinded, execution_payload_value] | ||
| properties: | ||
| version: | ||
| type: string | ||
| enum: [phase0, altair, bellatrix, capella, deneb, electra, fulu] | ||
| example: "electra" | ||
| execution_payload_blinded: | ||
| type: boolean | ||
| example: false | ||
| execution_payload_value: | ||
| type: string | ||
| example: "12345" | ||
| consensus_block_value: | ||
| type: string | ||
| example: "12345" | ||
| data: | ||
| anyOf: | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Fulu.BlockContents" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlockContents" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlindedBeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlockContents" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.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/Bellatrix.BeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BlindedBeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Altair.BeaconBlock" | ||
| - $ref: "../../beacon-node-oapi.yaml#/components/schemas/Phase0.BeaconBlock" | ||
| 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`." | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: It is a bit confusing that
afteris inclusive butbeforeis exclusive