跳转到内容

重放过去的交易

你可以使用 aptos move replay 命令在本地重放过去的交易. 该命令相当简单,但需要你指定两个必需的信息:

  • --network
    • 这是你想要重放的网络
    • 可能的值:mainnet,testnet,devnet<自定义 REST 端点的 URL>
  • --txn-id
    • 这是你想要重放的交易的 ID
    • 这有时也被称为浏览器上的 version
    • 特别注意这不是十六进制的交易哈希值

让我们以主网交易 581400718(一个简单的代币转账交易)为例.

Terminal window
aptos move replay --network mainnet --txn-id 581400718
输出
Terminal window
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:对交易进行气体使用情况的详细分析.
Terminal window
aptos move replay --network mainnet --txn-id 581400718 --benchmark
输出
Terminal window
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 的报告.

气体分析器还可以作为调试器,因为报告还包括完整的执行跟踪.

Terminal window
aptos move replay --network mainnet --txn-id 581400718 --profile-gas
输出
Terminal window
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

要了解气体报告,请参阅本地模拟教程的这一部分.