即以太坊协议所定义的 Header 对象。(译者注:区块头包含一个区块的元信息)
Block(区块)一个区块由两部分数据组成:
区块头
Block Body(区块体);区块体又由两部分内容组成:
Transactions(交易,事务)
Uncles(叔块信息)
即以太坊协议所定义的 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 的存储
温馨提示:文章链接http://www.syajjt.com/bzzx/2481.html 全网首发,转载请备注出处谢谢!