Skip to content

SSZ-REST Engine API transport (CL client)#10455

Draft
Giulio2002 wants to merge 4 commits intoConsensys:masterfrom
Giulio2002:eip-8161-ssz-rest
Draft

SSZ-REST Engine API transport (CL client)#10455
Giulio2002 wants to merge 4 commits intoConsensys:masterfrom
Giulio2002:eip-8161-ssz-rest

Conversation

@Giulio2002
Copy link
Copy Markdown

@Giulio2002 Giulio2002 commented Mar 5, 2026

Summary

Implements SSZ-REST Engine API transport on the consensus layer (client side), as specified in ethereum/execution-apis#764.

  • New CLI flag --ee-ssz-rest-url to configure SSZ-REST endpoint
  • SSZ-encoded request/response bodies for all Engine API methods
  • Automatic fallback to JSON-RPC on network errors
  • Supports: new_payload (v3-v5), forkchoice_updated (v3), get_payload (v3-v5), exchange_capabilities
  • Uses spec types (SszContainer) for ExecutionPayload serialization

Giulio2002 and others added 2 commits March 5, 2026 23:48
Implement SSZ-REST transport for all Engine API methods:
- new_payload (v3/v4/v5)
- forkchoice_updated (v3)
- get_payload (v3/v4/v5)
- exchange_capabilities (v1)

New CLI flag --ee-ssz-rest-url enables SSZ-REST with automatic
fallback to JSON-RPC on network errors.

Uses spec types (SszContainer) for ExecutionPayload/ExecutionRequests
serialization and hand-parses BlobsBundle to avoid builder type deps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…-REST

- new_payload → POST /engine/v{N}/payloads
- forkchoice_updated → POST /engine/v3/forkchoice
- get_payload → GET /engine/v{N}/payloads/{payload_id}
- exchange_capabilities → POST /engine/v1/capabilities
- Error responses now text/plain instead of JSON
- Added doGetRequest to SszRestClient for GET support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 5, 2026


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

Giulio2002 and others added 2 commits March 6, 2026 00:16
Per execution-apis PR Consensys#764 spec:
- PayloadStatus.latest_valid_hash: List[Hash32, 1]
- ForkchoiceUpdatedResponse.payload_id: List[Bytes8, 1]
- ForkchoiceUpdatedRequest.payload_attributes: List[PayloadAttributes, 1]

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SSZ-REST URL is now derived from the engine endpoint (same host:port).
The EL serves SSZ-REST on the engine port under /engine/* paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Giulio2002 Giulio2002 changed the title EIP-8161: SSZ-REST Engine API transport (CL client) SSZ-REST Engine API transport (CL client) Mar 8, 2026
@Giulio2002
Copy link
Copy Markdown
Author

Implements the SSZ-REST Engine API transport spec: ethereum/execution-apis#764

@lucassaldanha lucassaldanha self-assigned this Mar 17, 2026
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.

2 participants