eth_getBlockByHash
方法返回通过其唯一 32 字节哈希标识的特定区块的综合信息。这种强大的方法提供对所有区块属性的访问,包括交易、gas 指标、矿工信息、时间戳等,使其成为区块链浏览器和数据分析的必备工具。
此方法使用区块哈希作为标识符检索特定区块的详细数据,可选择包含完整的交易详情或仅交易哈希。
区块的哈希值(32 字节)
如果为 true,返回完整交易对象;如果为 false,仅返回交易哈希
区块对象,如果未找到区块则为 null
十六进制格式的每单位 gas 基础费用(EIP-1559 后)
十六进制格式的区块难度
此区块的额外数据字段
十六进制格式的区块允许的最大 gas
十六进制格式的所有交易使用的总 gas
区块的哈希,如果待处理则为 null
日志的布隆过滤器,如果待处理则为 null
矿工/验证者的地址
十六进制格式的 256 位哈希
工作量证明的哈希,如果待处理则为 null
十六进制格式的区块号,如果待处理则为 null
父区块的哈希
收据树的根
叔块数据的 SHA3
此区块的大小,以字节为单位(十六进制)
最终状态树的根
区块整理时的 Unix 时间戳
直到此区块的链的总难度
交易对象或哈希的数组
交易树的根
叔块哈希的数组
验证者提款数组(EIP-4895 后)
提款的默克尔根(EIP-4895 后)
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"baseFeePerGas": "0x41a2b3591",
"difficulty": "0x0",
"extraData": "0x556e697377617020426c6f636b20231242353045",
"gasLimit": "0x1c9c380",
"gasUsed": "0x189b1f1",
"hash": "0x4f32106f6ac5b44248aeda10c3e718f1048ddc274629cd1897a0ff1f7926c41e",
"logsBloom": "0xe54b0921498ad482b83...[truncated]",
"miner": "0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990",
"mixHash": "0x51c1b337d7ec2023e7bfd47907a1ee256668e46fb9feb0007c62f9bc2a8a19a7",
"nonce": "0x0000000000000000",
"number": "0x112a880",
"parentHash": "0xeea8dce30e2d7c2a7ffe35b6fc2c60782f59a123ff2812e85bf4a49839c6d5a2",
"receiptsRoot": "0x14a87619e588c1ef9f8c69fd8e3dff2a49b2c73f19871a74a7e1d97d67d00416",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x1284d",
"stateRoot": "0xb87823a3aea0dd94ffe84481962c8f988e3c2ffac98a9af2b81c1c3e4fcc6dc0",
"timestamp": "0x65f0d46e",
"totalDifficulty": "0xc70d815d562d3cfa955",
"transactions": [
"0x5a8b22ab3e70ee6ee4b15b48b1c88d8c01806a677ab8938c68dc4323cf51ae7a",
"0x8d2fcaa1aef4f4f19aa35bf9d91b34e24902efcaf670953a0bf7e0a6dc585e53"
// ... 其他交易哈希
],
"transactionsRoot": "0x39f9c7a211b008becd35bfbceaf186d564fcb737a9c026f8af7b5d89a8989143",
"uncles": [],
"withdrawals": [
{
"index": "0x57ca86",
"validatorIndex": "0x17384",
"address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
"amount": "0x12a05f200"
}
// ... 其他提款
],
"withdrawalsRoot": "0x36a75a6993b676f8196354ed14e3c77167b9ae823211706b30aa125c3a5dac28"
}
}
第二个参数决定如何返回交易数据:
false
:仅返回交易哈希(区块扫描更高效)true
:返回完整交易对象(当需要交易详情时有用)// 检索和处理重要区块的示例
const significantBlocks = {
'The Merge Block': '0x4f32106f6ac5b44248aeda10c3e718f1048ddc274629cd1897a0ff1f7926c41e',
'First EIP-1559 Block': '0x9b83c12c569ba25654ce34563540e58a0f8acee4645178544a2a35ccfbdba6cc',
};
async function getHistoricalBlock(label) {
const blockHash = significantBlocks[label];
const blockInfo = await provider.send('eth_getBlockByHash', [blockHash, false]);
// 分析
const timestamp = new Date(parseInt(blockInfo.timestamp, 16) * 1000);
const gasUsedPercent = (parseInt(blockInfo.gasUsed, 16) / parseInt(blockInfo.gasLimit, 16)) * 100;
console.log(`${label} mined on ${timestamp.toUTCString()}`);
console.log(`Gas utilization: ${gasUsedPercent.toFixed(2)}%`);
console.log(`Transactions: ${blockInfo.transactions.length}`);
}