Ethereum Introduces EELS: A New Execution Layer Specification
Key Takeaways
* Ethereum unveils EELS, a Python-based reference implementation for its execution client.
* EELS aims to be a more programmer-friendly successor to the Yellow Paper.
* The project has been in development for over a year and is backed by ConsenSys' Quilt team and the Ethereum Foundation.
Introduction
Ethereum has publicly introduced the Ethereum Execution Layer Specification (EELS), a Python reference implementation designed to make the core components of an Ethereum execution client more readable and clear. Developed over more than a year, EELS is intended to be a "spiritual successor to the Yellow Paper" and is focused on "readability and clarity."
Background and Context
The EELS project comes on the heels of significant upgrades to the Ethereum network, notably the Shapella upgrade. Shapella, which went live on April 12, 2023, followed "The Merge" and enabled validators to withdraw their stake from the Beacon Chain back to the execution layer. It also introduced new functionalities to both the execution and consensus layers. The Shapella upgrade was first tested on the Sepolia testnet and was a collaborative effort that combined changes to the execution layer (Shanghai), consensus layer (Capella), and the Engine API.
What is EELS?
EELS is an "execution layer reference implementation in Python" that is "up to date with mainnet." It can "fill and execute state tests" and "follow mainnet." The project aims to provide complete snapshots of the protocol at each fork, making it easier to follow than EIPs (Ethereum Improvement Proposals) and production clients, which often mix multiple forks in the same code path.
Technical Features
EELS is "just regular Python" and can be tested like any other Python library. It supports the entire "ethereum/tests" suite and also includes a selection of "pytest" tests. The project does not implement peer-to-peer networking and requires a production client to sync blocks.
Future Prospects
While EELS is still "a bit rough around the edges," it aims to become the "default way to specify Core EIPs" and the "first place EIP authors go to prototype their proposals." Those interested in contributing can join the "#specifications" channel or pick an issue from the project's repository.
Conclusion
The introduction of EELS marks a significant step in Ethereum's ongoing efforts to make its execution layer more accessible and understandable. By providing a Python-based, readable, and testable reference implementation, EELS aims to serve as a valuable resource for both developers and researchers in the Ethereum ecosystem.
Image source: Shutterstock