定义 EIP 在规划网络升级过程中所经历的阶段:Proposed for Inclusion(建议包含)、Considered for Inclusion(考虑包含)、Scheduled for Inclusion(计划包含)、Declined for Inclusion(拒绝包含)和 Included(已包含)。
任何人 MAY(可以)起草一个元 EIP,以列出网络升级的 EIP。此元 EIP SHOULD(应该)在其规范部分包含四个类别:Proposed for Inclusion(建议包含)、Declined for Inclusion(拒绝包含)、Considered for Inclusion(考虑包含)和 Scheduled for Inclusion(计划包含)。即使某个类别为空,也 SHOULD(应该)将其包含在初始草案中以保持清晰。
当升级元 EIP 被移至 Last Call(最后征求意见)时,Proposed for Inclusion(建议包含)、Declined for Inclusion(拒绝包含)和 Considered for Inclusion(考虑包含)列表 SHOULD(应该)被删除,仅留下 Scheduled for Inclusion(计划包含)。
在升级元 EIP 被移至 Final(最终)之前,Scheduled for Inclusion(计划包含)阶段 MUST(必须)重命名为 Included(已包含),并且仅包含在升级中激活的 EIP。
请注意,EIP 必须为每个网络升级 Proposed for Inclusion(建议包含)。换句话说,如果一个 EIP 没有包含在它最初建议的升级中,则提案不会“延续”到下一个升级。
Considered for Inclusion
一旦客户端开发人員审查了 Proposed for Inclusion(建议包含)的 EIP,他们 MAY(可以)将其移至 Considered for Inclusion(考虑包含)阶段。一旦客户端团队决定将 EIP 移至 Considered for Inclusion(考虑包含),则 SHOULD(应该)更新升级元 EIP 以反映这一点。
Considered for Inclusion(考虑包含)表示客户端开发人员对 EIP 持积极态度。一个 Considered for Inclusion(考虑包含)的核心 EIP SHOULD(应该)在未来的升级 Devnet 中实现。假设它满足主网部署的所有要求,它 MAY(可以)包含在网络升级中。此阶段类似于其他开源项目中的“概念 ACK”,并且不足以导致部署到主网。
Considered for Inclusion(考虑包含)的非核心 EIP SHOULD(应该)在网络升级激活之前得到支持。
如果客户端团队反对将 EIP 包含在网络升级中,则 MAY(可以)将 EIP 从 Considered for Inclusion(考虑包含)移至 Declined for Inclusion(拒绝包含)。
EIP SHOULD(应该)在 execution-specs 中有一个 Python 实现,作为开放的 PR 提交,并在 execution-spec-tests 中有相应的测试,也作为开放的 PR 提交。鼓励 EIP 作者联系这两个存储库的维护者,以获得实现方面的帮助。客户端开发人员 MAY(可以)决定允许 EIP 在没有任一实现的情况下移至 Considered for Inclusion(考虑包含),但要知道缺少这些实现可能会导致测试周期延迟。
在网络升级规划过程中的任何时间,如果客户端团队反对将 EIP 包含在网络升级中,客户端开发人员 MAY(可以)将 EIP 从任何其他阶段移至 Declined for Inclusion(拒绝包含)阶段。一旦客户端团队决定将 EIP 移至 Declined for Inclusion(拒绝包含),则 SHOULD(应该)更新升级元 EIP 以反映这一点。
Declined for Inclusion(拒绝包含)表示客户端开发人员希望将 EIP 从当前的網絡升级中排除,并停止讨论其与此升级相关的潜在包含或实现状态。在一个特定升级中 Declined for Inclusion(拒绝包含)的 EIP MAY(可以)仍然在后续升级中 Proposed for Inclusion(建议包含)。在特殊情况下,客户端开发人员 MAY(可以)选择将 EIP 从 Declined for Inclusion(拒绝包含)移至 Considered for Inclusion(考虑包含)或 Scheduled for Inclusion(计划包含)。
Scheduled for Inclusion
当客户端团队同意在 下一个 升级 Devnet 中实现核心 EIP 时,EIP SHOULD(应该)移至 Scheduled for Inclusion(计划包含)阶段,并且 SHOULD(应该)更新升级元 EIP 以反映这一点。当客户端团队同意立即优先考虑其实现时,非核心 EIP SHOULD(应该)移至 Scheduled for Inclusion(计划包含)。
正式化 Proposed for Inclusion(建议包含)、Considered for Inclusion(考虑包含)、Scheduled for Inclusion(计划包含)、Declined for Inclusion(拒绝包含)和 Included(已包含)阶段为协议维护者和更广泛的以太坊社区提供了更好的可读性。
该规范试图最小化 MUST(必须)遵循的步骤,以与以太坊的“粗略共识”治理模型保持一致。
假设它被采用,本 EIP 中概述的过程应至少用于一个完整的网络升级周期,然后再移至 Last Call(最后征求意见),并且至少用于两个完整的网络升级周期,然后再移至 Final(最终)。这样,可以更新 EIP 以反映随着时间的推移对该过程所做的更改。