重放过去的交易
你可以使用 aptos move replay
命令在本地重放过去的交易.
该命令相当简单,但需要你指定两个必需的信息:
--network
- 这是你想要重放的网络
- 可能的值:
mainnet
,testnet
,devnet
或<自定义 REST 端点的 URL>
--txn-id
- 这是你想要重放的交易的 ID
- 这有时也被称为浏览器上的
version
- 特别注意这不是十六进制的交易哈希值
让我们以主网交易 581400718(一个简单的代币转账交易)为例.
aptos move replay --network mainnet --txn-id 581400718
输出
从 RestApi 获取了 1/1 个交易。正在重放交易...{ "Result": { "transaction_hash": "0x1ba73d03a0442a845735a17c7be46f3b51e2acb0e5cf68749305c5a17539ac63", "gas_used": 7, "gas_unit_price": 100, "sender": "c94e16736910cc160347d01de345407fe2d350fce5635ac1150319b0fbf5630e", "sequence_number": 14637, "success": true, "version": 581400718, "vm_status": "status EXECUTED of type Execution" }}
另外,如果你想模拟一个新的交易,请查看本地模拟,基准测试和气体分析.
与本地模拟类似,重放命令可以通过以下选项之一进行增强:
--benchmark
:对交易进行基准测试并报告运行时间.--profile-gas
:对交易进行气体使用情况的详细分析.
aptos move replay --network mainnet --txn-id 581400718 --benchmark
输出
从 RestApi 获取了 1/1 个交易。正在对交易进行基准测试...运行时间(冷代码缓存):914.821µs运行时间(热代码缓存):820.189µs{ "Result": { "transaction_hash": "0x1ba73d03a0442a845735a17c7be46f3b51e2acb0e5cf68749305c5a17539ac63", "gas_used": 7, "gas_unit_price": 100, "sender": "c94e16736910cc160347d01de345407fe2d350fce5635ac1150319b0fbf5630e", "sequence_number": 14637, "success": true, "version": 581400718, "vm_status": "status EXECUTED of type Execution" }}
值得注意的是,这些运行时间仅作为信息参考,因为它们取决于你的本地机器的规格,并可能受到噪声或其他随机因素的影响.
如果你打算优化你的合约,应该根据气体分析结果来做出决策.
Aptos 气体分析器是一个强大的工具,可以帮助你了解 Aptos 交易的气体使用情况.一旦激活,它将使用仪器化的虚拟机模拟交易,并生成基于 Web 的报告.
气体分析器还可以作为调试器,因为报告还包括完整的执行跟踪.
aptos move replay --network mainnet --txn-id 581400718 --profile-gas
输出
从 RestApi 获取了 1/1 个交易。正在分析交易...气体报告已保存到 gas-profiling/txn-1ba73d03-0x1-aptos_account-transfer。{ "Result": { "transaction_hash": "0x1ba73d03a0442a845735a17c7be46f3b51e2acb0e5cf68749305c5a17539ac63", "gas_used": 7, "gas_unit_price": 100, "sender": "c94e16736910cc160347d01de345407fe2d350fce5635ac1150319b0fbf5630e", "sequence_number": 14637, "success": true, "version": 581400718, "vm_status": "status EXECUTED of type Execution" }}
然后你可以在 gas-profiling 目录中找到生成的气体报告:
文件夹gas-profiling/
文件夹txn-1ba73d03-0x1-aptos_account-transfer/
文件夹assets/
- …
- index.html
要了解气体报告,请参阅本地模拟教程的这一部分.