Hello everyone
During RollCall #8.1, we introduced rollup-geth
, a collaborative effort between the Ethereum Foundation (EF) and Nethermind to create a fork of Geth that serves as a common core for Rollups.
Long-Term Goals
- The ecosystem has expressed interest in having a common-core repository for Rollups to base their work on, which would reduce fragmentation across different EVM Rollups in terms of functionality and implementation.
- Our goal is to create a Geth fork that fulfills this need, allowing Rollups to integrate updates by merging our latest changes, similar to how they currently do with Geth.
Short-Term Goals
We are currently in the experimentation phase. The objectives for this phase include:
- Gaining a deeper understanding of the Geth codebase.
- Developing a comprehensive understanding of the various L2 Geth forks.
- Identifying challenges related to:
- Merging
rollup-geth
changes into different L2 forks. - Extending Geth with L2-specific features.
- Merging
- Understanding relevant E(R)IPs that are becoming important for L2s.
Our Approach to rollup-geth
We want to create something appealing and useful to Rollups, and thus are taking special care to ensure our changes are not overly disruptive to either L2s or upstream Geth. Specifically, during each EIP/RIP implementation cycle, we:
- Aim to minimize conflicts with both L2 Geth forks and upstream Geth when writing code.
- Open pull requests (PRs) targeting L2 forks to assess the effort needed to integrate
rollup-geth
changes. - Test these changes by running local nodes for each L2 to verify functionality, though we note that testing is not the primary focus during this phase.
Beyond the Experimentation Phase
- We envision a governance process similar to All Core Devs, where we reach consensus on which features should be merged into rollup-geth’s main branch.
- The
rollup-geth
team will not only create PRs with new features but also provide “sample” PRs to illustrate how multiple L2s could integrate with the updated codebase. Reviewing these PRs will make the integration process clearer and less error-prone. - Our aim is for L2s to use rollup-geth as their upstream source instead of Geth, syncing with rollup-geth just as they currently sync with Geth.
rollup-geth
will keep pace with upstream Geth to ensure updates are timely.- The
rollup-geth
team will work to bridge the gap between core L2 teams and the Geth team.
What Do We Need from L2s?
We would greatly appreciate:
- General feedback on this project.
- Feedback on our approach so far—what can we improve or change, and what is working well?
- Insights into what
rollup-geth
needs to provide before L2s would consider making the switch, including any blockers. - Suggestions for the most desired EIPs/RIPs within the L2 ecosystem.
We began discussing some of these topics during RollCall #8.1, and we would love to continue that dialogue.
GitHub Repo
Here is the link to the repository. Please keep in mind that we are still in the experimentation phase, and the E(R)IPs implemented so far were:
- Chosen to help us experiment with the implementation and to understand different challenges.
- Not production-ready.
- Not endorsements for adoption or part of any proposed standard.
We look forward to your input and collaboration!
Thanks, everyone!