## pre-synced Public Polygon zkEVM
### Download docker compose direcory
```
$ wget "https://drive.google.com/uc?export=download&confirm=yes&id=1WXZiHO4bJjq1gR1h7cMzvLRkN7KknRcP" -O dockerfiles.tar.gz
$ tar -xzvf dockerfiles.tar.gz
$ cd testnet
```
### Download statedb and replace it
```
$ mkdir -p db/statedb
$ wget "https://drive.google.com/uc?export=download&confirm=yes&id=1pr95xqoVO9BtgqOxar_akFUFYuAk7zQV" -O statedb.tar.gz
$ sudo tar -xzvf statedb.tar.gz --strip-components 1 -C ./db/statedb/
````
### Edit .env
```
change ZKEVM_NODE_ETHERMAN_URL=
```
it is not necessary to touch `ZKEVM_NODE_STATEDB_DATA_DIR` or `ZKEVM_NODE_POOLDB_DATA_DIR` if you want it to be saved in the same directory where you have unzipped the docker directory.
### start docker
```
sudo docker compose --env-file .env -f docker-compose.yml up -d
```
### Summary of changes
#### Docker-compose
1. New image version
```
image: hermeznetwork/zkevm-prover:f9a62ee
```
2. remove `deploy` from zkevm-state-db
```
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 1G
```
3. Add new `postgresql.conf`
* add a new volume
```
- ${ZKEVM_ADVANCED_CONFIG_DIR:-./config/environments/public}/postgresql.conf:/etc/postgresql.conf
```
* modify the command:
```
- "postgres"
- "-N"
- "500"
- "-c"
- "config_file=/etc/postgresql.conf"
```
* added `postgresql.conf` to `./config/environments/public//postgresql.conf`
4. zkProver config
file: `./testnet/config/environments/public/public.prover.config.json`
```
{
"runProverServer": false,
"runProverServerMock": false,
"runProverClient": false,
"runExecutorServer": true,
"runExecutorClient": false,
"runExecutorClientMultithread": false,
"runStateDBServer": true,
"runStateDBTest": false,
"runAggregatorServer": false,
"runAggregatorClient": false,
"runFileGenProof": false,
"runFileGenBatchProof": false,
"runFileGenAggregatedProof": false,
"runFileGenFinalProof": false,
"runFileProcessBatch": false,
"runFileProcessBatchMultithread": false,
"runKeccakScriptGenerator": false,
"runKeccakTest": false,
"runStorageSMTest": false,
"runBinarySMTest": false,
"runMemAlignSMTest": false,
"runSHA256Test": false,
"runBlakeTest": false,
"executeInParallel": true,
"useMainExecGenerated": false,
"saveRequestToFile": false,
"saveInputToFile": false,
"saveDbReadsToFile": false,
"saveDbReadsToFileOnChange": false,
"saveOutputToFile": false,
"saveResponseToFile": false,
"loadDBToMemCache": false,
"opcodeTracer": false,
"logRemoteDbReads": false,
"logExecutorServerResponses": false,
"proverServerPort": 50051,
"proverServerMockPort": 50052,
"proverServerMockTimeout": 10000000,
"proverClientPort": 50051,
"proverClientHost": "127.0.0.1",
"executorServerPort": 50071,
"executorROMLineTraces": false,
"executorClientPort": 50071,
"executorClientHost": "127.0.0.1",
"stateDBServerPort": 50061,
"stateDBURL": "local",
"aggregatorServerPort": 50081,
"aggregatorClientPort": 50081,
"aggregatorClientHost": "127.0.0.1",
"inputFile": "input_executor.json",
"outputPath": "output",
"cmPolsFile_disabled": "zkevm.commit",
"cmPolsFileC12a_disabled": "zkevm.c12a.commit",
"cmPolsFileRecursive1_disabled": "zkevm.recursive1.commit",
"constPolsFile": "zkevm.const",
"constPolsC12aFile": "zkevm.c12a.const",
"constPolsRecursive1File": "zkevm.recursive1.const",
"mapConstPolsFile": false,
"constantsTreeFile": "zkevm.consttree",
"constantsTreeC12aFile": "zkevm.c12a.consttree",
"constantsTreeRecursive1File": "zkevm.recursive1.consttree",
"mapConstantsTreeFile": false,
"starkFile": "zkevm.prove.json",
"starkZkIn": "zkevm.proof.zkin.json",
"starkZkInC12a":"zkevm.c12a.zkin.proof.json",
"starkFileRecursive1": "zkevm.recursive1.proof.json",
"verifierFile": "zkevm.verifier.dat",
"verifierFileRecursive1": "zkevm.recursive1.verifier.dat",
"witnessFile_disabled": "zkevm.witness.wtns",
"witnessFileRecursive1": "zkevm.recursive1.witness.wtns",
"execC12aFile": "zkevm.c12a.exec",
"execRecursive1File": "zkevm.recursive1.exec",
"starkVerifierFile": "zkevm.g16.0001.zkey",
"publicStarkFile": "zkevm.public.json",
"publicFile": "public.json",
"proofFile": "proof.json",
"keccakScriptFile": "keccak_script.json",
"keccakPolsFile_DISABLED": "keccak_pols.json",
"keccakConnectionsFile": "keccak_connections.json",
"starkInfoFile": "zkevm.starkinfo.json",
"starkInfoC12aFile": "zkevm.c12a.starkinfo.json",
"starkInfoRecursive1File": "zkevm.recursive1.starkinfo.json",
"databaseURL": "postgresql://prover_user:prover_pass@zkevm-state-db:5432/prover_db",
"dbNodesTableName": "state.nodes",
"dbProgramTableName": "state.program",
"dbAsyncWrite": false,
"dbMultiWrite": true,
"dbMTCacheSize": 10240,
"dbProgramCacheSize": 1024,
"cleanerPollingPeriod": 600,
"requestsPersistence": 3600,
"maxExecutorThreads": 20,
"maxProverThreads": 8,
"maxStateDBThreads": 8
}
```