Skip to content

chore(beacon): unschedule Hoodi Glamsterdam - #686

Merged
MegaRedHand merged 1 commit into
mainfrom
chore/hoodi-unschedule-glamsterdam
Oct 22, 2026
Merged

MegaRedHand merged 1 commit into
mainfrom
chore/hoodi-unschedule-glamsterdam

Conversation

@MegaRedHand

Copy link
Copy Markdown
Collaborator

🗒️ Description / Motivation

Hoodi's Glamsterdam fork is unscheduled: eth-clients/hoodi#33 calls off the Gloas activation planned for epoch 132352 (2026-10-26 17:42:48 UTC), which #677 picked up. Our built-in Hoodi config is eth-clients' file byte for byte, so it follows.

What Changed

bin/ethlambda/assets/hoodi/config.yaml is copied again from eth-clients/hoodi at 987ca9a (#33's head):

Key Before After
GLOAS_FORK_EPOCH 132352 18446744073709551615 (far future)
GAS_LIMIT_SCHEDULE 200M gas at 132352 removed

GLOAS_FORK_VERSION and the Gloas preset/timing keys stay, since upstream keeps them so the fork can be rescheduled with one epoch change. bootstrap_nodes.yaml already matches upstream.

Correctness / Behavior Guarantees

Build Effect
main Gloas keys are ignored here, so only GAS_LIMIT_SCHEDULE drops out of the ignored-keys warning
A gloas build No longer activates Gloas on 2026-10-26, so it stays on the same chain as the rest of Hoodi. Existing directories resume: both the old and the new epoch are ahead of anything processed, which first_config_difference accepts since #677

Note

eth-clients/hoodi#33 is still open at the time of writing. If its final version differs, this file should be re-copied before merging.

Tests Added / Run

No new tests: nothing pins Hoodi's Gloas epoch.

cargo test -p ethlambda --bins --profile release-fast
git clone https://github.com/eth-clients/hoodi && git -C hoodi fetch origin pull/33/head && git -C hoodi checkout FETCH_HEAD
cmp bin/ethlambda/assets/hoodi/config.yaml hoodi/metadata/config.yaml

Related Issues / PRs

✅ Verification Checklist

  • Ran make fmt — n/a, no Rust changes
  • Ran make lint (clippy with -D warnings) — n/a, no Rust changes
  • Ran make test (test-consensus plus test-node, at release-fast) — ran cargo test -p ethlambda --bins only, the crate embedding the file

eth-clients/hoodi#33 calls off the Gloas activation planned for epoch
132352 (2026-10-26 17:42:48 UTC): GLOAS_FORK_EPOCH goes back to far
future and the Gloas-epoch GAS_LIMIT_SCHEDULE entry is removed. The
built-in Hoodi config is eth-clients' file byte for byte, so it follows.

A gloas build still carrying the old schedule would fork off Hoodi at
that epoch. Its existing directories resume on the new file, since both
the old and the new Gloas epoch are ahead of anything processed, which
first_config_difference accepts since #677.
@github-actions

Copy link
Copy Markdown

🤖 Kimi Code Review

I'll review this PR diff focusing on the configuration changes for the Hoodi testnet.

Summary

This PR makes two changes to bin/ethlambda/assets/hoodi/config.yaml:

  1. Changes GLOAS_FORK_EPOCH from 132352 to 18446744073709551615 (u64::MAX)
  2. Removes the GAS_LIMIT_SCHEDULE section entirely

Review Findings

1. Critical: GLOAS_FORK_EPOCH set to u64::MAX — Correctness Issue

Line 49: GLOAS_FORK_EPOCH: 18446744073709551615

This is 2^64 - 1, the maximum u64 value. In Ethereum consensus specs, this is the standard sentinel value for "far future / never" for unscheduled forks. However:

  • Verify this matches the canonical Hoodi configuration: The Hoodi testnet is a public Ethereum testnet. You must verify this change aligns with the official Ethereum Foundation Hoodi configuration. If Hoodi is actually planned to have the Gloas fork at epoch 132352, this change is incorrect.

  • Check spec parsing: Ensure your YAML parser correctly handles u64::MAX without overflow. Some parsers may treat this as a signed integer and fail.

2. Removal of GAS_LIMIT_SCHEDULE — Potential Compatibility Issue

Lines 218-222 (removed): The entire GAS_LIMIT_SCHEDULE section is removed.

  • Spec compliance: The GAS_LIMIT_SCHEDULE is not part of the standard Ethereum consensus spec (it's not in the official config.yaml for mainnet or standard testnets). If this was a custom extension, removal may be correct.

  • Code compatibility: Search your codebase for any code that reads GAS_LIMIT_SCHEDULE from config. If any Rust code expects this field to exist, it will now fail to parse this config file.

    // Check for code like this that might break:
    let gas_schedule = config.gas_limit_schedule; // or similar

3. Fork Naming Inconsistency

Line 48: GLOAS_FORK_VERSION — Note: This appears to be a misspelling of "GLOSS" (as in Electra/Gloss fork?). Verify this is intentional and matches the canonical spec naming. Ethereum typically uses:

  • Electra (not "Gloas"/"Gloss")
  • Or this may be a custom fork name for your client

If this is a typo that has propagated, consider fixing it, though this may be out of scope for this PR.

Recommendations

Priority Action
High Verify GLOAS_FORK_EPOCH: u64::MAX matches official Hoodi config at github.com/eth-clients/hoodi
High Audit codebase for GAS_LIMIT_SCHEDULE references to ensure config parsing doesn't break
Medium Confirm GLOAS naming is intentional vs. spec-standard naming

Code Quality Assessment

The diff itself is clean and minimal. If the values are correct per spec, no code changes are needed. The removal of non-standard config fields is generally positive for maintainability.

No security vulnerabilities or memory safety issues in this config-only change, assuming values are spec-correct.


Automated review by Kimi (Moonshot AI) · kimi-k2.6 · custom prompt

@github-actions

Copy link
Copy Markdown

🤖 Claude Code Review

Review of PR 686: unschedule Hoodi Glamsterdam

The change is small and correct. It only touches bin/ethlambda/assets/hoodi/config.yaml.

  • GLOAS_FORK_EPOCH: it is now 18446744073709551615 (u64 max), the same far-future sentinel the other configs already use. The devnet, devnet-electra, mainnet, and Sepolia configs use it for GLOAS_FORK_EPOCH or TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH, and the parser handles it there. I didn't run the parser or the tests.
  • GAS_LIMIT_SCHEDULE: removing the key is fine. config_file.rs:149 lists it as an ignored key, so a config without it parses and the ignored-keys warning gets shorter.
  • Resume: I didn't check first_config_difference. The PR description says both the old and new epochs are ahead of anything processed, so existing data directories should resume.
  • Gloas keys: GLOAS_FORK_VERSION stays, as upstream keeps it. Nothing in the repo pins the old epoch 132352.

Before merge

  1. eth-clients/hoodi#33 is still open, per the PR note. Re-copy and run the cmp from the PR description if upstream's final file differs from 987ca9a, because this file has to stay byte for byte identical to upstream.
  2. The tests listed in the PR (cargo test -p ethlambda --bins) are enough for a one-file asset change. I haven't run them.

Looks good to merge once upstream is final.


Automated review by Claude (Anthropic) · sonnet · custom prompt

@github-actions

Copy link
Copy Markdown

🤖 Codex Code Review

Looks good overall; this is a config-only PR and I don’t see a correctness, security, or performance regression for the current fulu-capped client.

  • bin/ethlambda/assets/hoodi/config.yaml:49 changing GLOAS_FORK_EPOCH to 18446744073709551615 is consistent with the repo’s convention for “fork disabled / unscheduled”. The parser and surrounding code already treat far-future fork epochs as valid config values, and this build intentionally ignores GLOAS_* anyway.
  • bin/ethlambda/assets/hoodi/config.yaml:213 removing GAS_LIMIT_SCHEDULE also looks safe in this codebase. GAS_LIMIT_SCHEDULE is explicitly documented as an unmodeled gloas-era key and is ignored by startup parsing, so deleting it should not affect block processing, fork choice, attestation handling, or SSZ behavior.
  • I don’t see any impact on consensus-critical paths like process_slots, process_block, justification/finalization, attestation validation, XMSS handling, or fork-choice logic, because none of those code paths are touched and the changed keys are not consumed by this build.

Small maintainability note:

  • bin/ethlambda/assets/hoodi/config.yaml:47 now disables gloas via the epoch, but GLOAS_FORK_VERSION remains present. That matches the existing style, though adding the same “disabled for now / max uint64” comment context here as used elsewhere would make the intent a bit clearer for future editors.

No requested changes from me.


Automated review by OpenAI Codex · gpt-5.4 · custom prompt

@MegaRedHand
MegaRedHand enabled auto-merge October 22, 2026 15:06
@MegaRedHand
MegaRedHand added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit c1e2e1e Oct 22, 2026
13 checks passed
@MegaRedHand
MegaRedHand deleted the chore/hoodi-unschedule-glamsterdam branch October 22, 2026 15:36
MegaRedHand added a commit that referenced this pull request Oct 22, 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