Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit an issue.
构建CLI重放历史交易

重放过去的交易

基础知识

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

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

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

Terminal
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:对交易进行气体使用情况的详细分析。

基准测试

Terminal
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 的报告。

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

Terminal
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 目录中找到生成的气体报告

        • index.html

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