当前位置:主页 > 列表页 > 正文

干货 | Eth1.x 术语表

2021-03-01 19:12 | 出处: EthFans


数据


Header(区块头)

即以太坊协议所定义的 Header 对象。(译者注:区块头包含一个区块的元信息)


Block(区块)

一个区块由两部分数据组成:


Block Body(区块体)

就是一个区块中的事务和叔块信息的集合。


事务

即以太坊协议所定义的 Transaction 对象。(译者注:事务可视为触发以太坊协议状态变更的操作的基本单元)

事务的构建

创建一条完全签名的事务的过程:


叔块信息

即被该区块视作叔块的区块的区块头。(译者注:对于任一区块来说,叔块指的是那些上溯 7 代及以内、并非其祖先区块的有效区块;一个区块可标记两个叔块;标记叔块可使区块挖出者获得额外的 “侄块奖励”,也会使叔块挖出者获得奖励,奖励大小随叔块与侄块之间的代际距离递减;叔块内的所有事务视作没有上链,除非另一些区块中包含了这些事务,否则都回到待打包事务的内存池中)


区块链历史


Header Chain(全部区块头)

所有历史区块的区块头的集合


Block Body History(区块体历史)

所有由事务和叔块信息所组成的历史区块的集合


Receipt History(收据历史)

由历史事务所产生的所有收据的集合


State(状态)

所有账户及 contract storage(合约存储项)的集合


账户

Header.state_root 所代表的主状态树的一部分


合约存储项

每个账户的 Account.state_root 标识的单个存储值


Contract Code(合约代码)

合约代码仅使用 Account.code_hash 来指代;并非状态的显式部分。


Archive State(归档状态)

所有历史状态的集合。详见 Archive Node(归档节点)


Recent State(近期状态)

指作为 近期 状态根一部分的状态。

维护这一数据需要某种形式的垃圾回收技术,以清除不再是近期状态一部分的状态对象


Cold State(冷状态)

指的是很长一段时间没有被触及(访问 及 修改)的状态对象


Database Layouts(数据库布局)


Naive Database Layout

该数据库实现将所有的状态对象都存储为单个的树节点,通过节点哈希值来访问


Flat Database Layout

将所有的状态对象都存储为树的路径,某种程度上有点类似于 键值对 存储


Witness(见证数据)


即以一种可验证的形式存储的状态数据


Block Witness(区块见证数据)

一种类型的见证数据,提供了执行区块所需的所有状态数据


Transaction Witness(事务见证数据)

一种类型的见证数据,提供了一笔事务的 EVM 执行所需的所有状态数据


Node Type(节点类型)


Full Node(全节点)

指一个满足了下列要求的节点:


Archive Node(归档节点)

其他特点与全节点都一样,但归档节点会存储全部归档状态。一般都需要执行 Full Sync(全量同步)。


LES Light Node(LES 轻节点)

连接到 LES DevP2P 协议的客户端,意图是跟上区块链并暴露 JSON-RPC API。

此类客户端依赖于链接到至少一个 LES Server(LES 服务器)来满足对数据的需求。


Stateless Node(无状态节点)

一个仍在计划中的客户端类型,如果能够实现区块见证数据的话,就可使之成真。

(TODO:还需增加对其他功能所需技术的描述)


Ultra Light Node(极轻节点)

增加这个术语只是为了区分当前类型的轻节点和一种新类型的轻节点 —— Piper

一种仅暴露 JSO-RPC API 的节点。


P2P 协议


ETH DevP2P 协议

DevP2P 网络中所用的点对点协议,是所有主网客户端的基石

作为这个点对点网络中的一部分,一个节点需要:


LES DevP2P 协议

作为轻客户端基础的 DevP2P 网络所用的点对点协议

LES 服务器

参与 LES 网络、向 LES 客户端提供数据的节点。

在这个网络中成为一个服务器需要:

LES 客户端

参与 LES 网络、向 LES 服务器请求数据的节点。


节点行为


Gossip

事务广播

区块广播


历史数据检索


状态检索


追随区块链


事务验证

验证事务需要:


区块验证

区块验证包含下述事项中的所有内容:


主链索引


主链区块索引

把区块号映射为该高度的主链区块的哈希值


主链事务索引

把事务的哈希值映射成该事务所在主链区块的哈希值,以及该事务在该块内的索引值。


区块头累加器

一类能让我们高效证明某个区块头来自主链的机制。基于 https://ethresear.ch/t/double-batched-merkle-log-accumulator/571


同步


历史同步

区块头同步
即一个节点追赶区块链的顶端时所用的进程。基于不同的安全等级,有几种同步方法“
当前,只有掌握了全体区块头,才能够任意地验证其他历史数据。区块头累加器可以改善这个状态,使得一个客户端可以把检查点设在区块链顶端,而仍然能够验证历史数据。

区块同步
客户端用来 pull(拉取)历史事务和叔块信息的进程。

收据同步
不执行 Full Sync(完全同步)的客户端往往需要通过 ETH DevP2p 协议来取得历史收据


状态同步

节点获得近期状态完整副本的机制。
相关文章