Xatu 执行层数据现已可用

Xatu 执行层数据现已可用

我们很高兴地宣布,通过 cryo 提取的执行层数据现在可以在 Xatu 数据集中可用。

cryo 是提取区块链数据到 parquet、csv、json 或 python 数据框的最简单方法

摘要:

  • 数据在 CC BY 4.0 许可下 仅用于公共领域
  • 数据以 1000 个区块为一组,存储在 Apache Parquet 文件中
  • 我们提取的数据可以追溯到创世区块

通过提供这些数据,我们希望能够促进对以太坊生态系统的更深入分析和研究,并补充其余数据集。

数据表

关于这些数据

  • 数据仅在区块在信标链上最终确认后通过 cryo 提取
  • Apache Parquet 文件在公开访问之前有大约 ~6-24 小时的延迟
  • 数据以 1000 个区块为一组存储,例如;
    • 0.parquet(区块编号 0 - 999
    • 1000.parquet(区块编号 1000 - 1999
    • 2000.parquet(区块编号 2000 - 2999
    • 1000000.parquet(区块编号 1000000 - 1000999
  • 所有十六进制字符串均为小写,因此请记得使用 lower 函数,例如 WHERE transaction_hash = lower('0xABcd1234')
  • 对于 parquet 文件中位宽大于 64 的整数列(Int128/UInt128/Int256/UInt256),请使用 ClickHouse 函数 reinterpretAsUIntX。例如,在 canonical_execution_transaction 表中,value 列应查询为 reinterpretAsUInt256(value)

开始使用

开始使用的最简单方法是安装 Clickhouse CLI 并使用 clickhouse local 查询数据。有关更多详细信息,请参见 处理数据

示例

以下示例演示了一些你可以在数据上运行的简单查询。

示例 1

在主网的区块 2000000020010999 之间,前 5 名区块生产者是谁?

答案:我们可以使用 canonical_execution_block 表按额外数据列进行分组。

clickhouse local -q "
    SELECT
        count(*) as count,
        author,
        extra_data_string
    FROM
        url('https://data.ethpandaops.io/xatu/mainnet/databases/default/canonical_execution_block/1000/{20000..20010}000.parquet', 'Parquet') 
    GROUP BY
        author, extra_data_string
    ORDER BY
        count DESC
    LIMIT 5
    FORMAT PrettyCompact
"

┌─count─┬─author─────────────────────────────────────┬─extra_data_string───────────────┐
│  5591 │ 0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5 │ beaverbuild.org                 │
│  3389 │ 0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97 │ Titan (titanbuilder.xyz)        │
│   441 │ 0x1f9090aae28b8a3dceadf281b0f12828e676c326 │ rsync-builder.xyz               │
│   325 │ 0x1f9090aae28b8a3dceadf281b0f12828e676c326 │ @rsyncbuilder                   │
│   220 │ 0xdf99a0839818b3f120ebac9b73f82b617dc6a555 │ Illuminate Dmocratize Dstribute │
└───────┴────────────────────────────────────────────┴─────────────────────────────────┘

示例 2

在主网的区块 2090000020905999 之间,按价值排名前 5 的转账是什么?

答案:我们可以使用 canonical_execution_transaction 表过滤掉没有 calldata 的交易,并按价值排序。

clickhouse local -q "
    SELECT
        block_number,
        transaction_hash,
        reinterpretAsUInt256(value) / 1e18 AS ether_value
    FROM 
        url('https://data.ethpandaops.io/xatu/mainnet/databases/default/canonical_execution_transaction/1000/{20900..20905}000.parquet', 'Parquet') 
    WHERE 
        input IS NULL
    ORDER BY 
        ether_value DESC
    LIMIT 5
    FORMAT PrettyCompact
"

┌─block_number─┬─transaction_hash───────────────────────────────────────────────────┬────────ether_value─┐
│     20902203 │ 0x62927f22026352b0af12fa844e588b999089849b98c50a89641cd19d69dfac35 │ 14008.381015295294 │
│     20903687 │ 0x39882cafc4195eee7b63444be4e9d16aad57e9465c2c4ef565758fa559a4e9f8 │  8444.154971169999 │
│     20900096 │ 0x55a8950dc6e205bb1397bfe17a93767fb4ce026402b25ff9104476108b5d8807 │  8357.538338940001 │
│     20902260 │ 0xbee9e1fcbc8405f6ef6620c08f47f568e8df0bb80feb5d77362aaf0e38e123a5 │  7572.340613229151 │
│     20902737 │ 0x586f91964ed8a2adaab4f1c26a011b934a978c03e91303e9f74b206541fe9e21 │               6800 │
└──────────────┴────────────────────────────────────────────────────────────────────┴────────────────────┘

示例 3

在主网的区块 2090000020905999 之间,转移的 USDT 量是多少?

答案:我们可以使用 canonical_execution_erc20_transfers 表对 USDT 代币合约地址的价值进行求和。

clickhouse local -q "
    SELECT
        sum(reinterpretAsUInt256(value)) / 1000000 as USDT
    FROM
        url('https://data.ethpandaops.io/xatu/mainnet/databases/default/canonical_execution_erc20_transfers/1000/{20900..20905}000.parquet', 'Parquet')
    WHERE 
        erc20 = lower('0xdAC17F958D2ee523a2206206994597C13D831ec7') -- USDT 代币合约地址
    FORMAT PrettyCompact
"

┌──────────────USDT─┐
│ 1585831125.724754 │ -- 15.86 亿
└───────────────────┘

示例 4

如何调试在区块 20875205 中未能执行的交易 0xe1cf349a8e55309cfab9d8d3dd8a8094765f99d65b20864c265bcd234abfe570

答案:我们可以使用 canonical_execution_traces 表获取完整的追踪详细信息。我们知道该交易发生在区块 20875205,因此可以请求 parquet 块 20875000.parquet

clickhouse local -q "
    SELECT
        trace_address,
        action_from,
        action_to,
        action_value,
        action_gas,
        error
    FROM
        url('https://data.ethpandaops.io/xatu/mainnet/databases/default/canonical_execution_traces/1000/20875000.parquet', 'Parquet')
    WHERE 
        transaction_hash =  lower('0xe1cf349a8e55309cfab9d8d3dd8a8094765f99d65b20864c265bcd234abfe570')
    ORDER BY internal_index
    FORMAT PrettyCompact

"

┌─trace_address─┬─action_from────────────────────────────────┬─action_to──────────────────────────────────┬─action_value─┬─action_gas─┬─error──────┐
│ ᴺᵁᴸᴸ          │ 0x1FCCC097DB89A86BFC474A1028F93958295B1FB7 │ 0xEEFBA1E63905EF1D7ACBA5A8513C70307C1CE441 │ 0            │   29587220 │ Reverted   │
│ 0             │ 0xEEFBA1E63905EF1D7ACBA5A8513C70307C1CE441 │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0            │   28883047 │ ᴺᵁᴸᴸ       │
│ 0_0           │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x065347C1DD7A23AA043E3844B4D0746FF7715246 │ 0            │   28421311 │ ᴺᵁᴸᴸ       │
│ 0_1           │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x065347C1DD7A23AA043E3844B4D0746FF7715246 │ 0            │   28405020 │ ᴺᵁᴸᴸ       │
│ 0_2           │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x35A338522A435D46F77BE32C70E215B813D0E3AC │ 0            │   28394712 │ ᴺᵁᴸᴸ       │
│ 0_3           │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x35A338522A435D46F77BE32C70E215B813D0E3AC │ 0            │   28391907 │ ᴺᵁᴸᴸ       │
│ 0_4           │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x74C5A0D5DFCC6D4527C849F09ECC360C5345D986 │ 0            │   28384423 │ ᴺᵁᴸᴸ       │
│ 0_4_0         │ 0x74C5A0D5DFCC6D4527C849F09ECC360C5345D986 │ 0xEFF8E65AC06D7FE70842A4D54959E8692D6AE064 │ 0            │   27898562 │ ᴺᵁᴸᴸ       │
│ 0_4_0_0       │ 0xEFF8E65AC06D7FE70842A4D54959E8692D6AE064 │ 0x78910E1DFE6DF94EA7EEC54B25921673DB0E2A06 │ 0            │   27457785 │ ᴺᵁᴸᴸ       │
...
│ 221           │ 0xEEFBA1E63905EF1D7ACBA5A8513C70307C1CE441 │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0            │      67576 │ Out of gas │
│ 221_0         │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x065347C1DD7A23AA043E3844B4D0746FF7715246 │ 0            │      62480 │ ᴺᵁᴸᴸ       │
│ 221_1         │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x065347C1DD7A23AA043E3844B4D0746FF7715246 │ 0            │      48158 │ ᴺᵁᴸᴸ       │
│ 221_2         │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x35A338522A435D46F77BE32C70E215B813D0E3AC │ 0            │      45036 │ ᴺᵁᴸᴸ       │
│ 221_3         │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x35A338522A435D46F77BE32C70E215B813D0E3AC │ 0            │      44200 │ ᴺᵁᴸᴸ       │
│ 221_4         │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x74C5A0D5DFCC6D4527C849F09ECC360C5345D986 │ 0            │      41145 │ ᴺᵁᴸᴸ       │
│ 221_4_0       │ 0x74C5A0D5DFCC6D4527C849F09ECC360C5345D986 │ 0xEFF8E65AC06D7FE70842A4D54959E8692D6AE064 │ 0            │      13996 │ ᴺᵁᴸᴸ       │
│ 221_4_0_0     │ 0xEFF8E65AC06D7FE70842A4D54959E8692D6AE064 │ 0x78910E1DFE6DF94EA7EEC54B25921673DB0E2A06 │ 0            │      13345 │ ᴺᵁᴸᴸ       │
│ 221_5         │ 0x9500F306CD233BF2BCFF1CC90D565C64626A162C │ 0x74C5A0D5DFCC6D4527C849F09ECC360C5345D986 │ 0            │       6184 │ Out of gas │
└───────────────┴────────────────────────────────────────────┴────────────────────────────────────────────┴──────────────┴────────────┴────────────┘

总结

我们希望你觉得这些数据有用,并期待看到你用它构建的内容!如果你有任何问题或反馈,请通过 Twitter 联系我们,或加入 Xatu Telegram Group

祝你查询愉快!

EthPandaOps 团队 ❤️

我是 AI 翻译官,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
EthPandaOps
EthPandaOps
https://ethpandaops.io