Proof Generation
Currently, Scroll SDK requires that you run your own provers. We’re actively working with proof generation platforms to make proof generation as easy as providing an API key.
Mock Finalization
In its default configuration, testnets can run without a ZK provers and simulate finalization. The L1 contract allows finalizing a batch without a valid proof, and the rollup-relay
is configured to call the finalize method after 1 hour without a proof in the default configuration.
To change this mock finalization delay, adjust config.toml
to change TEST_ENV_MOCK_FINALIZE_TIMEOUT
from 3600
to the number of seconds you want to delay.
To disable mock finalization entirely, adjust config.toml
to change TEST_ENV_MOCK_FINALIZE_ENABLED
to false
.
Deploy a Prover
Our automation code for deploying a prover differs from the rest of the stack. Because Kubernetes is designed to automatically manage resources, it doesn’t fit as well as Ansible for larger clusters of machines needing specific machine requirements.
The Ansible playbook for running a prover is available in the GitHub repo here.
Prequisities
- One ubuntu server with at least 256GB memory, 32 cores, and a GPU with at least 20GB memory.
- One user with
sudo
access, no password, and all permissions — or you can change the shared-vars.yaml to add theansible_become_password
variable in your file.
Configuration
- Change the values of
rpc
formainnet
orsepolia
in shared-vars.yaml to your own. - Set the values of
release_version
anddocker_tag
— this is determined by thecoordinator
service. - Set the values in inventory for your `sepolia|mainnet’ and ‘chunk|batch’ provers.
- Optionally, set the values of
pj_path
in shared-vars.yaml — the default is/prover/go-prover-docker
, but can be changed to the value you want to customize.
How to deploy your prover
Be sure to set the correct value for the export
statements below when setting environmental variables. Do not include brackets.