Skip to content

Adding Glamsterdam changes#28

Draft
usmansaleem wants to merge 3 commits into
ethereum:mainfrom
usmansaleem:glamsterdam_changes
Draft

Adding Glamsterdam changes#28
usmansaleem wants to merge 3 commits into
ethereum:mainfrom
usmansaleem:glamsterdam_changes

Conversation

@usmansaleem
Copy link
Copy Markdown
Collaborator

Summary

Adds four new signing types for the upcoming Glamsterdam (ePBS) fork. These are client-agnostic spec additions intended for any consensus client (Teku, Lighthouse, Lodestar, Nimbus, Prysm) interacting with a remote signer.

Type Domain Signer role
EXECUTION_PAYLOAD_BID DOMAIN_BEACON_BUILDER (0x0B000000) Builder
EXECUTION_PAYLOAD_ENVELOPE DOMAIN_BEACON_BUILDER (0x0B000000) Builder
PAYLOAD_ATTESTATION_MESSAGE DOMAIN_PTC_ATTESTER (0x0C000000) PTC attester
PROPOSER_PREFERENCES DOMAIN_PROPOSER_PREFERENCES (0x0D000000) Proposer

Schema additions

  • ExecutionPayloadBidSigning / ExecutionPayloadBid (12 fields, incl. execution_requests_root)
  • ExecutionPayloadEnvelopeSigning / ExecutionPayloadEnvelope (4 fields: payload, execution_requests, builder_index, beacon_block_root)
  • ExecutionPayloadGloas data schema (Deneb shape + block_access_list and slot_number; the slot moved from envelope into the payload in ePBS)
  • PayloadAttestationMessageSigning / PayloadAttestationData (4 fields)
  • ProposerPreferencesSigning / ProposerPreferences (4 fields)

/sign endpoint's oneOf + discriminator mapping is extended with the four new types.

Tracks #23.

⚠️ Subject to change

Field shapes mirror the current Teku develop (post-26.4.0) consensus types — primarily because Teku is the first client implementing the GLOAS data structures end-to-end. Other client teams should review and push back on:

  • Field names / casing.
  • The ExecutionPayloadEnvelope shape post-slot-relocation.
  • Whether PROPOSER_PREFERENCES belongs in the spec at this layer or is something proposers handle locally.

Spec is published as draft and will be revised once cross-client consensus is reached.

Test plan

Adds four new signing types for the Glamsterdam (ePBS) fork:

  - EXECUTION_PAYLOAD_BID — signed by builders (DOMAIN_BEACON_BUILDER, 0x0B000000)
  - EXECUTION_PAYLOAD_ENVELOPE — signed by builders (DOMAIN_BEACON_BUILDER)
  - PAYLOAD_ATTESTATION_MESSAGE — signed by PTC attesters (DOMAIN_PTC_ATTESTER, 0x0C000000)
  - PROPOSER_PREFERENCES — signed by proposers (DOMAIN_PROPOSER_PREFERENCES, 0x0D000000)

Adds matching data schemas (ExecutionPayloadBid, ExecutionPayloadEnvelope,
ExecutionPayloadGloas, PayloadAttestationData, ProposerPreferences) and wires
the new wrappers into the sign endpoint's oneOf + discriminator mapping.

Tracks ethereum#23.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant