Skip to content

Add REST-SSZ Engine API with Heze support - #10505

Draft
SamAg19 wants to merge 9 commits into
sigp:heze-devnet-2from
SamAg19:heze-devnet-2-rest-ssz
Draft

SamAg19 wants to merge 9 commits into
sigp:heze-devnet-2from
SamAg19:heze-devnet-2-rest-ssz

Conversation

@SamAg19

@SamAg19 SamAg19 commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Description

  • The following PR is built by cherry picking from the work done in Add a REST-SSZ Engine API transport #9652 which has support uptil Gloas and adds Heze support to the REST-SSZ engine API implementation based on specs in execution-apis PR #920.
  • The PR is not to be merged as this is just a informative PR regarding REST-SSZ performance on Heze fork
  • heze-devnet-2 branch is being used for heze interop devnets to implement SFI and CFI EIPs hence this PR is created on top of heze-devnet-2 to showcase that the REST-SSZ implementation is ready for heze devnets.

Devnet run

Ran a local Kurtosis devnet on the Gloas fork with a REST-SSZ Lighthouse node against Reth's heze-devnet-3 branch

Host ran on: Hetzner CCX33 VM

Kurtosis config used
participants:
  # Group 1: JSON supernodes => cl-1, cl-2
  - cl_type: lighthouse
    cl_image: lighthouse:local
    el_type: reth
    el_image: reth:heze-devnet-3
    supernode: true
    count: 2
    cl_extra_params:
      - --subscribe-all-subnets
      - --target-peers=3
    prometheus_config:
      scrape_interval: 15s
      labels:
        variant: no-ssz-rest

  # Group 2: REST-SSZ supernode, h2c => cl-3
  - cl_type: lighthouse
    cl_image: lighthouse:local
    el_type: reth
    el_image: reth:heze-devnet-3
    supernode: true
    count: 1
    cl_extra_params:
      - --subscribe-all-subnets
      - --target-peers=3
      - --enable-rest-ssz-engine
    prometheus_config:
      scrape_interval: 15s
      labels:
        variant: ssz-rest

  # Group 3: JSON control, non-supernode => cl-4
  - cl_type: lighthouse
    cl_image: lighthouse:local
    el_type: reth
    el_image: reth:heze-devnet-3
    supernode: false
    count: 1
    cl_extra_params:
      - --subscribe-all-subnets
      - --target-peers=3
    prometheus_config:
      scrape_interval: 15s
      labels:
        variant: no-ssz-rest

  # Group 4: REST-SSZ supernode pinned to HTTP/1.1 => cl-5
  #   experimental uncommitted --execution-rest-force-http1 patch.
  - cl_type: lighthouse
    cl_image: lighthouse:local
    el_type: reth
    el_image: reth:heze-devnet-3
    supernode: true
    count: 1
    cl_extra_params:
      - --subscribe-all-subnets
      - --target-peers=3
      - --enable-rest-ssz-engine
      - --execution-rest-force-http1
    prometheus_config:
      scrape_interval: 15s
      labels:
        variant: ssz-rest-h1

network_params:
  gloas_fork_epoch: 0
  heze_fork_epoch: 0
  genesis_delay: 40
  slot_duration_ms: 12000
  slot_duration_ms_heze: 12000
  preset: "minimal"
snooper_enabled: false
global_log_level: debug
additional_services:
  - dora
  - spamoor
  - prometheus
  - grafana
spamoor_params:
  image: ethpandaops/spamoor:master
  spammers:
    - scenario: eoatx
      config:
        throughput: 10
    - scenario: blobs
      config:
        throughput: 2

Results captured on Grafana

Wire Size

image

Latency over HTTP/2 h2c

image

Latency over HTTP/1.1

image

Block production time ratio(JSON-RPC/REST-SSZ)

  • REST-SSZ over HTTP/2
image
  • REST-SSZ over HTTP/1.1
image

This branch has not been deployed

No deployments
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