主页 > imtoken钱包最新版本 > 以太坊数据大小 以太坊数据存储详情

以太坊数据大小 以太坊数据存储详情

imtoken钱包最新版本 2023-11-09 05:07:54

本文整理分析区块、交易、合约数据在以太坊网络中是如何存储的。

块状结构

一个区块由两部分组成,区块头和区块体。 详细结构图如下。

块头

区块头存储了区块的元信息,用于标识、验证和解释区块的内容。 区块头中的字段分为两部分:区块头和区块体。

涉及领域

:父块的哈希值。

Root:世界状态的hash,stateDB的RLP码的hash值。

TxHash(root hash):交易字典树的根哈希,由本区块所有交易的交易哈希计算得出。

: 收据树的哈希值。

以太坊经典和以太坊_sitebitcoin86.com 以太坊以太经典_以太坊换算

以太坊怎么修改数据_以太坊矿池数据_以太坊数据大小

time:区块生成时的 Unix 时间戳。

ID:块ID。

Bloom:布隆过滤器,快速定位日志是否在本块。

公链的特点还有一些方面:

: 挖出这个区块的矿工地址,因为挖出这个区块奖励的ETH会分配到这个地址。

:当前工作量证明 (Pow) 算法的复杂性。

:每个区块的gas消耗量在线。

GasUsed:当前区块中所有交易使用的Gas总和。

: 挖矿得到的Pow算法证明汇总,即挖矿的工作量证明。

sitebitcoin86.com 以太坊以太经典_以太坊换算_以太坊经典和以太坊

以太坊数据大小_以太坊怎么修改数据_以太坊矿池数据

nonce:挖矿找到的满足条件的值。

Uncle:Uncle块与以太坊的共识算法有关。

状态树、交易树、收据树

块头包含三棵树的根:

: 状态树的根哈希

: 交易树的根哈希

: 收据树的根哈希

身体

区块体包括所有打包在这个区块中的交易

以太坊经典和以太坊_sitebitcoin86.com 以太坊以太经典_以太坊换算

以太坊矿池数据_以太坊数据大小_以太坊怎么修改数据

块存储

块头存储

以太坊将区块头转化为键值对存储在LevelDB中,如下图;

headerPrefix + num + hash  -> rlp(header)

块存储

bodyPrefix + num + hash -> rlp(block)

区块与每棵“树”的关系

存储结构如下图所示。 区块中只存储交易树、状态树、收据树根节点的哈希值。

以太坊区块链从创世块开始。 从这个起点(区块高度为 0 的创世状态)开始,交易、合约和挖矿等活动不断改变以太坊区块链的状态。 在以太坊中,账户余额(存储在状态树中)随着每笔交易(存储在交易树中)而变化。

sitebitcoin86.com 以太坊以太经典_以太坊换算_以太坊经典和以太坊

以太坊数据大小_以太坊怎么修改数据_以太坊矿池数据

MPT树

MPT(Merkle Trie),是一种前缀树,使用哈希来索引数据。 键查询值就是使用键在MPT树上建立索引。 经过多个中间节点后,最终到达存放数据的叶子节点。 该图显示了全局状态树。 四个叶节点(key/value 值)组织如下,形成一棵状态树。

状态树、交易树、收据树、存储树都是MPT树。

状态树

以太坊只有一棵全局状态树。 这个全局状态树不断更新。 此状态前缀树包含一组用于以太坊网络中每个帐户的键值对。 如下图,State Trie中的“key”是一个160位的标识符(以太坊账户的地址),“value”是RLP编码的nonce值、余额、存储树根节点hash和代码哈希。

商店尝试

存储树是存储智能合约数据的地方。 每个以太坊账户都有自己的存储树。 存储树根节点的 256 位散列存储在全局状态树中。

以太坊矿池数据_以太坊怎么修改数据_以太坊数据大小

这里需要注意的是,智能合约的数据并不存在于区块中,而是存在于区块链的状态数据库(存储树)中。 状态数据库/状态树包含存储、余额、代码和存储树的根。 状态数据库可以保证区块链系统的持续灵活性。 但区块数据依然存在,区块包含历史交易信息。

以太坊换算_以太坊经典和以太坊_sitebitcoin86.com 以太坊以太经典

在编译智能合约时,会为变量(每一项数据)分配一个地址。 这些地址可以转换为状态数据库中的密钥。 基于键,可以从状态数据库中检索相应的值。 价值就是契约。 数据。 键和值都是 32 字节。

合约中的每个变量都占用一个存储槽。 单击此处了解详情。

32字节提供的密钥数量最多为2^256个存储位置,以太坊数据大小,每个位置可存储32字节数据,因此一般认为智能合约的存储空间是无限的。

贸易树 (Trie)

交易树是MPT树以太坊换算,每个以太坊区块都有自己独立的交易树。 一个区块往往包含多笔交易,交易的先后顺序当然是由打包交易的矿工决定的。 在交易树中查找交易的路径是通过(RLP编码方法)检索交易在区块中的索引来获得的。 经过挖矿验证的区块将永远不会再次更新,因此区块中的交易顺序也将固定下来。 这意味着一旦您从区块的交易前缀树中找到交易,您稍后可以通过相同的路径检索它。

收据树 (Trie)

每个区块都有一个独立的收据树root(),其结构与交易树相同。 收据树包含交易执行期间生成的相应收据。 如果一笔交易是智能合约的执行,以太坊虚拟机在执行过程中会产生程序员定义的日志。 定义格式。

收据树中的节点是交易的收据。 收据是一个键值对映射,它的键是交易号以太坊换算,它的值是RLP编码的四个字段:交易后的状态,交易实际花费的交易手续费,交易产生的日志集合, 以及日志的索引结构。 在实际应用中,区块中的若干笔交易成功执行后,也会产生相应的交易回执,由MPT树组织,计算根哈希值,称为交易树。 该值将进入块头以永久保留。 所有收据及收据对应的日志将保存在全球以太坊节点计算机的数据库中,方便客户查询。

挖矿网Ethos中文网拥有简单易用的挖矿系统,为挖矿行业提供教程软件和矿机评测及交易信息,对比计算各种数字货币在挖矿网的挖矿收益,以及介绍矿网挖矿工具,矿场最新动态等。

矿业网络,版权所有丨如未注明,均为原创丨本站采用BY-NC-SA协议授权

转载请注明原文链接:以太坊数据大小以太坊数据存储详解