本文介绍了一个名为txping
的轻量级Node.js工具,用于简化以太坊交易延迟的测量。该工具通过QuickNode RPC端点发送签名后的0 ETH交易,并报告RPC延迟(交易提交到哈希确认的时间)和区块包含延迟(交易提交到首次确认的时间)。通过重复此过程,可以建立以太坊主网上交易传播性能的基线,并根据网络拥塞和Gas定价动态来优化费用和提高应用性能。
当微调交易机器人、基准测试客户端或调查缓慢的交易传播时,获取准确的延迟指标至关重要。
txping
是一个轻量级的 Node.js 实用程序,可以简化此过程。它通过你的 QuickNode RPC 端点发送一个签名的 0 ETH 交易,并报告:
通过重复此过程,你可以建立以太坊主网上交易传播性能的基线。
在本指南中,你将:
在本地配置和运行 txping
。
生成专用的测试钱包并为其提供资金。
对你的以太坊 RPC 端点进行基准测试并记录延迟指标。
调整交易费用以优化实际条件下的结果。
要求 | 版本 / 说明 |
---|---|
Node.js | ≥ 20.x |
NPM | ≥ 10.x |
QuickNode RPC URL | 以太坊主网端点 |
资金 | 少量 ETH(~0.01) |
熟悉度 | 基本 CLI 和 以太坊概念 |
交易延迟是各种以太坊用例的关键指标:
实际上,交易延迟因网络拥塞和 gas 定价动态而异。当以太坊网络繁忙时,gas 费用不足的交易可能会在内存池中等待很长时间才能确认。
通过在不同的 gas 和网络条件下对你的端点进行基准测试,你可以主动优化费用并提高应用程序性能。
git clone https://github.com/lvandeyar/txping.git
cd txping
npm install
node create-wallet.js
保存打印的地址和私钥。
QUICKNODE_RPC_URL=https://your-endpoint.quiknode.pro/...
PRIVATE_KEY=0xYOUR_PRIVATE_KEY
WALLET_ADDRESS=0xYOUR_ADDRESS
运行脚本以发送和测量交易时间:
npm start
你将看到类似于以下的输出:
➤ RPC latency: 94 ms
➤ Inclusion time: 12.6 s
➤ Included in block: 20456789
重复多次测试以建立平均和百分位延迟。
核心逻辑很简单:
const rpcStart = Date.now();
const txResponse = await provider.sendTransaction(signedTx);
const rpcLatency = Date.now() - rpcStart;
const inclusionStart = Date.now();
const receipt = await txResponse.wait();
const inclusionTime = (Date.now() - inclusionStart) / 1000;
console.log(`➤ RPC latency: ${rpcLatency} ms`);
console.log(`➤ Inclusion time: ${inclusionTime.toFixed(1)} s`);
这种结构允许你将该实用程序集成到你现有的工作流程或 CI/CD 管道中。
txping
使用具有合理默认值的 EIP-1559 风格的交易:
你可以根据需要调整这些参数。在拥塞期间,增加优先级费用可以改善包含时间。
不要将此钱包用于测试以外的任何用途。
不要提交包含你的私钥的 .env
文件。
考虑将你的测试隔离到专用的 QuickNode 项目中,以进行日志记录和指标衡量。
此版本的 txping
适用于以太坊主网。
如果你想在其他 EVM 链(例如 Polygon、BNB Chain、Avalanche C-Chain)上使用此实用程序,请联系 QuickNode 团队,以帮助调整此实用程序以适应其他网络或请求增强功能。
通过最少的设置和少于 100 行的代码,txping
允许你对以太坊主网的 RPC 延迟和交易包含时间进行基准测试。
通过为你的设置生成基线,你可以主动监控你的交易性能、识别瓶颈并确保你的应用程序满足其目标服务级别目标。
如果你有任何问题或需要有关 Solana 开发项目的帮助,请加入我们的 QuickNode Discord 或在 Twitter 上关注我们。
如果你有任何反馈或新主题的要求,请 告诉我们。 我们很乐意听取你的意见。
- 原文链接: quicknode.com/guides/eth...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!