> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/zh/canton-zk-evm/measurements.md).

# 测量结果

记录的证明与结算指标，以及对应的日期、硬件和限制。

证明器基准测试和 Ostia 上的运行测量的是不同的 guest 和工作负载。该基准测试使用的是未修改的上游 reth guest。Ostia 的运行使用的是本仓库的 guest，带有其 chain-rules 检查和网关。

本页介绍 commit `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. 请阅读完整的 [指标报告](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/docs/METRICS.md) 和 [演示结果](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md#results).

## 硬件

两组都使用了一块 NVIDIA RTX PRO 6000 Blackwell Server Edition GPU。Ostia 演示仅记录了 GPU 和驱动程序。

| 项目             | 证明器基准测试，2026-10-03                     | Ostia 运行，2026-10-05 |
| -------------- | -------------------------------------- | ------------------- |
| CPU            | AMD EPYC 9B45，48 个 vCPU；单路，双线程/核心      | 未记录                 |
| 主机内存           | 主机报告为 176 GiB                          | 未记录                 |
| GPU 内存         | 97,887 MiB，描述为 96 GB；PCIe 5 代 x16      | 容量未记录               |
| 驱动程序           | 580.178.04                             | 580.178.04          |
| CUDA           | 驱动层为 13.0；使用预编译 GPU 二进制文件，未安装 CUDA 工具包 | 未记录                 |
| 操作系统和磁盘        | Ubuntu 22.04.5，500 GB 启动盘              | 未记录                 |
| Node 和 snarkjs | 20.18.0 和 0.7.6                        | 未记录                 |

## 固定版本

这些是仓库中的版本，如指标报告中所列，以及 [固定值](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/PINS)。上文基准测试主机的 Node 版本与证明器固定版本不同。

| 组件                     | 版本                                                        |
| ---------------------- | --------------------------------------------------------- |
| ZisK                   | 1.3.1-alpha                                               |
| 上游 guest 源代码           | 0.13.1                                                    |
| reth                   | 2.5.2                                                     |
| Canton                 | 3.6.0-snapshot.20260930.20337.0.ve610bc8f                 |
| 外部调用所用的 Daml SDK       | 3.5.13-snapshot.20261001.145.0.v852bdd82                  |
| Daml 编译器               | 3.6.0-snapshot.20260915.14804.0.v53478765，目标为 Daml-LF 2.4 |
| 用于 Script 测试的 Daml SDK | 3.5.12，目标为 Daml-LF 2.1                                    |
| Java                   | 21                                                        |
| Rust                   | 1.94.1                                                    |
| 构建器和演示 Python          | 3.12 或更高版本                                                |
| 证明器 Node 和 snarkjs     | 20.20.2 和 0.7.6                                           |
| Explorer 节点            | 本地为 22.18 或更高版本；容器和 CI 中为 24                              |
| 测试代币 Solidity 编译器      | 0.8.28                                                    |

## 证明器基准测试：2026-10-03

该表给出了每种区块大小三次热运行的中位时间（秒）。每个区块都只包含普通转账。每个证明都通过了 `cargo-zisk verify`。原始基准测试日志不在仓库中。

| 区块                 | 未包装证明，新的进程 | 仅包装，新的进程 | 带包装的证明，新的进程 | 整个新进程 | 运行中的证明器：从输入到包装后的证明 | 运行中的证明器：从输入到已验证的证明 |
| ------------------ | ---------- | -------- | ----------- | ----- | ------------------ | ------------------ |
| 1 笔转账，21 kgas      | 4.6        | 2.4      | 7.4         | 21.1  | 6.7                | 7.0                |
| 1,000 笔转账，21 Mgas  | 6.9        | 2.4      | 9.6         | 24.5  | 9.0                | 9.3                |
| 5,000 笔转账，105 Mgas | 17.9       | 2.4      | 20.8        | 34.9  | 21.2               | 21.5               |

运行中的证明器保持协调器、工作线程和密钥已加载。新进程总计包括启动和停止证明器。从输入到证明的时间以现有见证文件开始；不包括构建见证。105 Mgas 的案例是上游 guest 的基准测试，而不是 Ostia 区块。Ostia 固定的区块 gas 上限为 30,000,000。

| 证明测量                   | 包装后的 PLONK       | 未包装的 STARK           |
| ---------------------- | ---------------- | -------------------- |
| 证明文件大小                 | 2,942 至 2,944 字节 | 415,232 至 415,234 字节 |
| `cargo-zisk verify` 时间 | 0.29 至 0.30 秒    | 0.03 秒               |
| 传输大小                   | 1,344 字节         | 未测量                  |

验证包装后的证明包括启动 Node 以运行 snarkjs。这不是对 sidecar 原生验证器的测量。1,344 字节的线格式包含 768 字节的证明、32 字节的程序密钥、32 字节的递归根和 512 字节的公开值。

## 启动与内存

这些测量来自同一份 2026-10-03 基准测试，使用的是 ZisK 1.3.1-alpha。

| 测量项                                          | 结果                           |
| -------------------------------------------- | ---------------------------- |
| 删除 ZisK 缓存并清空页面缓存后进行的首次 1 笔转账运行，且证明密钥仍保留在磁盘上 | 墙钟时间 123 秒；证明工作耗时 14.5 秒     |
| 在 guest 的已编译缓存已存在的情况下启动运行中的证明器               | 密钥加载耗时 7.0 秒，随后注册程序耗时 9.5 秒  |
| 该启动后的首次证明请求                                  | 6.56 秒                       |
| 报告的 GPU 峰值内存由 `nvidia-smi`                   | 93.2 GiB                     |
| 新进程证明期间主机 RAM 增长                             | 27 至 29 GiB，另加 22.9 GiB 共享内存 |
| 运行中的证明器处理请求时主机 RAM 增长                        | 3 GiB，另加 22.9 GiB 共享内存       |
| 仅 PLONK 包装报告的 GPU 内存                         | 30,054,767,337 字节，约 28.0 GiB |

证明器会为显卡配置一个大型 GPU 缓冲区。最小和最大基准块的峰值使用量大致相同。这并不能表明整个证明器所需的最低 GPU 内存。

## Ostia 演示：2026-10-05

每个案例都在本地 Canton 网络上运行一次，证明器已在运行，基于提交 `6b445073163832e9023850f53678617d90dfc808`。这些是单项测试结果。该 [结果文件夹](https://github.com/rome-protocol/canton-zk-evm/tree/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/results) 包含记录。 [概览](/zh/canton-zk-evm/canton-zk-evm.md#what-the-demo-showed) 描述了这五个结果。

| 案例     | 区块及所用 gas                             | 证明                         | 从完成的证明文件到构建器退出 | 整个构建器运行             |
| ------ | ------------------------------------- | -------------------------- | -------------- | ------------------- |
| 冒烟     | 区块 1，空；0 gas                          | 6.31 秒                     | 0.49 秒         | 155.20 秒            |
| 设置     | 区块 2，两个交易；gas 未记录                     | 6.71 秒                     | 未记录            | 8.00 秒              |
| 存入     | 区块 3，1 笔交易；122,308 gas                | 6.72 秒                     | 0.66 秒         | 8.14 秒              |
| 支付     | 区块 4，3 笔交易；185,307 gas                | 6.72 秒                     | 0.42 秒         | 7.87 秒              |
| 提现     | 区块 5，1 笔交易；90,345 gas                 | 6.72 秒                     | 0.58 秒         | 8.02 秒              |
| 分配被撤回  | 区块 6 被拒绝，随后重新构建为 1 笔交易且无 legs；gas 未记录 | 被拒绝的构建耗时 6.75 秒；第二个证明未单独计时 | 被拒绝的提交未计时      | 8.09 秒被拒绝；8.04 秒已提交 |
| 篡改后的证明 | 区块 7 被拒绝；gas 未记录                      | 篡改前为 6.74 秒                | 被拒绝的提交未计时      | 7.57 秒              |

每个证明为 1,344 字节。从完成的证明文件到构建器退出之间的时间段，包括获取网关的账户和存储证明， `推进`、在双方确认参与者上提交，以及 reth 将区块标记为最终确定。该时间段比仅 Canton 的提交更长。将 legs 与 Canton 合约匹配发生在证明之前，且不在该时间段内。

冒烟测试的整个运行包括见证和输入准备，以及证明器对 guest 程序的初始设置。它也可能包括构建输入工具。这些步骤的单独时间未记录。

## 其他已记录检查

在 2026-10-04，首次转账证明覆盖了临时副本中的创世区块 1，而不是正在运行的链：一笔 21,000 gas 的转账和 385,277 个 guest 步骤。三次证明分别耗时 6.33、6.75 和 6.69 秒。ZisK 的验证器和仓库中的 verifier crate 验证了该证明。将输入的 chain id 改为 1 后，guest 会拒绝它，且不会生成证明。

从空的构建目录构建 guest 耗时 125 秒，包括依赖下载。两个全新检出分别耗时 133 秒和 126 秒，并且彼此生成了相同的 ELF 和 programVK。证明器首次程序设置耗时 43 秒。这些数据来自指标报告中所述的 2026-10-04 记录，以及 [guest README](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/guest/README.md).

在 2026-10-05 演示之后，explorer 的浏览器检查对区块 3 的验证在 13 毫秒内通过。从点击到得到答案约耗时 0.35 秒。这只是一次浏览器检查，不是基准测试，并且未记录在 `demo/results/`.

在 CI 运行器上的 Node 中，WebAssembly 检查耗时 8 至 32 毫秒。该测试先验证了一个证明，随后拒绝了不匹配的头部。它既不是一次成功的完整区块检查，也不是一次浏览器测量；参见 [verifier README](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/explorer/verify/README.md).

## 这些测量无法证明的事项

没有关于合约调用或预编译、超过 105 Mgas 的区块，或在 Ostia 的 guest 下采用该基准测试区块大小的系统性基准测试。也没有多 GPU 或多个区块并发运行的测量。

在温热主机上的见证构建、原生 sidecar 验证以及 Canton 对大区块的提交，均未单独计时。该演示提交的区块最多包含三笔交易和一个 leg。每个案例只运行了一次，因此结果无法显示各次运行之间的时间波动。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/zh/canton-zk-evm/measurements.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
