ePBS (EIP-7732 / Gloas) fork-transition test scenario - #34
Merged
Conversation
…ting Mirrors params-boole.yaml: genesis on Fulu, forking into Gloas at epoch 2, using ethpandaops glamsterdam-devnet-5 client images (stock geth/lighthouse don't implement EIP-7732) and a Gloas-aware genesis generator (6.0.8; the ethereum-package@6.1.0 default 5.3.5 predates Gloas). SSV-side Boole active from genesis (boole_epoch: 0). Monitor/E2M disabled — it can't parse Gloas blocks (decodes via go-eth2-client, which has no Gloas types). Wires a `make run-gloas` convenience target + README/help entries.
Geth self-terminates below its ~1.62GiB low-disk safety threshold, silently freezing the chain mid-run (EL exits → CL gets no payloads → stuck at slot ~1). This surfaced as a confusing deploy "hang" / executor timeout. Add a fail-fast disk check to check-deps (default >=10GiB, MIN_DISK_GIB override) and wire check-deps into run-gloas/run-boole so every run path gets it.
ovidiu-ssv-labs
previously approved these changes
Jun 29, 2026
momosh-ssv
self-requested a review
June 29, 2026 15:00
momosh-ssv
reviewed
Jun 29, 2026
momosh-ssv
left a comment
There was a problem hiding this comment.
Reviewed the Gloas/ePBS scenario in depth — the wiring is solid: the validator-layout invariant holds (32×2=64 ≤ 64, preregistered 74), boole_epoch: 0 correctly activates Boole from genesis, gloas_fork_epoch is a recognized ethereum-package key (not silently dropped), and disabling monitor is consistent with main.star. A few thoughts below, none blocking — mostly about the disk guard and image-tag reproducibility.
…t tags Non-blocking review feedback on PR #34: - check-deps: note the df measures the Docker storage backend (a proxy for geth's volume, not an exact reading) and that the guard fails open when `docker run` can't execute; soften the error wording to match. - params-gloas.yaml: flag glamsterdam-devnet-5 / dora master-* as moving tags left unpinned on purpose to track devnet-5.
ovidiu-ssv-labs
approved these changes
Jun 30, 2026
iurii-ssv
added a commit
that referenced
this pull request
Jul 6, 2026
…enesis default (#35) * config(gloas): refresh params-gloas.yaml — devnet-6, §4/§6 status, enable E2M Land the post-#34 evolution of the Gloas/ePBS test params into main (the epbs/gloas-params working branch had accumulated these ahead of main; a direct merge conflicts on #34's squash, so this carries just the params-gloas.yaml delta): - Track glamsterdam-devnet-6 (devnet-5 superseded). - Refresh §4/§6 status: §4 submit works with the EIP-8282 five-list execution requests; §6 is a CL split — lighthouse v8.2.0 lacks the beacon-APIs#580 produce endpoint, Lodestar implements produce and the real blocker is the node's blinded publish body (ssvlabs/ssv#2921); note the §4 all-operator dedup wrinkle on Lodestar (ssvlabs/ssv#2922). - Enable the monitor (E2M) on the gloas net: ethereum2-monitor#504 (merged) adds Gloas block decode and Fulu decodes natively (go-eth2-client v0.28.1 + beacon/fulu.go), so a #504-inclusive monitor handles this net's Fulu (epochs 0-1) and Gloas (epoch 2+) blocks. E2M §2 attestation confirmation validated live on Gloas (ssvlabs/aetheria#137). * docs(gloas): reconcile stale devnet-5 comments + de-dup generator note Comment/doc consistency follow-up to the devnet-6 refresh; no functional config change (images and flags untouched). - params-gloas.yaml: retag the dora and genesis-generator pin comments from "the devnet-5 build" to Gloas-capable/-aware builds (the net is devnet-6). - params-gloas.yaml: scope the "moving targets" heads-up to geth/lighthouse; note dora + the generator are pinned to fixed builds (dora isn't unpinned). - params-gloas.yaml: reword the monitor note from "is disabled on this net" to "was historically disabled" so it no longer contradicts enabled: true. - params-gloas.yaml: de-duplicate the generator rationale — the header is the single source, inline comment trimmed to a pointer. - Makefile: run-gloas help now reads "(devnet-6 images)". * docs: reconcile stale E2M-Fulu + devnet-5 claims, clarify Lodestar provenance Follow-ups from the PR #35 review: - params.yaml: the header's "E2M cannot parse Fulu" constraint is historical — current monitor builds decode Fulu natively (proven live by the params-gloas net's E2M running through Fulu epochs 0-1, ssvlabs/aetheria#137). Fulu stays deferred only pending a Fulu-at-genesis validation run. - README + make help: devnet-5 -> devnet-6 for run-gloas, monitor/E2M now enabled on the gloas net, and the default net described as Electra genesis with Fulu deferred (was "Fulu at genesis / all forks active", stale since Fulu got deferred). - params-gloas.yaml: note the Lodestar findings' provenance — local runs of this net with cl_type swapped to lodestar, not the public devnet; Lodestar is the CL the live devnet-6 runs. * config: default net runs Fulu at genesis (validated) The Fulu deferral (fulu_fork_epoch: 100000) existed for an E2M build that FATAL'd on Fulu blocks; current E2M decodes Fulu natively. Validated by a Fulu-at-genesis aetheria (event) run on this net: E2M attestation validation green, zero monitor decode failures across the run. Flip the default to 0 and update the README/Makefile/CLAUDE.md wording accordingly. * config(gloas): pin digest-locked Lodestar v1.43.0 as the CL; update §4/§6 status Lodestar is the CL that implements the §6 envelope produce+publish path (lighthouse v8.2.0 lacks the produce endpoint), so make it the default rather than a local swap. Reconcile the header with the node-side fixes: §4/§6 already-known submits are treated as success (ssv#2922/ssv#2923), the §6 blinded-body rejection (ssv#2921) is fixed, and ssv#2923 was validated on this net with a (ptc),(proposer) run — 4/4 envelope publishes, zero submit errors.
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.
Adds
params-gloas.yaml— a Gloas / ePBS (EIP-7732) fork-transition scenario for exercising the node-side ePBS work (ssvlabs/ssv#2901) on the local testnet.What it does
gloas_fork_epoch: 2), so a single run exercises dormant → transition → executing.glamsterdam-devnet-5EL/CL images — the stockgeth/lighthousereleases inparams.yamldon't implement EIP-7732.ethereum-genesis-generator:6.0.8; theethereum-package@6.1.0default5.3.5predates Gloas) and the devnet-5 dora image.boole_epoch: 0— the SSV Boole fork that ePBS builds on must be active from genesis (default is disabled).Gloas needs no SSV-side fork knob: the node reads
GLOAS_FORK_EPOCHfrom the beacon node's/config/specat runtime.Usage
Notes
produceBlockV4+ envelope beacon endpoints (beacon-APIs#580, still open) that devnet-5 clients may not serve yet; the implemented + reviewed slice (PTC) is the realistic first target.gloas_fork_epochto control how long the node runs dormant before the transition.