刚刚在Linux上部署了私有链:分析一下前3个区块
block(0):
block(1):
block(2):
介绍一下各个字段的含义:
- Difficulty:区块的难度。Block的Difficulty由共识算法基于parentBlock的Time和Difficulty计算得出,它会应用在区块的‘挖掘’阶段。
- extradata:预留它用(例如Clique共识机制使用)
- GasLimit:区块内所有Gas消耗的理论上限。该数值在区块创建时设置,与父区块有关。具体来说,根据父区块的GasUsed同GasLimit * 2/3的大小关系来计算得出。
- GasUsed:区块内所有Transaction执行时所实际消耗的Gas总和。
- hash:该区块的哈希值
- logsBloom:Bloom过滤器(Filter),用来快速判断一个参数Log对象是否存在于一组已知的Log集合中,用于查询。
- miner:产生这个区块的矿工账号地址
- mixhash:可以简单理解为比特币区块头里的随机值,以太坊具体的挖矿计算比比特币复杂得多,但大概的流程就是不断尝试不同的mixHash来获得符合条件的Nonce。
- Nonce:一个64bit的哈希数,它被应用在区块的"挖掘"阶段。
- Number:区块的序号。Block的Number等于其父区块Number +1。
- ParentHash:该区块的父区块的哈希值。除了创世块(Genesis Block)外,每个区块有且只有一个父区块。我们可以看到创世块的parenthash是0。
- ReceiptRoot:存储该区块的交易的回单的Merkle树的根节点的哈希。
- UncleHash: 该区块所包含的叔块的哈希值。
- size:区块大小。
- stateroot:StateDB中的“state Trie”的根节点的RLP哈希值。Block中,每个账户以stateObject对象表示,账户以Address为唯一标示,其信息在相关交易(Transaction)的执行中被修改。所有账户对象可以逐个插入一个Merkle-PatricaTrie(MPT)结构里,形成“state Trie”。
- Timestamp:区块“应该”被创建的时间。由共识算法确定,一般来说,要么等于parentBlock.Time + 10s,要么等于当前系统时间。
- totaldifficulty:产生区块花费的总难度。
- transactions:交易列表(数组),这边是空的,说明以太坊产生新的block不需要交易,只要满足工作量证明(pow)就可以产生new block。
Reference:
https://www.jianshu.com/p/b7e6e8d1b9cb
https://blog.csdn.net/weixin_41545330/article/details/79394153