Alert Source Discuss
Meta

EIP-4: EIP 分类

Authors Joseph Chow (@ethers)
Created 2015-11-17

摘要

本文档描述了 EIP 的分类方案,改编自 BIP 123

EIP 根据系统层进行分类,编号较低的层涉及更复杂的互操作性要求。

本规范定义了各层,并提出了具体的标准来决定特定标准 EIP 属于哪一层。

动机

以太坊是一个涉及许多不同标准的系统。一些标准是互操作性的绝对要求,而另一些标准可以被认为是可选的,让实现者可以选择是否支持它们。

为了使 EIP 流程更紧密地反映互操作性要求,有必要对 EIP 进行相应分类。较低的层在接受和部署标准方面提出了更大的挑战。

规范

标准 EIP 分为四层:

  1. 共识层
  2. 网络层
  3. API/RPC
  4. 应用层

1. 共识层

共识层定义了密码承诺结构。其目的是确保任何人都可以本地评估特定状态和历史是否有效,提供结算保证,并确保最终收敛。

共识层不关心消息如何在网络上传播。

关于共识层的分歧可能导致网络分割或分叉,不同的节点最终可能会接受不同的不兼容历史。我们将共识层更改进一步细分为软分叉和硬分叉。

软分叉

在软分叉中,一些在旧规则下有效的结构在新规则下不再有效。在旧规则下无效的结构在新规则下仍然无效。

硬分叉

在硬分叉中,一些在旧规则下无效的结构在新规则下变得有效。

2. 网络层

网络层指定了以太坊线协议 (eth) 和轻量级以太坊子协议 (les)。RLPx 被排除在外,并在 [https://github.com/ethereum/devp2p devp2p repository] 中跟踪。

只有一部分子协议是基本节点互操作性所必需的。节点可以支持进一步的可选扩展。

总是可以添加新的子协议,而不会破坏与现有协议的兼容性,然后逐步弃用旧协议。通过这种方式,可以升级整个网络,而不会出现严重的服务中断风险。

3. API/RPC 层

API/RPC 层指定了应用程序可以访问的更高级别的调用。基本网络互操作性不需要支持这些 EIP,但某些客户端应用程序可能会期望支持这些 EIP。

这一层有空间允许竞争标准,而不会破坏基本网络互操作性。

4. 应用层

应用层指定了高级结构、抽象和约定,这些结构、抽象和约定允许不同的应用程序支持类似的功能并共享数据。

Citation

Please cite this document as:

Joseph Chow (@ethers), "EIP-4: EIP 分类," Ethereum Improvement Proposals, no. 4, November 2015. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-4.