ethereum/EIPs
GitHub: ethereum/EIPs
以太坊改进提案(EIP)仓库是以太坊协议和应用层标准化文档的集中管理平台,致力于跟踪和记录以太坊生态中各类技术改进提案的制定、讨论与发布流程。
Stars: 13865 | Forks: 6003
# 以太坊改进提案 (EIPs)
EIP 项目的目标是为以太坊本身及其上构建的约定提供标准化和高质量的文档。本仓库以以太坊改进提案 (EIP) 的形式跟踪以太坊过去和正在进行的改进。[EIP-1](https://eips.ethereum.org/EIPS/eip-1) 规定了 EIP 的发布方式。
[状态页面](https://eips.ethereum.org/) 跟踪并列出 EIP,可分为以下几类:
- [核心 EIP](https://eips.ethereum.org/core) 是对以太坊共识协议的改进。
- [网络 EIP](https://eips.ethereum.org/networking) 规定了以太坊的点对点网络层。
- [接口 EIP](https://eips.ethereum.org/interface) 标准化了以太坊的接口,决定了用户和应用程序如何与区块链交互。
- [ERC](https://eips.ethereum.org/erc) 规定了应用层标准,决定了以太坊上运行的应用程序如何相互交互。
- [元 EIP](https://eips.ethereum.org/meta) 是需要某种共识的杂项改进。
- [信息性 EIP](https://eips.ethereum.org/informational) 是不需要任何形式共识的非标准改进。
**在编写 EIP 之前,必须先在 [Ethereum Magicians](https://ethereum-magicians.org/) 或 [Ethereum Research](https://ethresear.ch/t/read-this-before-posting/8) 上充分讨论想法。达成共识后,请仔细阅读和审阅 [EIP-1](https://eips.ethereum.org/EIPS/eip-1),其中描述了 EIP 流程。**
请注意,本仓库用于记录标准,而非帮助实现这些标准。此类咨询应提交至 [Ethereum Stack Exchange](https://ethereum.stackexchange.com)。关于 EIP 的具体问题和疑虑,最好在 EIP 前言中 `discussions-to` 标签所指向的相关讨论帖中发表评论。
如果您希望成为 EIP 编辑,请阅读 [EIP-5069](./EIPS/eip-5069.md)。
## 推荐引用格式
任何曾达到草案状态的 EIP 的规范 URL 位于 。例如,EIP-1 的规范 URL 为 。
请将未在 上发布的任何文档视为工作论文。此外,请将状态为"草案"、"审阅"或"最后召集"的已发布 EIP 视为不完整的草稿,并注意其规范可能会发生变更。
## 验证与自动合并
本仓库中的所有拉取请求必须通过自动化检查后才能自动合并:
- [eip-review-bot](https://github.com/ethereum/eip-review-bot/) 决定 PR 何时可以自动合并 [^1]
- 使用 [`eipw`](https://github.com/ethereum/eipw) 强制执行 EIP-1 规则 [^2]
- 使用 [HTMLProofer](https://github.com/gjtorikian/html-proofer) 强制执行 HTML 格式和断链检查 [^2]
- 使用 [CodeSpell](https://github.com/codespell-project/codespell) 强制执行拼写检查 [^2]
- 偶尔会出现误报。发生这种情况时,请提交 PR 编辑 [.codespell-whitelist](https://github.com/ethereum/EIPs/blob/master/config/.codespell-whitelist),且**仅**编辑 .codespell-whitelist
- 使用 [markdownlint](https://github.com/DavidAnson/markdownlint) 检查 Markdown 最佳实践 [^2]
可以在本地运行 EIP 验证器:
确保将 cargo 的 `bin` 目录添加到您的环境中(通常为 `PATH` 环境变量中的 `$HOME/.cargo/bin`)
```
cargo install eipw
eipw --config ./config/eipw.toml
```
## 在本地构建状态页面
### 安装前置条件
1. 打开终端。
2. 检查是否已安装 Ruby 3.1.4。[不支持更高版本](https://stackoverflow.com/questions/14351272/undefined-method-exists-for-fileclass-nomethoderror)。
ruby --version
3. 如果未安装 Ruby,请安装 Ruby 3.1.4。
4. 安装 Bundler:
gem install bundler
5. 安装依赖:
bundle install
### 构建本地 Jekyll 站点
1. 打包资源并启动服务器:
bundle exec jekyll serve
2. 在 Web 浏览器中预览本地 Jekyll 站点,地址为 `http://localhost:4000`。
有关 Jekyll 和 GitHub Pages 的更多信息,请参见[此处](https://docs.github.com/en/enterprise/2.14/user/articles/setting-up-your-github-pages-site-locally-with-jekyll)。
标签:API规范, Besu, DApp, EIP, EIP-1, ERC, ERC-1155, ERC-20, ERC-721, Ethereum Improvement Proposals, Ethereum Magicians, Ethereum Research, Ethereum Stack Exchange, EVM, EVTX分析, Gas优化, Geth, Layer2, Lighthouse, Nethermind, OpenEthereum, P2P网络, Prysm, Rollup, Solidity, Teku, Web3, 主网升级, 以太坊, 以太坊生态, 信息提案, 元提案, 共识协议, 分布式系统, 分片, 加密货币, 区块链, 区块链开发, 区块链治理, 区块链研究, 协议升级, 协议设计, 去中心化, 去中心化应用, 可视化界面, 响应大小分析, 威胁情报, 客户端实现, 密码学, 应用层标准, 开发者工具, 开发规范, 开源, 开源协作, 形式化验证, 手动系统调用, 技术提案, 技术文档, 技术路线图, 接口标准, 提案模板, 提案流程, 文档, 智能合约, 智能合约标准, 标准化, 标准化组织, 治理机制, 测试网, 版本管理, 状态跟踪, 硬分叉, 社区共识, 社区贡献, 网络升级, 网络层, 节点通信, 评审流程, 账户抽象, 跨链互操作性, 软分叉, 防御加固