SP1 Prover is a cluster prover that fetches proof requests from Succinct Prover Network, proves them, and sends the proofs back to the network. It has a master-slave architecture, where the master node is responsible for managing the proof requests and distributing them to the slave nodes for processing. The slave nodes are responsible for proving the theorems and fulfilling the proof requests. Currently, there is only one slave node, but the system is designed to be scalable and can be easily extended to support multiple slave nodes.
To get started with SP1 Prover, clone the repository and follow the setup instructions.
-
Clone the repository:
git clone https://github.com/Bisht13/SP1-Prover.git cd SP1-Prover -
Set up the environment variables for both the master node and worker node by creating
.envfiles in their respective directories from the provided.env.examplefiles:For the master node:
cd packages/master-node cp .env.example .env # Edit the .env file with the appropriate valuesFor the worker node:
cd packages/worker-node cp .env.example .env # Edit the .env file with the appropriate valuesReplace the placeholder values in both
.envfiles with the actual values required for your application. -
After setting up your
.envfiles, navigate back to the root directory and start the application using Docker:cd ../.. docker-compose up --build
The prover cluster requires integration with a prover network to process proof requests and submit proofs. This necessitates AWS credentials, whether you are accessing the Succinct Prover Network or running your own network instance. Ensure you provide the necessary AWS credentials by updating the environment variables in packages/worker-node/.env:
S3_BUCKET=<your-s3-bucket-name>
AWS_REGION=<your-aws-region>
AWS_ACCESS_KEY_ID=<your-access-key-id>
AWS_SECRET_ACCESS_KEY=<your-secret-access-key>
Please replace the placeholder values with your actual AWS credentials. The current system mandates these credentials to facilitate the download of required artifacts. Succinct is considering more streamlined approaches for artifact acquisition in future updates.
The build time for the Docker image can be quite long due to the installation of various dependencies, mainly due to the native-gnark feature in sp1-sdk. This is a one-time process and subsequent builds will be faster due to caching.