Run the whole things

Run the dbs, executor and synchronizer of the aggregator service

Change to the project directory of the aggregator service

cd workdir

Check off the files required

ls

aggregator.keystore        docker-compose.yml        executor.config.json        
genesis.json               init_event_db.sql         init_prover_db.sql        
node.config.toml

Run the following docker-compose commands to start dbs, executor and synchronizer

sudo docker-compose -f docker-compose.yml up -d zkevm-state-db
sudo docker-compose -f docker-compose.yml up -d zkevm-pool-db
sudo docker-compose -f docker-compose.yml up -d zkevm-event-db
sudo docker-compose -f docker-compose.yml up -d zkevm-prover
sudo docker-compose -f docker-compose.yml up -d zkevm-sync

To view the logs, run

sudo docker-compose logs -f zkevm-sync

When logs similar to the one displayed below appear, it indicates that synchronization is complete.

synchronizer/synchronizer.go:311        Trusted state fully synchronized        {"pid": 1, "version": "4995055"}

Only when synchronization is completed, can the next step be taken.

Run the prover(s)

Change to the project directory of the prover service (Probably not the same machine as above)

The prover will wait until it can connect to an aggregator, but the aggregator will go down if it can't find any prover for a while. Thus, it is necessary to make sure at least one prover is running before the aggregator starts.

cd workdir

Check off the files required

ls

config       docker-compose.yml        prover.config.json

Run the following command to start the prover.

sudo docker-compose -f docker-compose.yml up -d zkevm-prover

The process is absolutely the same if you want to run multiple provers. Just make sure that on each machine you have correctly modified the config file to let your prover find and connect to the aggregator service.

Run the rest aggregator service (tx manager + aggregator)

Go back to the project directory of the aggregator service Remember to rename the keystore file as aggregator.keystore Run the following commands to start the rest of services

sudo docker-compose -f docker-compose.yml up -d zkevm-eth-tx-manager
sudo docker-compose -f docker-compose.yml up -d zkevm-aggregator

To view the logs, run

sudo docker logs -f zkevm-aggregator

Source code

If you want to modify the codes by yourself, check the following repositories.

Coming soon

Last updated