以太坊区块数据详解
在以太坊区块链上,任何需要更改链上数据的行为(转账、部署合约、调用合约方法),都会被记录为一笔交易,被打包进区块中,下面我们来看详细了解下区块中到底保存了哪些信息。
区块字段解析
字段名 | 类型 | 描述 |
number | QUANTITY | 块编号,挂起块为null |
hash | DATA, 32 Bytes | 块哈希,挂起块为null |
mixHash | DATA, 32 Bytes | 块mix哈希(另外一种哈希算法),挂起块为null |
parentHash | DATA, 32 Bytes | 父块的哈希 |
nonce | DATA, 8 Bytes | 生成的pow哈希,挂起块为null |
sha3Uncles | DATA, 32 Bytes | 块中叔伯数据的SHA3哈希 |
logsBloom | DATA, 256 Bytes | 块日志的bloom过滤器,挂起块为null |
transactionsRoot | DATA, 32 Bytes | 块中的交易树根节点 |
stateRoot | DATA, 32 Bytes | 块最终状态树的根节点 |
receiptsRoot | DATA, 32 Bytes | 块交易收据树的根节点 |
miner | DATA, 20 Bytes | 挖矿奖励的接收账户 |
difficulty | QUANTITY | 块难度,整数 |
totalDifficulty | QUANTITY | 截止到本块的链上总难度 |
extraData | DATA | 块额外数据 |
size | QUANTITY | 本块字节数 |
gasLimit | QUANTITY | 本块允许的最大gas用量 |
gasUsed | QUANTITY | 本块中所有交易使用的总gas用量 |
timestamp | QUANTITY | 块时间戳 |
transactions | Array | 交易对象数组,或32字节长的交易哈希数组 |
uncles | Array | 叔伯哈希数组(叔伯块与正常区块结构一致,只是不包含交易) |
区块数据样例
交易记录字段解析
字段名 | 类型 | 描述 | 应用场景 |
hash | DATA, 32字节 | 交易哈希 | |
nonce | QUANTITY | 本次交易之前发送方已经生成的交易数量 | |
blockHash | DATA, 32字节 | 交易所在块的哈希,对于挂起块,该值为null | |
blockNumber | QUANTITY | 交易所在块的编号,对于挂起块,该值为null | |
transactionIndex | QUANTITY | 交易在块中的索引位置,挂起块该值为null | |
from | DATA, 20字节 | 交易发送方地址 | |
to | DATA, 20字节 | 交易接收方地址,对于合约创建交易,该值为null | |
value | QUANTITY | 发送的以太数量,单位:wei | |
gasPrice | QUANTITY | 发送方提供的gas价格,单位:wei | gasPrice * gas 等于本次交易的矿工费,单位为wei |
gas | QUANTITY | 发送方提供的gas可用量 | |
input | DATA | 随交易发送的数据 | |
type | QUANTITY | 类型(应该已经没用了) | |
r | DATA | 签名值 | r、s、v 共同组成一个签名值 |
s | DATA | 签名值 | |
v | QUANTITY | 签名值 |
交易记录数据样例
交易收据字段解析
字段名 | 类型 | 描述 | 应用场景 |
transactionHash | DATA, 32字节 | 交易哈希 | |
transactionIndex | QUANTITY | 交易在块内的索引序号 | |
blockHash | DATA, 32字节 | 交易所在块的哈希 | |
blockNumber | QUANTITY | 交易所在块的编号 | |
from | DATA, 20字节 | 交易发送方地址 | 过滤这两个地址,可拉出一个用户完整的交易记录 |
to | DATA, 20字节 | 交易接收方地址,对于合约创建交易该值为null | |
cumulativeGasUsed | QUANTITY | 交易所在块消耗的gas总量 | |
gasUsed | QUANTITY | 该次交易消耗的gas用量 | |
contractAddress | DATA, 20字节 | 对于合约创建交易,该值为新创建的合约地址,否则为null | |
logs | Array | 本次交易生成的日志对象数组 | |
logsBloom | DATA, 256字节 | bloom过滤器,轻客户端用来快速提取相关日志 | |
root | DATA 32字节 | 后交易状态根(pre Byzantium) | |
status | QUANTITY | 1 (成功) 或 0 (失败) |
交易收据数据样例
交易收据日志字段解析
字段名 | 类型 | 描述 | 应用场景 |
removed | TAG | 如果日志已被删除则返回true,如果是有效日志则返回false | |
logIndex | QUANTITY | 日志在块内的索引序号。对于挂起日志,该值为null | |
transactionIndex | QUANTITY | 创建日志的交易索引序号,对于挂起日志,该值为null | |
transactionHash | DATA, 32字节 | 创建该日志的交易的哈希。对于挂起日志,该值为null | |
blockHash | DATA, 32字节 | 该日志所在块的哈希。对于挂起日志,该值为null | |
blockNumber | QUANTITY | 该日志所在块的编号。对于挂起日志,该值为null | |
address | DATA, 20字节 | 该日志的源地址 | |
data | DATA | 包含该日志的一个或多个32字节无索引参数 | |
topics | Array of DATA | 0~4个32字节索引日志参数的数据 |
|
交易收据日志数据样例
参考资料
Last updated