Skip to content

Add ephemery testnet support - #17400

Open
syjn99 wants to merge 3 commits into
developfrom
feat/ephemery-support
Open

Add ephemery testnet support#17400
syjn99 wants to merge 3 commits into
developfrom
feat/ephemery-support

Conversation

@syjn99

@syjn99 syjn99 commented Aug 24, 2026

Copy link
Copy Markdown
Member

What type of PR is this?

Feature

What does this PR do? Why is it needed?

This PR adds a built-in support for the ephemery testnet, behind a new --ephemery flag.

Ephemery resets a fresh genesis every 28 days, so we need to fetch everytime at startup to collect artifacts:

Which issue(s) does this PR fix?

N/A

Other notes for review

Documentation

After this PR is merged, I will update the "client implementation" section in ephemery-resources. So basically an entry for Prysm will be changed to "Complete" (Genesis Function Status).

Also we might dedicate a page for our documentation as well.

Live verification (with Geth)

# 1. Execution client on Ephemery (docker geth, initialized from the current iteration's EL genesis)
curl -sO https://ephemery.dev/latest/genesis.json
openssl rand -hex 32 > jwt.hex

docker run -d --name ephemery-geth -v $PWD:/cfg -p 8551:8551 -p 30303:30303 ethereum/client-go \
  init /cfg/genesis.json && docker restart ephemery-geth  # then run with:
# --authrpc.addr 0.0.0.0 --authrpc.jwtsecret /cfg/jwt.hex --bootnodes <BOOTNODE_ENODE_LIST from https://ephemery.dev/latest/nodevars_env.txt>

# 2. Beacon node from this branch
bazel run //cmd/beacon-chain -- --ephemery --datadir /tmp/eph-beacon \
  --execution-endpoint http://127.0.0.1:8551 --jwt-secret jwt.hex --accept-terms-of-use

With these commands, the beacon node SHOULD sync to the tip of the chain, from the genesis.

Acknowledgements

  • I have read CONTRIBUTING.md.
  • I have included a uniquely named changelog fragment file.
  • I have added a description with sufficient context for reviewers to understand this PR.
  • I have tested that my changes work as expected and I added a testing plan to the PR description (if applicable).

// Override it to avoid confusion with the mainnet testnet config.
cfg.ConfigName = params.EphemeryName

// Fork versions the config omits keep their mainnet values, which would collide with the mainnet config, so number them up from the genesis version instead.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: Ephemery's config stops at the last scheduled fork (currently Fulu). params.SetActive rejects a config whose later fork versions collide with mainnet leftovers, so the ephemery path fills omitted versions by numbering up from the genesis fork version (0x1000101b0x8000101b), logging a warning per filled fork.

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