You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更快速地获取以太坊区块的总ETH交易价值

以太坊区块总交易价值查询优化方案

核心优化点

  • 消除RPC请求瓶颈:原代码在循环中逐笔查询交易,每笔交易对应一次独立的HTTP请求,单区块包含上千笔交易时会产生大量网络IO开销。调用w3.eth.get_block()时传入第二个参数full_transactions=True,可一次性拉取该区块所有交易的完整数据,仅需1次RPC请求,是性能提升的核心。
  • 移除冗余逻辑:无需使用倒序计数的while循环,直接遍历返回的交易列表即可;同时移除不必要的pandas类型转换依赖,web3返回的交易数值可直接做类型转换与算术运算,执行效率更高。
  • 修复原代码存在的低级错误:包括block_hegiht变量拼写错误、Web3初始化语句缺少右括号的问题。

优化后代码

from web3 import Web3
# 注意自行引入你的config配置
import config

w3 = Web3(Web3.HTTPProvider(config.INFURA_URL))

block_height = 13179360
# 传True直接获取完整交易列表,无需后续逐笔查询
block = w3.eth.get_block(block_height, full_transactions=True)

total_value_eth = 0
for tx in block["transactions"]:
    trans_value_wei = tx["value"]
    if trans_value_wei > 0:
        # 直接在wei阶段判断大于0,避免不必要的单位转换
        trans_value_eth = w3.from_wei(trans_value_wei, "ether")
        total_value_eth += float(trans_value_eth)

print(total_value_eth)

优化后代码的运行耗时通常在1秒以内,远低于原实现的最高30秒耗时。

内容的提问来源于stack exchange,提问作者Diop Chopra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:57:00