> 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/id/canton-zk-evm/prover-host.md).

# Host prover

Persyaratan host prover, worker persisten, dan build guest yang dipin.

Prover menjalankan ZisK dengan satu worker GPU. Koordinator dan worker tetap berjalan di antara permintaan, dengan kunci PLONK sudah dimuat. Untuk setiap blok, builder mengirim input dan menerima bukti terbungkus.

Halaman ini menjelaskan commit `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. Baca selengkapnya [README prover](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/prover/README.md) dan [pengukuran](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/docs/METRICS.md).

## Persyaratan host

Pemasang ditujukan untuk Linux x86-64 dengan `apt`, `sudo`, driver NVIDIA yang terinstal dan sekitar 100 GB ruang disk kosong. Ia memasang paket sistem dan mengubah batas penguncian memori.

Benchmark 2026-10-03 menggunakan satu NVIDIA RTX PRO 6000 Blackwell Server Edition dengan memori GPU 96 GB, 48 vCPU pada AMD EPYC 9B45, dan RAM host 176 GiB. Sistem ini menjalankan Ubuntu 22.04.5 dengan driver 580.178.04. Spesifikasi ini menjelaskan mesin yang diuji; spesifikasi tersebut tidak menetapkan perangkat keras minimum yang dibutuhkan untuk menjalankan prover.

Benchmark mencatat memori bersama emulator sebesar 22,9 GiB. Hanya pembungkusan PLONK yang melaporkan kebutuhan GPU sebesar 30.054.767.337 byte, sekitar 28,0 GiB. Penggunaan memori GPU puncak adalah 93,2 GiB, tetapi prover mengalokasikan buffer besar ke kartu. Puncak tersebut mencerminkan alokasi buffer dan tidak menunjukkan berapa memori GPU minimum yang dibutuhkan seluruh prover. Lihat [Pengukuran](/id/canton-zk-evm/measurements.md) untuk cakupan masing-masing angka.

## Bangun dan jalankan

Skrip menggunakan versi di [PINS](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/PINS). Prover menggunakan ZisK 1.3.1-alpha, Node 20.20.2, dan snarkjs 0.7.6. Versi Node milik explorer terpisah.

| Skrip                   | Yang dilakukan                                                                                         |
| ----------------------- | ------------------------------------------------------------------------------------------------------ |
| `prover/install.sh`     | Periksa checksum yang dipatok pada pemasang, lalu instal build GPU, proving key, dan pengaturan PLONK. |
| `prover/build-guest.sh` | Bangun ELF guest dan cetak SHA-256, programVK, rootC, dan hash rules-nya.                              |
| `prover/start.sh`       | Mulai koordinator dan satu worker GPU dengan kunci PLONK dimuat.                                       |
| `prover/make-input.sh`  | Ubah blok yang disimpan, execution witness, dan genesis menjadi input prover.                          |
| `prover/prove-one.sh`   | Buktikan satu input, periksa bukti dengan `cargo-zisk`dan tulis bukti terbungkus sebagai heksadesimal. |

`ZISK_COORDINATOR_URL` memilih koordinator. Nilai defaultnya adalah koordinator pada mesin yang sama. `network/up.sh` membangun guest dan memulai prover sebagai bagian dari jaringan lokal; ikuti [Jalankan secara lokal](/id/canton-zk-evm/run-it-locally.md) untuk urutan itu.

Builder secara bawaan menggunakan `prover/prove-one.sh` melalui `CZE_PROVE_CMD`. Perintah itu menerima file input dan folder output dan harus meninggalkan `wrapped-proof.hex`. Pemeriksaan lokalnya `cargo-zisk` tidak memberlakukan programVK dan rootC yang dipatok pada chain. Sidecar para confirmer memberlakukan pin tersebut. Lihat [pengaturan builder](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/builder/README.md#settings).

## Reproduksi key guest

Skrip build menggunakan satu folder build tetap dan menolak ELF yang masih berisi path build. Jalankan satu build guest pada satu waktu karena setiap build mengosongkan folder bersama itu.

Pada 2026-10-04, dua checkout baru yang dibangun secara berurutan oleh satu pengguna di satu mesin menghasilkan ELF dan programVK yang sama. Build tersebut memakan waktu 133 s dan 126 s. Untuk mereproduksi build sebagai pengguna lain atau di mesin lain, periksa apakah programVK yang dihasilkan cocok dengan nilai yang dicatat. `network/up.sh` berhenti jika pin build berbeda.  [README guest](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/guest/README.md#building) menjelaskan build dan batasannya.

## Output bukti

Format wire-nya adalah 1.344 byte: 768 byte bukti PLONK, 32 byte programVK, 32 byte rootC, dan 512 byte nilai publik. `prove-one.sh` menulis bentuk heksadesimal dan JSON yang dihasilkan oleh `cargo-zisk-dev export-solidity-calldata`.


---

# 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/id/canton-zk-evm/prover-host.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.
