Provers
Prover Nodes need local access to installed binaries corresponding to proof systems supported. These binaries are installed to ~/.fermah/[prover]/bin.
Provers can have their configuration customized through the Prover Node configuration, see configuration.
Currently, only ZkSync binaries are being distributed.
ZkSync
After the release installation, this prover is available under ~/.fermah/zksync.
There are three folders to note:
bincontains the executablesetccontains necessary keys for proving and verificationvarcontains application-specific files, such as the unix socket and logs.
Configuration
This is the top level config regardless of the mode running.
Please check that root_path points to the right user.
[zksync]
storage_bucket = "fermah-mainnet"
root_path = "/home/fermah/.fermah/zksync"Storage configuration will change in the future.
Modes
Currently, this prover can be ran in two modes:
Witness Generator and Compressor (WGC)
Configuration
[[zksync.mode.WGC]]
round = ["all"]Minimum requirements for a ZkSync CPU witness generator.
| Round | RAM | vCPUs |
|---|---|---|
| all | 128 GB | 32 |
| basic_circuits | 32 GB | 16 |
| leaf_aggregation | 80 GB | 16 |
| node_aggregation | 4 GB | 8 |
| recursion_tip | 1 GB | 4 |
| scheduler | 1 GB | 4 |
Suggested Cloud Instance Types:
- AWS
g6.8xlarge - GCP
g2-standard-32
This mode also runs the proof compressor, which needs a GPU with at least 24GB of memory.
Circuit Prover (CP)
Configuration
[zksync.mode.CP]
num_workers = 16
max_gpu_vram_allocation = 25769803776Minimum requirements for a ZkSync circuit prover.
| vCPUs | RAM | VRAM | Storage |
|---|---|---|---|
| 32 | 128 GB | 24 GB | 375 GB SSD |
Suggested Cloud Instance Types:
- AWS
g6.8xlarge - GCP
g2-standard-32
This prover is automatically installed with our latest release.
Increasing Workers
The num_workers setting in the Circuit Prover (CP) configuration controls how many proving jobs run in parallel. Setting this to match your machine’s vCPU count improves proving speed and results in more tasks being allocated to your node.
In ~/.fermah/config/prover-node-config.toml, update num_workers to match your vCPU count:
[zksync]
mode = { CP = { num_workers = 32, max_gpu_vram_allocation = 25769803776 } }For example, on a machine with 32 vCPUs, set num_workers = 32.
Setting num_workers higher than your vCPU count does not increase performance. The optimal value is equal to the number of available vCPUs.
In a future update, the binary will automatically detect the number of vCPUs and set the correct worker count. For now, this must be configured manually.