/ephemeral-testnet

Resources and project management of Ethereum ephemeral testnet

Ephemeral Testnet

Ephemery is supporting Shapella since iteration 60. Make sure to run Shapella compatible version of your client.

The objective of this effort is to create the first automatically reset ephemeral Ethereum testnet which would serve as a cross-client testing network without issues stemming from a long-term running history.

Proposal

An ephemeral testnet is a single network that rolls back to the genesis after a set period of time. This kind of network is focused on short term and heavy testing usecases. The purpose of this is also to avoid problems like insufficient testnet funds, inactive validators, state bloat, and similar issues faced by long-running testnets.

Learn more about the idea in the original proposal and specification.

Meta, network info

Current value
Network ID ChainId
Iteration number Iteration
Rollback period 7 days
Next rollback Dynamic JSON Badge

Landing page

https://ephemery.dev/ (add RPC with single click)

RPC providers

Faucets

Block explorers

Beacon explorers

Validators

Resources and contributing

The network is currently in its early stages, it runs as a small network with a manual reset mechanism. Each reset changes network parameters and requires a new genesis. Setup and reset mechanism is coordinated via this repository. Each release contains values for the new release.

To run a node and participate in the network, use setup from this repository. There are various deployment options, you can either use a Docker setup, cloud-init script or manually modify the retention.sh script to suit your system and run it as a cron job. There are also instructions for manually setting up a node.

Checkout current version of specs for client implementation and feel free to provide feedback.

Contribute

Contribute by participating in the network and identifying issues caused by the ephemeral setup. You can help a lot by testing features and infrastracture which might break during the reset. Here are few ideas for general testing:

  • Run a node, especially client which is not tested yet
  • Add validators, monitor attestations, proposed blocks, slashing issues
  • Use your wallet, find out how it behaves after the reset, how it handles different network ID from same RPC
  • Deploy dapps, try your favorite developer tooling
  • Run infrastracture, explorers, etc
  • Reach out with your own ideas for testing

Feel free to open issue in this repository with your findings and ideas. And feel free to join the discussion in Matrix room.

Roadmap

Ephemeral testnet needs a lot of research and development to be stable and widely usable. Here is a simple roadmap and current progress:

  • Proposal and initial discussion
  • Private network with manual reset mechanism
    • Using external script to reset the network
    • A small private chain was created to identify feasibility issues and to stabilize the devops setup.
  • Public network with manual reset mechanism
    • Stable network open to the public and wider debugging, simplifing node/validator setup
  • Creating general specifications for automatically reset ephemeral testnet
    • Discussion about implementation details and specifications based on data gathered from the network with manual resets
    • Specs draft
    • Draft EIP
  • Automatic onchain infrastracture
    • Refuding validators
    • Deploying primitives for dapps
  • Preliminary client implementation work
    • Single client pair, testing on private/public chain
    • Improving and finishing specs
  • Cross client implementation
    • Testing all client combos, ACD discussion