Skip to content

fix: replace retired --enclave.* reth flags in local-network binaries - #454

Open
samlaf wants to merge 1 commit into
mainfrom
sl/sei-171-fix-summit-harness-binaries-spawn-reth-with-retired-enclave
Open

fix: replace retired --enclave.* reth flags in local-network binaries#454
samlaf wants to merge 1 commit into
mainfrom
sl/sei-171-fix-summit-harness-binaries-spawn-reth-with-retired-enclave

Conversation

@samlaf

@samlaf samlaf commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Human Summary

fix now broken reth enclave flags in all bins. Refactored so that their copy-pasted code uses a shared function launcher. Only issue is that that launcher lives under the e2e flag under summit/types (personally think they should live in a seperate test utils crate but havent thought through whether there are any issues with this and didnt want to create too much churn), so to use it the testnet bin now had to be started with the e2e flag (which it previously didn't) like all other bins. So moved the testnet bin under testnet/bin.

This is just my suggestion... but feel free to do the simple "fix all bins directly without the shared util". Think the util is nice though because I added the SRETH_BIN env var which allows running a bin pointing at an exact reth binary in case we want to test a new build without installing it for example.

Also haven't run the testnet binary myself.. think it might still need a fix to the eth_genesis_hash (see this suggestion from asymmetric researcher). Could be done here or in a follow-up PR.

LLM Summary

seismic-reth removed the --enclave.* CLI namespace in SeismicSystems/seismic-reth#444, and clap fails hard on unknown args — every binary that spawns reth (testnet and the e2e scenario bins) stopped being able to boot nodes against newer builds. Replace --enclave.mock-server with
--seismic.purpose-keys-source built-in (local networks run no key custodian) and drop --enclave.endpoint-port, inert since SeismicSystems/seismic-reth#435.

The flag block was copy-pasted across all nine binaries, which is why the drift went unnoticed: nothing in CI runs these binaries, so a retired flag only surfaces when someone runs one by hand. Centralize the spawn configuration in summit_types::reth::reth_spawner. The spawner also honors an SRETH_BIN env var (falling back to reth on PATH), so CI and local runs can pin a specific seismic-reth build, e.g. a prebuilt release.

Move the testnet launcher to its own crate (testnet/bin, package summit-testnet). testnet builds with default features, but the reth spawn machinery is e2e-gated in summit-types; a separate crate can enable summit-types/e2e without that feature leaking into production builds of summit — the gate is what previously forced testnet onto a parallel alloy-node-bindings copy of the spawn flags. cargo run --bin testnet works unchanged, and the alloy-node-bindings dependency is gone.

Replace the blanket testnet/ gitignore with a testnet/.gitignore covering the actual runtime state (node*/* except the checked-in *.pem keys, plus stores/): the blanket rule hid the directory from search tools and would have silently ignored the new crate. The spawner now creates the reth datadir with create_dir_all, so the .gitkeep placeholders are no longer needed.

Suggestion

These binaries should ideally run in CI against a pinned seismic-reth version, so flag drift like this surfaces when it lands instead of at the next manual run. The pieces exist: seismic-reth releases publish prebuilt binaries, and SRETH_BIN points the spawner at a fetched one. A scheduled job running testnet --only-reth (or a full e2e scenario) against that pin would close the gap.

seismic-reth removed the --enclave.* CLI namespace in
SeismicSystems/seismic-reth#444, and clap fails
hard on unknown args — every binary that spawns reth (testnet and the
e2e scenario bins) stopped being able to boot nodes against newer
builds. Replace --enclave.mock-server with
--seismic.purpose-keys-source built-in (local networks run no key
custodian) and drop --enclave.endpoint-port, inert since
SeismicSystems/seismic-reth#435.

The flag block was copy-pasted across all nine binaries, which is why
the drift went unnoticed: nothing in CI runs these binaries, so a
retired flag only surfaces when someone runs one by hand. Centralize
the spawn configuration in summit_types::reth::reth_spawner. The
spawner also honors an SRETH_BIN env var (falling back to `reth` on
PATH), so CI and local runs can pin a specific seismic-reth build,
e.g. a prebuilt release.

Move the testnet launcher to its own crate (testnet/bin, package
summit-testnet). testnet builds with default features, but the reth
spawn machinery is e2e-gated in summit-types; a separate crate can
enable summit-types/e2e without that feature leaking into production
builds of summit — the gate is what previously forced testnet onto a
parallel alloy-node-bindings copy of the spawn flags. `cargo run --bin
testnet` works unchanged, and the alloy-node-bindings dependency is
gone.

Replace the blanket testnet/ gitignore with a testnet/.gitignore
covering the actual runtime state (node*/* except the checked-in
*.pem keys, plus stores/): the blanket rule hid the directory from
search tools and would have silently ignored the new crate. The
spawner now creates the reth datadir with create_dir_all, so the
.gitkeep placeholders are no longer needed.

## Suggestion

These binaries should ideally run in CI against a pinned seismic-reth
version, so flag drift like this surfaces when it lands instead of at
the next manual run. The pieces exist: seismic-reth releases publish
prebuilt binaries, and SRETH_BIN points the spawner at a fetched one.
A scheduled job running `testnet --only-reth` (or a full e2e scenario)
against that pin would close the gap.
@linear-code

linear-code Bot commented Aug 12, 2026

Copy link
Copy Markdown

SEI-171

@samlaf
samlaf requested a review from matthias-wright August 12, 2026 16:10
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