Set up prover

Components

To run a prover that can submit proofs and earn rewards, you are required to run one archeive node(optional but recommened), one aggregator service (including a synchronizer, an executor, an aggregator, a transaction manager, and several databases) and one or more prover services. To be specific:

The archive node

Archive node can help you maintain a stable network connection, avoiding potential staking penalties caused by poor network connectivity.

In the aggregator service

  • The synchronizer queries and syncs L1 blocks and stores the relevant transactions and events in the local databases;

  • The executor processes the transactions on the rollup chain and updates the Merkle tree state;

  • The aggregator collects the calculation tasks from L1, assigns the tasks to provers, and submits the final proof to L1 to receive rewards;

  • The transaction manager helps the aggregator send and monitor transactions.

The prover service

  • The prover calculates the zero-knowledge proofs and aggregates several valid proofs together for the aggregator.

We recommend users run the prover service and the aggregator service separately to ensure that both can run normally, since the ZKP calculation of the current version of ZkEVM is a CPU-bound task.

Prerequisites

The deploying steps mentioned in this documentation require docker and docker-compose to be previously installed. Check the following links if you haven't installed the dependencies yet.

Remember to set a proper docker root directory.