ACD & Process Improvements
June 19 update
- NUP Proposal 1:
PFI
,CFI
,SFI
: drafted EIP-7723 - NUP Proposal 2: EIP Review Tracker: proposed a
discussion-to
template
Original Post
Following from the Nyota ACD Process Breakout, here are some specific proposals to improve AllCoreDevs, the Network Upgrade Process and Ethereum Magicians. Each of these are the result of several individual and group conversations, but everything below was authored by me and should not be assumed to already be endorsed by anyone else as-is.
ACD Calls
Given the relatively short duration and large attendance of ACD calls, we want to prioritize high-context conversations that are relevant to L1 client & testing teams working on protocol changes. That said, ACD is also one of the most visible forums for the broader community to engage with “core devs”, and we should ensure it remains open to them.
ACD Proposal 1: EIP Review Requests
Today, it isn’t uncommon for someone to bring up a topic on ACD which very few people have previously reviewed, leading to people “getting up to speed” live on the call. Here is an example from ACD#188.
To improve on this, we could introduce “Review Requests” on the ACD agenda, where instead of discussing a topic on the call by default, it is flagged to core teams for review. Once the item has been reviewed by at least one client team asynchronously, it could then be discussed more thoroughly on the next call, if needed.
These latter synchronous discussions could potentially be gated by client teams proposing the topic be discussed on a call.
ACD Proposal 2: Breakout Room Templates
Breakout rooms are broadly appreciated as a way to have deeper discussions on specific topics, and as the best place to bring in experts from outside client teams to discuss specific topics. So far, they haven’t been very “templatized”. Adding a common structure across them could help better dessiminate information from breakouts back to ACD.
Going forward, breakout rooms could require:
- A moderator, who will run the call and report progress back to ACD
- A public agenda in ethereum/pm/issues
- A written summary of discussions/decisions (by default, done by moderator)
- A recording, uploaded to the @EthereumProtocol YouTube
- A transcript (autogenerated OK) posted to ethereum/pm
- A notice on Ethereum Magicians (see “EthMag Proposal 1” below)
Breakouts do a mix of some/most/all of this already, but having a common template (explained in ethereum/pm
?) would help both preserve records and efficiently communicate the takeaways in AllCoreDevs calls.
ACD Proposal 3: Async Team Updates
While planning Pectra, some teams started voicing their preferences for specific EIPs asynchronously ahead of ACD calls. There is broad agreement that this is valuable to keep doing, with the caveat that we want to ensure the governance process remains anchored to “rough consensus” (rather than formal voting or unanimity), and that we allow for individuals to keep voicing their opinions, even if it is different from their team’s majority view.
In the spirit of “rough consensus”, this feels like something we should encourage but not formalize. Teams sharing their views on important topics ahead of time (ideally >24h before the call) enables all participants to have a higher context discussion. That said, we should allow each team to do this in the format/medium they prefer. Similarly, we should leave ample room for qualitative discussion rather than simply trying to quantify support/objections for proposals.
Network Upgrade Process
NUP Proposal 1: PFI
, CFI
, SFI
Note: an EIP has been drafted to formally propose this. See the discussion here.
A few years ago, Ethereum’s execution layer started using the “Considered for Inclusion” status to highlight EIPs that client teams were seriously considering for a network upgrade but didn’t want to make a full commitment to include yet. The term was inspired from “Concept ACK” in Bitcoin Core.
While teams still feel CFI
is a valuable status (CL teams have now started using it!), it is far from perfect: there’s a lack of clarity around when something should be CFI’d, some EIPs go from being
proposed" (which is not a formal status) to “Included” (which is), leading to confusion, etc.
Today, the rough pipeline for EIPs is as follows:
- The EIP is “proposed” for a network upgrade, either on Ethereum Magicians, or a Github issue. For the past couple forks, I’ve kept a list of these proposals on Ethereum Magicians.
- Some EIPs are formally
Considered for Inclusion
, which gets recorded in the Meta EIP for the network upgrade, see e.g. EIP-7600. - Some EIPs then get formally
Included
in the network upgrade, which is also recorded in the Meta EIP. Note that EIPs do not necessarily have to be CFI’d before being Included. - When a network upgrade goes live, the Meta EIP only retains the
Included
EIPs. In other words, theCFI
status is only applied to EIPs on a per-fork basis.
To improve on this, I propose introducing a new status, Proposed for Inclusion
, and renaming Included
to Scheduled for Inclusion
.
Proposed for Inclusion
would be used by an EIP author to signal they want their EIP to be considered for a network upgrade. To formally propose an EIP for inclusion, one would simply need to open a PR to a network upgrade’s Meta EIP and list it there. This removes the need for someone (usually me!) to track proposals across multiple places, and provides EIP authors an “artifact proof” of the proposal, the PR to the Meta EIP.
Considered for Inclusion
would remain mostly used as it is today, a way for client developers to signal which EIP they would like potentially see included in a network upgrade.
Again, there has been confusion about when something should be CFI’d. If we wanted a formal threshold for this status, I would propose “>1 client team affected thinks this is worth considering for the network upgrade”.
We currently have a soft rule to “not CFI something on the first ACD it is presented on”. If PFI
was a formal status, this could potentially be relaxed to “don’t CFI something that hasn’t been PFI'd
for 7+ days”.
Scheduled for Inclusion
would replace Included
to highlight EIPs that client teams have committed to implement and include in the network upgrade barring significant unexpected technical issues. Historically, a handful of Included
EIPs have been removed during the implementation and testing phases because of technical issues. SFI
better conveys that this may happen.
Optionally, once a network upgrade has gone live, SFI
EIPs could be categorized as Included
.
NUP Proposal 2: EIP Review Tracker
Note: a template for EIPs’ discussion-to
threads has been proposed to address this.
Something that would make EIP Review Requests better is the ability to collect and keep track of reviews on an EIP. EIPs currently have discussions-to
links which direct towards a single forum thread that can be hard to follow and “hide” important but unaddressed concerns.
Having a way for EIP authors and reviewers to solicit/highlight/track more formal “reviews” on an EIP could help make the async process more efficient.
An easy way to do this would be to create default templates for EthMagicians discussion-to
threads which make it easy for the EIP authors to keep track of various reviews, audits, critcisms, etc. in a single place.
One example of this being done informally is the EIP-1153 shanghai/cancun thread. A possible sections for the template could be:
- Client Implementations
- Expert Reviews
- Open Questions & Risks
- Objections & Concerns
NUP Proposal 3: Align EIP and NUP Processes
With the split of the EIP and ERC repositories, there is an opportunity to modify the EIP process to better suit the needs of Ethereum network upgrades. For example, PFI
, CFI
, SFI
could be added to the header of EIPs, and lists of EIPs in each status could be exposed on eips.ethereum.org.
The biggest blocker here is bandwidth: there are only a handful of EIP/ERC editors and they struggle to do more than the bare minimum to keep the process moving.
NUP Proposal 3.1: Client Team EIP Editors by Default
One idea to address this would be for every L1 client team who participates in the Network Upgrade Process to volunteer a part time EIP editor to help with the process.
Ethereum Magicians
EthMag Proposal 1: Breakout Room Highlights
One of the biggest issues for the broader Ethereum community is knowing if and when they should pay attention to AllCoreDevs. While EIP champions typically try and reach out to stakeholders affected by their proposals, historically this has often resulted in many relevant teams being unaware of a proposal until fairly late in the network upgrade process.
A good proxy for proposals which require deeper discussion and community engagemment are “proposals that lead to breakout rooms”. A simple improvement could then be to advertise past and upcomming breakouts on Ethereum Magicians, potentially with a way for users to subscribe to these posts exclusively.
For example, the website could display a banner with upcomming breakout rooms and their topics, or a weekly/forthnightly/monthly post could link all the recent breakouts and where follow-up conversation is happening.
EthMag Proposal 2: Revamped Categories
The Ethereum Magicians Post Categories need some love. While many are used regularly and well understood (e.g. EIPs
, last-call
, etc.), several of them are outdated (Working Groups
, Ethereum 1.x
, etc.), vague (Primordial Soup
), or simply unused (Sharding
, Address Space Extension
).
Creating a net set of categories which both regular and more casual users of Ethereum Magicians find useful would help make Ethereum Magicians a central hub for both types of users. Ideally, users could also “follow” these categories in various ways, e.g. via per-category email notifications/digets or even things like custom Lens/Farcaster channels or Twitter bots that share new activity in them.
EthMag Proposal 3: Onboarding New Admins
Similarly to the EIP process, maintainer bandwidth is the main blocker to making Ethereum Magicians much better. To reflect that Ethereum Magicians is a resource for both the broader Ethereum community and core L1 R&D contributors, we should consider having an open process to add maintainers who can represent these different stakeholder groups.