feat: add GLOAS (Glamsterdam) signing support#1192
Draft
usmansaleem wants to merge 7 commits into
Draft
Conversation
Adds four new signing types for the upcoming Glamsterdam (ePBS) fork: EXECUTION_PAYLOAD_BID, EXECUTION_PAYLOAD_ENVELOPE, PAYLOAD_ATTESTATION_MESSAGE, and PROPOSER_PREFERENCES. Bumps Teku to the develop snapshot as the GLOAS schemas (e.g. ExecutionPayloadBid added execution_requests_root, ExecutionPayloadEnvelope dropped slot/state_root, new ExecutionPayloadGloas) are still evolving post-26.4.0. Should pin to a stable Teku version once the next release is cut. Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
4 tasks
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Adds eth2 signing support for the upcoming Glamsterdam (ePBS) fork. Four new signing types — corresponding to the four
ExternalSignerstubs in Teku (signExecutionPayloadBid,signExecutionPayloadEnvelope,signPayloadAttestationData,signProposerPreferences):EXECUTION_PAYLOAD_BIDBEACON_BUILDER(0x0B000000)EXECUTION_PAYLOAD_ENVELOPEBEACON_BUILDER(0x0B000000)PAYLOAD_ATTESTATION_MESSAGEPTC_ATTESTER(0x0C000000)PROPOSER_PREFERENCESPROPOSER_PREFERENCES(0x0D000000)Includes:
core/.../signing/eth2/schema/gloas/(incl.ExecutionPayloadGloasextendingExecutionPayloadDenebwithblock_access_list+slot_number).Eth2SigningRequestBody+Eth2SignForIdentifierHandlerextended with the four new cases.*Signingwrappers + four data schemas (ExecutionPayloadBid,ExecutionPayloadEnvelope,ExecutionPayloadGloas,PayloadAttestationData,ProposerPreferences) underopenapi-specs/eth2/signing/.Eth2RequestUtils,Eth2SigningRequestBodyBuilder) updated; existing@EnumSource-parameterizedBlsSigningAcceptanceTestautomatically covers the new types underSpecMilestone.GLOAS.PayloadAttestationMessageSigningOpenAPI snippet from specs for glamsterdam #1159 (credit viaCo-authored-bytrailer).Slashing protection intentionally not added — Teku's
SlashingProtectedSignerdelegates all four new methods without protection (only blocks/attestations are slashable per spec).Pinning Teku to the
developsnapshot because the GLOAS signing types are still evolving since 26.4.0:ExecutionPayloadBidgained a 12th fieldexecution_requests_root.ExecutionPayloadEnvelopedroppedslotandstate_root.ExecutionPayloadGloaspayload (addsblock_access_list,slot_numberover Deneb).Once Teku cuts a release that locks in these shapes, this PR should be re-pinned to that fixed version and lifted out of draft. Wire format may shift further if the upstream
remote-signing-apispec (ethereum/remote-signing-api#23) lands different field names.Test plan
./gradlew spotlessApply spotlessCheck./gradlew :core:compileJava :acceptance-tests:compileTestJava./gradlew :core:test./gradlew :acceptance-tests:acceptanceTest) — run by CIExternalSignerstubs implemented (Kurtosis or unit-level wire test)