EIP4 - EIP 分类
# 摘要
本文件描述了 EIP 的分类方案,改编自 BIP 123 (opens new window)。
EIP 是按系统层分类的,系统层编号较低,涉及更复杂的互操作性需求。
该规范定义了各个层,并提出了决定一个特定标准 EIP 属于哪一层的条件。
# 动机
以太坊是一个涉及许多不同标准的系统。一些标准是互操作性的绝对要求,而另一些标准可以被认为是可选的,让实现者可以选择是否支持它们。
为了有一个更紧密地反映互操作性需求的 EIP 过程,有必要对 EIP 进行相应的分类。较低层次在使标准被接受和部署方面有相当大的挑战。
# 规范
标准 EIP 分为以下四层:
- 共识
- 网络
- API/RPC
- 应用
# 1. 共识层
共识层定义加密的承诺结构。它的目的是确保任何人都能在本地评估一个特定的状态和历史是否有效,提供解决保障,并确保最终的融合。
共识层不关心消息如何在网络上传播。
对共识层的分歧可能导致网络划分或分叉,不同的节点可能最终接受不同的不兼容的历史。我们进一步将共识层的变化细分为软分叉和硬分叉。
# 软分叉
在软分叉中,一些在旧规则下有效的结构在新规则下不再有效。在旧规则下无效的结构在新规则下仍然无效。
# 硬分叉
在硬分叉中,在旧规则下无效的结构在新规则下有效。
# 2. 网络层
网络层指定以太坊线路协议 (eth) 和轻以太坊子协议 (les) 。RLPx 在 [https://github.com/ethereum/devp2p devp2p仓库] 中被排除并跟踪。
基本节点互操作性只需要子协议的一个子集。节点可以支持进一步的可选扩展。
总是可以添加新的子协议而不破坏与现有协议的兼容性,然后逐渐弃用旧协议。通过这种方式,可以在不存在严重业务中断风险的情况下,对整个网络进行升级。
# 3. API/RPC 层
API/RPC 层指定应用程序可访问的更高级别调用。基本网络互操作性并不需要对这些 EIP 的支持,但某些客户机应用程序可能需要这些支持。
在这一层有允许竞争标准而不破坏基本网络互操作性的空间。
# 4. 应用层
应用程序层指定高层结构、摘要和公约,允许不同的应用程序支持类似的特性和共享数据。