本文档概述了主网合并的各项准备工作,涉及规范制定、单元测试、集成测试、压力测试、模糊测试、测试网以及相关研发等多个方面,确保以太坊顺利过渡到权益证明(PoS)共识机制,包括共识层、执行层和引擎API的详细规范,以及各种测试和研发任务的完成情况。
合并主网就绪检查清单
本文档概述了为使合并准备好主网发布而需要完成的各项任务。
注意:项目集合并非最终版本,将与正在进行的研发和实施工作保持一致。
目录
<!-- TOC -->
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- /TOC -->
规范
元规范
共识层
执行层
引擎 API
- [x] 基本 JSON-RPC 扩展,链接(在 rayonism 中使用)
- [x] 生产改进 Engine API。之前的文档:WIP 文档,互操作版本
- 支持执行层状态同步
- 支持异步区块插入
- 考虑支持
Consensus <-> Execution 一致性(例如,从崩溃或执行层上的错误插入中恢复)
- 考虑双向通信
- ...
- [x] 讨论 JSON-RPC 与 websockets 与 restful http
- [x] 迁移到 execution-APIs 或其他永久位置,链接
- [x] 从规范中删除未经身份验证的端口 #219
面向公众的文档
测试
单元测试
- [x] 共识
- [x] 继承所有先前的单元测试和生成器
- [x] 具有模拟执行层的合并特定测试
- [x] 跨合并边界的分叉和分叉选择测试
- [x] 执行
集成测试
- [x] 测试网混乱消息
- [x] Hive
- [x] 每周进行影子分叉以持续测试实时转换和 TX 重放
- [x] [奖励] 额外的模拟测试 -- 例如 kurtosis、antithesis 等
模糊测试
测试网
- [X] 没有转换过程的短时 devnet
- [X] 具有转换过程的短时 devnet
- [x] 长时间运行的 devnet
- [x] 分叉公共测试网
- [x] Ropsten(合并后已弃用)
- [x] Sepolia
- [x] Goerli
研发
与合并相关的大多数研究已经完成。本节列出了与合并间接相关或锦上添花,但仍需要研发工作的主题。
- [x] 转换过程分析
- [x] 执行层同步
- [x] 历史区块同步(反向标头,然后正向主体)
- [x] 历史状态同步(乐观信标区块转换提供 EL 同步的头部数据)
- [x] 转换期间的同步(正向同步到 PoW TTD,反向同步到 TTD 过去)
- [x] 发现[这里实际上有什么可做的吗?]
- [x] [在研究中,不包括合并] 执行层托管证明
- [ ] 考虑弱主观性周期的影响
- [x] 生成准确的弱主观性周期计算
- [ ] [进行中] 指定弱主观性检查点分发的标准数据格式和方法
- [x] 如果无效链最终确定,则进行灾难恢复
- [x] EL 将执行超出最终性的重组,但可能会产生较高的同步成本
- [x] [WIP] 客户端多路复用器(链接,注意:对 DR 没有帮助,但可以潜在地防止无效链被最终确定)
- [ ] 压力测试
- [ ] 单个客户端负载/指标
- [ ] 网络负载测试
- [ ] 更大的区块
- [ ] 更短的Slot时间
- [x] 大执行状态(影子分叉主网)
- [ ] 进一步的威胁分析
- [x] 费用市场行为变化(错过Slot的影响)