Alert Source Discuss
🚧 Stagnant Meta

EIP-1872: 以太坊网络升级窗口

Authors Danno Ferrin (@shemnon)
Created 2018-03-25
Discussion Link https://ethereum-magicians.org/t/eip-1872-ethereum-network-upgrade-windows/2993

简述

建议定义每年执行网络升级(又称硬分叉)的有限数量的时间窗口。还描述了在这些窗口之外安排网络升级的策略。

摘要

针对一年中大致均匀分布的四个不同的星期用于启动网络升级。常规网络升级应在其过程的早期宣布在特定窗口中启动的意图,并选择在该窗口前四周到六周的区块号。如果取消网络升级,则应将其重新安排到下一个窗口。并非所有窗口都会被使用。路线图之外的优先级升级可以在任何一个月的第三周安排,但不鼓励这样做。关键升级会根据需要进行安排。

动机

本 EIP 的目的在于为以太坊网络升级/硬分叉过程提供一定程度的规律性和可预测性。这将使交易所和节点运营商等服务提供商能够围绕其活动安排一个可预测的框架。这也提供了一个规范化网络升级交付的框架。

规范

调度是为三种类型的网络升级定义的。首先是 Roadmap 网络升级,其中包括深思熟虑的协议改进。接下来是 Priority 网络更新,其中存在需要及时更改协议的技术原因,但这些原因不会对协议或生态系统构成系统性风险。最后,Critical 网络升级是为了解决对协议或生态系统构成系统性风险的问题。

Roadmap 网络升级

Roadmap 网络升级是经过深思熟虑和衡量以改进协议和生态系统的网络升级。历史范例包括 Homestead、Byzantium 和 Constantinople。

Roadmap 网络升级应安排在四个窗口之一:1 月、4 月、7 月和 10 月的第三个星期三所在的一周。当启动网络升级或在计划过程的早期阶段,应以特定窗口为目标。

给审查者的说明: 选择的月份和星期是为了提供初步建议,并且在最终确定之前可以轻松修改。它们在许多第三季度和第四季度假期之间穿针引线。

实施者应做好在升级前两到四周准备好 Roadmap 网络升级的软件。因此,应在网络升级窗口前四周到六周选择网络升级的区块号。诸如此类调度细节,例如此选择是在测试网部署之前还是之后做出,都不在本 EIP 的范围内。

根据 Roadmap 网络升级的发布节奏,某些窗口将不会被使用。例如,如果选择六个月的发布节奏,则路线图升级不会在相邻的升级窗口中发生。因此,对于六个月的节奏,如果路线图升级发生在 4 月,则 7 月的窗口将不用于网络升级。

如果计划的路线图升级需要重新安排,则应强烈考虑将升级重新安排到三个月后的下一个窗口。就六个月的 cadence 而言,这可能会导致发布位于相邻的发布窗口中。对于三个月的 cadence,下一个网络升级将与当前升级合并,或者下一个网络升级将被延迟。

为了与计划的发布窗口兼容,Roadmap 网络升级的 cadence 应该是三个月的倍数。无论是三个月、六个月、九个月还是更长时间的 cadence 都不在本 EIP 的范围内。

Priority 网络升级

Priority 网络升级是为需要比路线图网络升级更紧急的升级保留的,但不会对网络或生态系统构成系统性风险。迄今为止,还没有 Priority 升级的例子。可能的例子可能包括需要在多个升级中发生的路线图升级,或者对于已经存在缓解措施的安全风险,通过网络升级可以更好地解决这些风险。另一个可能的原因可能是由于推迟的路线图升级而解除难度炸弹。

Priority 网络升级最好在未使用的路线图启动窗口中启动,即 1 月、4 月、7 月和 10 月的第三周。如有必要,它们可以在任何一个月的第三周启动,但应强烈考虑并优先考虑未使用的路线图启动窗口。

Priority 网络升级应该提前宣布,并提前选择一个区块,以便主要客户端的实施者可以及时发布带有所需区块号的软件。这些发布应在启动窗口前至少一周进行。因此,应提前两到四周选择 Priority 启动窗口。

Critical 网络升级

Critical 网络升级是旨在解决协议或生态系统的系统性风险的网络升级。历史范例包括 Dao Fork、Tangerine Whistle 和 Spurious Dragon。

本 EIP 不提供对这些紧急硬分叉的开发和部署的指导或限制。这些升级通常在客户端实施者之间就系统性风险的解决方案达成一致后立即启动。

建议此类升级执行解决导致需要进行 Critical 网络升级的问题所需的最小更改量,并将其他更改集成到后续的 Priority 和 Roadmap 网络升级中。

网络升级区块号选择

在选择激活区块时,该号码可用于传达特定网络在以太坊生态系统中的角色。作为价值存储或以其他方式达到生产级别的网络比作为技术演示或明确指定用于测试的网络具有不同的稳定性问题。

迄今为止,所有主网激活区块都以三个或更多零结尾,包括 Critical 网络升级。Ropsten 和 Kovan 最初以三个零开头,但切换到回文数。Rinkeby 始终具有回文激活区块。Goerli 尚未执行网络升级。

为了延续这种模式,主网部署和生产级网络的网络升级激活区块号应选择一个以 10 为底的表示形式以三个或更多零结尾的数字。

对于 testnet 和测试或开发级别的网络运营商,我们鼓励选择一个以 10 为底的回文数的区块激活号。

Roadmap 和 Priority 网络升级的区块号应选择为预计在启动窗口期间相对接近星期三 UTC+0 12:00 发生。这应该导致实际的区块生产发生在所选星期的一周的星期一和星期五之间的某个时间。

理由

定义启动窗口的基本原理是让运行以太坊基础设施的企业可以预测升级可能发生或不发生的计划。知道升级不会发生可以使企业清楚地了解在不受外部更改影响的情况下执行内部升级的时间范围。它还为开发人员和 IT 专业人员提供了一个安排休假时间的时程表。

向后兼容性

除了特定的启动窗口之外,先前的网络升级都将符合这些策略。Homestead、Byzantium 和 Constantinople 本来是 Roadmap 网络升级。没有 Priority 网络升级,尽管 Spurious Dragon 本来是一个很好的候选对象。Dao Fork 是对 TheDao 的响应而进行的 Critical 网络升级。Tangerine Whistle 和 Spurious Dragon 是针对 Shanghai Spam Attacks 的关键升级。Constantinople Fix(如参考测试中所述)是对 EIP-1283 安全问题的响应。

如果此策略在 Constantinople 之前就已经存在,那么在 Ropsten 测试网共识失败后,最初的 2018 年发布可能会被推迟到下一个窗口。由于难度炸弹的影响,EIP-1283 问题可能会导致窗口外升级。

实施

本 EIP 中的窗口预计将在 Istanbul Network 升级之后启动,这是下一个计划的 Roadmap 升级。Istanbul 目前计划于 2019-10-16 在主网上发布,这与本 EIP 中的计划兼容。

从 Istanbul 开始的 Roadmap 升级窗口如下:

区块目标 启动周范围
2019-10-16 2019-10-14 to 2019-10-18
2020-01-15 2020-01-13 to 2020-01-17
2020-04-15 2020-04-13 to 2020-04-17
2020-07-15 2020-07-13 to 2020-07-17
2020-10-21 2020-10-19 to 2020-10-23
2021-01-20 2021-01-18 to 2021-01-22
2021-04-21 2021-04-19 to 2021-04-23
2021-07-21 2021-07-19 to 2021-07-23
2021-10-20 2021-10-18 to 2021-10-22
2022-01-19 2022-01-17 to 2022-01-21
2022-04-20 2022-04-18 to 2022-04-22
2022-07-20 2022-07-18 to 2022-07-22
2022-10-19 2022-10-17 to 2022-10-21

到明年为止的 Priority 窗口(不包括 Roadmap 窗口)如下:

区块目标 启动周范围
2019-11-20 2019-11-18 to 2019-11-22
2019-12-18 2019-12-16 to 2019-12-20
2020-02-19 2020-02-17 to 2020-02-21
2020-03-18 2020-03-16 to 2020-03-20
2020-05-20 2020-05-18 to 2020-05-22
2020-06-17 2020-06-15 to 2020-06-19
2020-08-19 2020-08-18 to 2020-08-21
2020-09-16 2020-09-14 to 2020-09-18
2020-11-18 2020-11-16 to 2020-11-20
2020-12-16 2020-12-14 to 2020-12-18

版权

通过 CC0 放弃版权及相关权利。

Citation

Please cite this document as:

Danno Ferrin (@shemnon), "EIP-1872: 以太坊网络升级窗口 [DRAFT]," Ethereum Improvement Proposals, no. 1872, March 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1872.