This configuration is approximate and should be considered as minimal requirements:
Full Node - is configured to build and store the last 7 days of data for Cronos zkEVM Sepolia Testnet by default. Check here for details on the pruning setting.
4-core of CPU
16GB of RAM
100G of SSD storage
Archive Node - is configured to build an archive of all historical data of Cronos zkEVM Sepolia Testnet;
4-core of CPU
32GB of RAM
500G of SSD storage
Step 1: Download the DB Dump
1.1 - Download the pgdump
Create a new folder and download the dump file into it by:
After extracting the file, locate the dump folder and the pg_restore.list file. Put both to the main directory, instead of default under βtest_external_nodeβ.
Inside that directory, create and edit docker-compose.yml :
nanodocker-compose.yml
Add the following configuration to docker-compose.yml:
services:cronoszk:image:"ghcr.io/cronos-labs/external-node:testnet-v24.23.0"network_mode:hostrestart:unless-stoppedstop_grace_period:"120s"user:0:0volumes: - "${PWD}:/db"# Path to the rocksdb you unzippedenvironment:DATABASE_POOL_SIZE:10DATABASE_URL:"postgresql://zksync:password@localhost:5432/mydb"EN_ETH_CLIENT_URL:"https://ethereum-sepolia-rpc.publicnode.com"EN_HEALTHCHECK_PORT:3081EN_HTTP_PORT:3060EN_L1_BATCH_COMMIT_DATA_GENERATOR_MODE:"Validium"EN_L1_CHAIN_ID:11155111EN_L2_CHAIN_ID:240EN_MAIN_NODE_URL:"https://seed.testnet.zkevm.cronos.org/"EN_MERKLE_TREE_PATH:"./db/ext-node/lightweight"EN_PROMETHEUS_PORT:3312EN_PRUNING_ENABLED:"true"#Note: Default value is false, i.e. no purningEN_REQ_ENTITIES_LIMIT:1000EN_SNAPSHOTS_RECOVERY_ENABLED:"true"EN_SNAPSHOTS_OBJECT_STORE_BUCKET_BASE_URL:"cronos-zkevm-testnet-en-snapshot"EN_SNAPSHOTS_OBJECT_STORE_MODE:"GCSAnonymousReadOnly"EN_STATE_CACHE_PATH:"./db/ext-node/state_keeper"EN_WS_PORT:3061 RUST_LOG: "warn,zksync=info,zksync_core::metadata_calculator=debug,zksync_state=debug,zksync_utils=debug,zksync_web3_decl::client=error"
postgres:image:postgres:16restart:unless-stoppedstop_grace_period:"120s"network_mode:hostenvironment:POSTGRES_DB:mydbPOSTGRES_USER:zksyncPOSTGRES_PASSWORD:passwordulimits:nofile:60000nproc:60000memlock:-1volumes: - "${PWD}/pgsql_data:/var/lib/postgresql/data/" - "${PWD}:/dump"# This is the location of where the dump is.
services:cronoszk:image:"ghcr.io/cronos-labs/external-node:testnet-v24.23.0"network_mode:hostrestart:unless-stoppedstop_grace_period:"120s"user:0:0volumes: - "${PWD}:/db"# Path to the rocksdb you unzippedenvironment:DATABASE_POOL_SIZE:10DATABASE_URL:"postgresql://zksync:password@localhost:5432/mydb"EN_ETH_CLIENT_URL:"https://ethereum-sepolia-rpc.publicnode.com"EN_HEALTHCHECK_PORT:3081EN_HTTP_PORT:3060EN_L1_BATCH_COMMIT_DATA_GENERATOR_MODE:"Validium"EN_L1_CHAIN_ID:11155111EN_L2_CHAIN_ID:282EN_MAIN_NODE_URL:"https://seed.testnet.zkevm.cronos.org/"EN_MERKLE_TREE_PATH:"./db/ext-node/lightweight"EN_PROMETHEUS_PORT:3312EN_PRUNING_ENABLED:"false"#Note: Default value is false, i.e. no purningEN_REQ_ENTITIES_LIMIT:1000EN_SNAPSHOTS_RECOVERY_ENABLED:"false"EN_SNAPSHOTS_OBJECT_STORE_BUCKET_BASE_URL:"cronos-zkevm-testnet-en-snapshot"EN_SNAPSHOTS_OBJECT_STORE_MODE:"GCSAnonymousReadOnly"EN_STATE_CACHE_PATH:"./db/ext-node/state_keeper"EN_WS_PORT:3061 RUST_LOG: "warn,zksync=info,zksync_core::metadata_calculator=debug,zksync_state=debug,zksync_utils=debug,zksync_web3_decl::client=error"
postgres:image:postgres:16restart:unless-stoppedstop_grace_period:"120s"network_mode:hostenvironment:POSTGRES_DB:mydbPOSTGRES_USER:zksyncPOSTGRES_PASSWORD:passwordulimits:nofile:60000nproc:60000memlock:-1volumes: - "${PWD}/pgsql_data:/var/lib/postgresql/data/" - "${PWD}:/dump"# This is the location of where the dump is.
Important
Make sure you have the correct vars, volume attachment under the correct path.
Note
EN_PRUNING_ENABLED: Determines whether the node is set to pruning mode. When enabled, the node retains only recent chain data and discards older data to conserve storage space.
EN_SNAPSHOTS_RECOVERY_ENABLED, EN_SNAPSHOTS_OBJECT_STORE_BUCKET_BASE_URL, and EN_SNAPSHOTS_OBJECT_STORE_MODE: Enable snapshots recovery (similar to state-sync) and allows the node to recover from the latest batch without containing the full historical data.
Adddebug to namespaces: Enables debug tracing and saves debug data.EN_API_NAMESPACES:Defines the enabled API namespaces, including eth, net, web3, zks, pubsub, and debug.