Mainnet fork9 upgrade guideline

Upgrade time window

Upgrade time window: 2025-01-24 02:00-14:00 UTC time.

Release notes

Latest block confirmation

fork8 last block halt number is "0x1d8e1d", you will need to ensure that your local node has synchronized to this height first.

curl http://127.0.0.1:8123/  \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"zkevm_batchNumber","params":[],"id":1,"jsonrpc":"2.0"}'

Version upgrade

  • After you confirm that your local node has synchronized to the halt number, stop and remove cdk-validium-sync / cdk-validium-json-rpc / cdk-validium-prover.

docker compose down cdk-validium-sync cdk-validium-json-rpc cdk-validium-prover
  • Add addtional index for db migration

CREATE INDEX IF NOT EXISTS idx_virtual_batch_block_num ON state.virtual_batch(block_num); 
CREATE INDEX IF NOT EXISTS idx_verified_batch_block_num ON state.verified_batch(block_num); 
CREATE INDEX IF NOT EXISTS idx_forced_batch_block_num ON state.forced_batch(block_num); 
CREATE INDEX IF NOT EXISTS idx_exit_root_block_num ON state.exit_root(block_num); 
CREATE INDEX IF NOT EXISTS idx_monitored_txs_block_num ON state.monitored_txs(block_num); 
CREATE INDEX IF NOT EXISTS idx_fork_id_block_num ON state.fork_id(block_num);
  • Change "SyncOnlyTrusted" to "true" in node.config.toml

SyncOnlyTrusted = true
  • Upgrade the image version in your docker-compose.yml:

    • cdk-validium-sync: image: merlinadmin/zkevm-node:v2.1.1 change to image: merlinadmin/zkevm-node:v3.1.0

    • cdk-validium-json-rpc: image: merlinadmin/zkevm-node:v2.1.1 change to image: merlinadmin/zkevm-node:v3.1.0

    • cdk-validium-prover: image: merlinadmin/zkprover:v5.0.9 change to image: hermeznetwork/zkevm-prover:v6.0.2

  • Launch the new version of services by below steps

    • Launch prover first:

    docker compose up -d cdk-validium-prover
    • Launch synchronizer and then wait migrations completed:

    docker compose up -d cdk-validium-sync
    • Launch json-rpc:

    docker compose up -d cdk-validium-json-rpc
  • Update forkId and then restart cdk-validium-sync / json-rpc

UPDATE state.fork_id SET from_batch_num = 1642245,to_batch_num = 1936925,version = '', block_num = 2017235 WHERE fork_id = 8;
INSERT INTO state.fork_id (fork_id, from_batch_num, to_batch_num, version, block_num) VALUES (9, 1936926, 18446744073709551615, '', 6249456);

Upgrade result verification

Make sure the new synchronizer can get the new fork9 block data.

Last updated