Alert Source Discuss
⚠️ Draft Meta

EIP-7927: 历史过期元信息

与 Pectra 共同发生的历史过期变更的元 EIP

Authors Piper Merriam (@pipermerriam)
Created 2025-03-28
Discussion Link https://ethereum-magicians.org/t/history-expiry-meta-eip/23359
Requires EIP-4444

摘要

本 Meta-EIP 记录了历史过期的激活过程和计划,并提供了相关其他 EIP 的链接。

动机

EIP-4444 记录了历史过期本身的动机。

本 EIP 旨在记录在主网上激活历史过期的过程,Sepolia 上的测试网激活,devnet 测试以及围绕历史过期的其他信息,这些信息不能完全适合任何支持 EIP。

规范

本文档中的关键词“必须”,“禁止”,“必需”,“应”,“不应”,“应该”,“不应该”,“推荐”,“不推荐”,“可以”和“可选”应按照 RFC 2119 和 RFC 8174 中的描述进行解释。

执行层客户端必须实现 EIP-7642 以支持 DevP2P 上的 eth/69

执行层客户端可以根据 EIP-7639 删除合并前的历史记录。

共识层客户端不应依赖执行层客户端具有来自合并前区块的存款日志,并且应实现 EIP-6110

主网激活

历史过期在主网上的激活将在 Pectra 硬分叉激活后不久(几天或几周)进行。短暂的延迟是为了确保在客户端开始删除历史记录之前,所有分叉前的存款日志都已处理完毕。

测试网激活

历史过期的测试将在 Sepolia 测试网上进行。执行客户端可以从 2025-05-01 开始删除合并前的 Sepolia 历史记录。

Devnet 激活

执行客户端可以在 devnet 上测试历史记录的删除。

原理

为什么要等待 Pectra

共识层客户端依赖于合并前的存款日志。EIP-6110 将在 Pectra 分叉激活时消除这种依赖性。

为什么要删除 Sepolia 历史记录

Sepolia 历史记录的删除旨在作为主网激活的试验场。

为什么要删除 Devnet 历史记录

Devnet 历史记录的删除旨在在 Sepolia 之前进行测试,以避免 Sepolia 网络上的任何中断。

这不会破坏 JSON-RPC 吗

历史过期并不要求客户端删除这些数据。它只是允许他们这样做。希望在其客户端中保留此历史记录以用于 JSON-RPC 用例的客户端可以自由这样做。

合并前的历史记录将存储在哪里

合并前的数据以 e2store 存档格式提供。这些存档的公共列表可以在 eth-clients 网站上的 eth-clients 历史数据端点列表中找到。

Portal 网络还实现了用于存储和检索所有以太坊合并前区块数据的去中心化点对点解决方案。

EIP-7801 DevP2P 协议还提供了一种用于检索此数据的点对点解决方案。

向后兼容性

DevP2P eth 协议

DevP2P eth 协议的客户端需要升级到 EIP-7642 中指定的新 eth/69 版本。

合并前的存款日志

共识层客户端一直依赖于合并前块的存款日志。删除历史记录将使共识层客户端无法访问这些日志。EIP-6110 缓解了此问题

提供合并前的 JSON-RPC

选择删除历史记录的执行客户端将无法再为以下端点提供合并前请求的 JSON-RPC 请求,而无需从替代数据源获取数据。

  • eth_getBlockTransactionCountByHash
  • eth_getBlockTransactionCountByNumber
  • eth_getUncleCountByBlockHash
  • eth_getUncleCountByBlockNumber
  • eth_getBlockByHash
  • eth_getBlockByNumber
  • eth_getTransactionByHash
  • eth_getTransactionByBlockHashAndIndex
  • eth_getTransactionByBlockNumberAndIndex
  • eth_getTransactionReceipt
  • eth_getUncleByBlockHashAndIndex
  • eth_getUncleByBlockNumberAndIndex

安全考虑

完整历史同步

执行层客户端将无法再从 DevP2P eth 协议执行完整的历史同步。希望保留此功能的客户端将需要从替代来源获取合并前的区块。客户端应确保它们继续正确验证来自替代位置的区块数据。

部分历史同步

执行部分同步的执行层客户端将需要调整其同步算法,使其仅返回到合并区块,而不是像以前那样一直追溯到创世区块。客户端应确保其同步算法和其他功能能够处理不再本地可用的这些数据。

版权

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

Citation

Please cite this document as:

Piper Merriam (@pipermerriam), "EIP-7927: 历史过期元信息 [DRAFT]," Ethereum Improvement Proposals, no. 7927, March 2025. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-7927.