Skip to main content
Routine operational tasks for a running Celo L2 node, using the celo-l2-node-docker-compose setup.

Upgrading your node

To upgrade to the latest client versions:
This pulls the latest changes from GitHub and the latest images from the registry, rebuilds the containers, and restarts the node.
Hardfork upgrades are time-sensitiveNetwork hardforks require running a compatible client version before the fork block, or your node will stop following the chain. Watch the Notices for each upgrade’s required versions and timing. Support for op-geth has ended; a node still running it must migrate to op-reth — see End of Support for op-geth.
To pin a specific image version instead of tracking the latest, set the matching IMAGE_TAG__* variable in your .env (for example IMAGE_TAG__OP_RETH or IMAGE_TAG__OP_NODE).

Restarting and stopping

docker compose down -v wipes all dataThe -v flag deletes the node’s volumes, including the chaindata. Only use it when you intend to discard everything and re-sync from scratch.

Backing up your data

The chaindata lives in DATADIR_PATH (default ./envs/<network>/datadir). To back it up, stop the node first so the database is in a consistent state, then copy the datadir:

Re-syncing

If you need to rebuild a node, start from an empty DATADIR_PATH — a datadir written by op-geth cannot be reused. Bootstrap from a published snapshot (OP_RETH__SNAPSHOT=true, required on mainnet) or, on Celo Sepolia, execute every block from genesis; see Run a node with Docker. Pre-L2 historical state for archive nodes is served separately — see Running an archive node.