-
Notifications
You must be signed in to change notification settings - Fork 217
gloas proposer preference apis #608
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
Changes from all commits
16e1fcb
73f359b
1e03e0b
d14f893
53f7a71
1a70969
c99125d
d21bb6c
a61176d
83ee090
2660727
4fc204a
2190cc5
2010840
217c65c
cb6d57f
841bf42
8000110
add85ae
a30e246
f267c92
eeaad77
ed61b2b
6cb794b
8b3235e
40f7045
1061e7b
b762015
300692f
a1bf8d2
2924c4d
a6031e7
524923e
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,58 @@ | ||
| post: | ||
| operationId: submitProposerPreferences | ||
| summary: Submit signed proposer preferences | ||
| description: | | ||
| Verifies given signed proposer preferences and publishes them on the `proposer_preferences` | ||
| gossipsub topic. | ||
|
|
||
| Notes: | ||
| - Validator clients SHOULD begin submitting signed proposer preferences one epoch before the | ||
| Gloas fork activates, so the proposer preference caches kept by both beacon nodes and | ||
| builders are warm at the fork boundary, letting builders prepare valid bids for the first | ||
| Gloas slots. | ||
| - Until the Gloas fork activates, beacon nodes MUST continue to honor fee recipient and gas | ||
| limit information supplied via `POST /eth/v1/validator/prepare_beacon_proposer` and | ||
| `POST /eth/v1/validator/register_validator`. From the Gloas fork onwards, signed proposer | ||
| preferences supersede both endpoints as the source of proposer fee recipient and gas | ||
| limit preferences. | ||
| - For validators served by the beacon node, if no signed proposer preferences are available | ||
| for a given proposal slot, the beacon node SHOULD fall back to the parent block's gas limit | ||
| when preparing the local payload or accepting bids for that validator. On the p2p network, | ||
| bids whose fee recipient or gas limit do not match a validator's preferences are rejected at | ||
| gossip validation, while bids for a slot with no available preferences are ignored; applying | ||
| sensible defaults reduces missed proposals during the transition. | ||
| parameters: | ||
| - in: header | ||
| schema: | ||
| $ref: "../../beacon-node-oapi.yaml#/components/schemas/ConsensusVersion" | ||
| required: true | ||
| name: Eth-Consensus-Version | ||
| description: "The active consensus version to which the signed proposer preferences being submitted belongs." | ||
|
Comment on lines
+24
to
+30
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need to enforce the consensus version here?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. that's required to make the endpoint forward compatible, otherwise if |
||
| tags: | ||
| - Validator | ||
| - ValidatorRequiredApi | ||
| requestBody: | ||
| description: "Array of `SignedProposerPreferences` objects to be submitted." | ||
| required: true | ||
| content: | ||
| application/json: | ||
| schema: | ||
| type: array | ||
| items: | ||
| $ref: "../../beacon-node-oapi.yaml#/components/schemas/Gloas.SignedProposerPreferences" | ||
| application/octet-stream: | ||
| schema: | ||
| description: "SSZ serialized `List[SignedProposerPreferences, (MIN_SEED_LOOKAHEAD + 1) * SLOTS_PER_EPOCH]` bytes. Use Content-Type header to indicate that SSZ data is contained in the request body." | ||
| responses: | ||
| "200": | ||
| description: "Signed proposer preferences are stored in pool and broadcasted to the network" | ||
| "400": | ||
| description: "Errors with one or more signed proposer preferences" | ||
| content: | ||
| application/json: | ||
| schema: | ||
| $ref: "../../beacon-node-oapi.yaml#/components/schemas/IndexedErrorMessage" | ||
| "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 |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| Gloas: | ||
| ProposerPreferences: | ||
| type: object | ||
| description: "The [`ProposerPreferences`](https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/p2p-interface.md#new-proposerpreferences) object from the CL Gloas spec." | ||
| required: [dependent_root, proposal_slot, validator_index, fee_recipient, target_gas_limit] | ||
| properties: | ||
| dependent_root: | ||
| $ref: "../primitive.yaml#/Root" | ||
| description: "Shuffling dependent root for the epoch of `proposal_slot`, based on the validator's head." | ||
| proposal_slot: | ||
| $ref: "../primitive.yaml#/Uint64" | ||
| description: "Slot for which the validator is the proposer." | ||
| validator_index: | ||
| $ref: "../primitive.yaml#/Uint64" | ||
| description: "Index of the proposing validator." | ||
| fee_recipient: | ||
| $ref: "../primitive.yaml#/ExecutionAddress" | ||
| description: "Address to receive the builder payment." | ||
| target_gas_limit: | ||
| $ref: "../primitive.yaml#/Uint64" | ||
| description: "Preferred gas limit for the execution payload." | ||
|
|
||
| SignedProposerPreferences: | ||
| type: object | ||
| description: "The [`SignedProposerPreferences`](https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/p2p-interface.md#new-signedproposerpreferences) object from the CL Gloas spec." | ||
| required: [message, signature] | ||
| properties: | ||
| message: | ||
| $ref: "#/Gloas/ProposerPreferences" | ||
| signature: | ||
| $ref: "../primitive.yaml#/Signature" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -45,4 +45,5 @@ ptc | |
| PtcDuty | ||
| produceBlockV | ||
| stateful | ||
| CGC | ||
| RLP | ||
Uh oh!
There was an error while loading. Please reload this page.