Eth1.x 术语了解吗?

知识点来了 Eth1.x 术语你都了解吗?(上)


原标题:干货 | Eth1.x 术语表(上)

目录

  • 数据

  • 区块链历史

  • 见证数据

  • 节点类型

数据

Header(区块头)

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


Block(区块)

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

  • 区块头

  • Block Body(区块体);区块体又由两部分内容组成:

    • Transactions(交易,事务)

    • Uncles(叔块信息)

Block Body(区块体)

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

事务

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

事务的构建

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

  • 必须知道发起事务的 Account(账户)的nonce(流水号)。

  • 一般来说需要使用eth_estimateGas方法来确定该事务需要使用的gas消耗量。

  • 需要该账户的私钥,用于生成数字签名。

叔块信息

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

区块链历史

Header Chain(全部区块头)

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

  • 截至 2021 年 1 月 29 日,约有 1100 万个区块头

  • 截至 2021 年 1 月 29 日,全体区块头约占用 5 GB 的存储空间

  • 是验证其余大部分链数据所必需的数据

  • 如果使用 Header Accumulator(区块头累加器),我们将能证明某个区块头存在于主链上

Block Body History(区块体历史)

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

  • 截至 2021 年 1 月 29 日,约有 1100 万个区块体

  • 截至 2021 年 1 月 29 日,所有区块体需占用约 120 GB 的存储空间

Receipt History(收据历史)

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

  • 截至 2021 年 1 月 29 日,约有 10 亿条收据

  • 截至 2021 年 1 月 29 日,所有收据需占用约 60 GB 存储

State(状态)

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

账户

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

  • 字段:balance/nonce/state_root/code_hash

合约存储项

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

  • 所有数据都以0 - 2^^256-1 范围内的整数作为键 (该整数也被当作存储槽的序号)

Contract Code(合约代码)

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

Archive State(归档状态)

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

  • 使用 Naive Database Layout,存储归档状态需占用约 7 TB 的存储

  • 使用一些基于 Flat Database Layout 的高级技巧,Trube Geth 客户端使用约 800 GB 实现了归档状态存储

Recent State(近期状态)

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

  • “近期” 一般来说是 128~256 个区块内

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

Cold State(冷状态)

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

Database Layouts(数据库布局)

Naive Database Layout

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

  • 导致性能低下以及高硬盘读写开销

  • 相对易于理解和实现

  • 此方案下的垃圾回收算法更加复杂

Flat Database Layout

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

  • 性能更高、硬盘开销更小

  • 更难以理解和实现

Witness(见证数据)

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

Block Witness(区块见证数据)

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

Transaction Witness(事务见证数据)

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

Node Type(节点类型)

Full Node(全节点)

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

  • 存储了所有的区块头

  • 存储了全部区块体历史

  • 存储了全部收据历史

  • 存储着近期状态

  • 维护者一个主链区块索引系统

  • 维护者一个主链事务索引系统

  • 参与ETHDevP2P 协议(译者注:该协议用于在以太坊网络的对等节点之间传输数据,如区块、事务、状态数据等;以太坊交易的广播就是靠这个协议实现的)

Archive Node(归档节点)

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

LES Light Node(LES 轻节点)

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

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

Stateless Node(无状态节点)

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

  • 此类客户端不需要状态数据来执行区块,因为它们可以使用见证数据

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

Ultra Light Node(极轻节点)

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

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

ETHDevP2P 协议

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

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

  • 参与 Transaction Gossip(事务广播)

  • 参与 Block Gossip(区块广播)

  • 拥有近期状态

  • 拥有完整的区块链历史

LESDevP2P Protocol

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

LES 服务器

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

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

  • 完整的近期状态

  • 全部区块链历史

  • 主链 区块索引/事务索引

  • 有能力参与事务广播

  • 有能力参与区块广播

LES 客户端

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

(未完)

原文链接: https://github.com/ethereum/stateless-ethereum-specs/wiki/Glossary
作者: Piper Merriam
翻译: 阿剑


24小时热点

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2320904

Opera House

了解CHIA这篇就够了

这些清单旨在作为信息来源和研究的出发点,为你的研究提供常识性 ...

636559

Kusama 测试网

什么是 Infura?

11 月 11 日,因以太坊和 IPFS 的 API 服务供 ...

626973

IDG资本

OpenSea 为例子教大家如何购买 NFT

就如同流动性挖矿刚起步时候一样,大多数用户并不了解 NFT ...

609663

CryptoSpells

绿地集团数字化战略的NFT形象——8302款无聊猿!

30年前,绿地还是一家注册资本2000万元的小型绿化公司,历 ...

493829

Bybit

什么是私钥?

私钥是怎么来的,它跟你的密码学货币资产有何关联。

486042

芝麻开门交易所

2024年模因币牛巿SHIB是否能达到1美元?市场另外3个meme币也在热卖

SHIB是仅次于DOGE的第二大流行模因币,它能否达到1美元 ...

476086

Business2Community

数字人直播软件多少钱

数字人直播软件根据您使用的平台、功能范围不同,价格也不尽相同 ...

459247

MXC交易所

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

449990

DigiFinex

链圈百科:环境影响评价信用平台

环境影响评价信用平台是指一种使用信用技术来评估环境影响并对社 ...

417532

Tokhun