This is the guide for client to know how to update the fullnode from any old version to the new version (v1.11.2), which contains the biggest changes for “L1 Pectra Readiness

  1. op-node version: Release op-node v1.11.2 - Ink Mainnet Holocene Update · ethereum-optimism/optimism
  2. op-geth version: Release v1.101500.1 - Ink Mainnet Holocene Update · ethereum-optimism/op-geth

We (AltLayer) plan to upgrade your rollup (sequencer/fullnode) to version v1.11.2 at the agreed-upon time. After this upgrade, you and your partners can proceed to upgrade your nodes to this version.

This opstack version contains some breaking changes, meanwhile, we also provide new bootnodes after this upgrading. Thus, for rollup which needs to sync fullnode, we will provide a new .env file that contains all necessary parameters and new info to sync a fullnode.

Breaking changes for this opstack version

  1. rollup.json needs to update due opstack has a breaking changing in v1.11.0 version.
    1. Please refer this link for more info: Release op-node v1.11.0 - L1 Pectra Readiness · ethereum-optimism/optimism
  2. We publish new group op-geth/op-node bootnodes for this upgrading, while the old bootnodes will be deleted after one month. please must ensure you use new bootnodes after upgrading.
    1. In this opstack version, op-geth contains a bootnodes bug which comes from go-ethereum.
      1. When start op-geth, you may meet the error log like:

        Fatal: Error starting protocol stack: bad bootstrap node "enode://3116e85de20404db0c64a75b72afffa90e914b2e7c5e7141c445e03fd6702c3da986e23ea554b87c1b6feb58e2423a8588ec17b9a635f3fa0ab2c0b341bb0cf5@foo.com:30303": missing IP address
        
      2. The key words is : missing IP address

    2. please refer this issue for more info: DNS resolution of bootnode hostnames not working · Issue #31208 · ethereum/go-ethereum
    3. Our solution will list in following part to show how to solve this issue.

Sync node

If you use our(AltLayer) docker-compose script to sync the fullnode

  1. Our docker-compsoe script repo link: https://github.com/alt-research/opstack-fullnode-sync

  2. For our docker-compose script repo, please checkout to tag v1.2.0

    1. Commends:

      # If you have not downlowd this repo before
      git clone <https://github.com/alt-research/opstack-fullnode-sync>
      cd opstack-fullnode-sync
      # If you already download this repo before
      git fetch
      
      # Checkout to tag v1.2.0
      git checkout -b branch-v1.2.0 v1.2.0
      
  3. Delete rollup.json

    1. You must delete this file for this upgrading, because opstack has a break changing between the old version to the new version

    2. You can delete the rollup.json in the running docker/container

      cd opstack-fullnode-sync
      # login the docker shell to delete the file.
      docker compose exec node ash
      rm -f /data/rollup.json
      
    3. Or, you can stop you fullnode, then delete it. The rollup.json file is in op-node’s volume

      cd opstack-fullnode-sync
      docker compose down
      # Enter the mapping `data` dir in your host machine.
      # If you has modified the mapping rule in our docker-compose..yml, then just enter that host dir.
      # If you do not modify anything, then:
      # 1. look up the real data path for the volume of `node`
      docker volume inspect opstack-fullnode-sync_node
      [
          {
              "CreatedAt": "2025-02-20T08:01:35Z",
              "Driver": "local",
              "Labels": {
                  "com.docker.compose.project": "opstack-fullnode-sync",
                  "com.docker.compose.version": "2.31.0",
                  "com.docker.compose.volume": "node"
              },
              "Mountpoint": "/var/lib/docker/volumes/opstack-fullnode-sync_node/_data",
              "Name": "opstack-fullnode-sync_node",
              "Options": null,
              "Scope": "local"
          }
      ]
      # Then the `Mountpoint` is the host dir.
      # 2. Enter to this dir, then delete rollup.json
      cd /var/lib/docker/volumes/opstack-fullnode-sync_node/_data # or the host dir that you mapping before
      rm rollup.json
      
      
    4. Or, if you use docker-desktop, you can delete via GUI:

      image.png

    5. After restart, our script will pull the rollup.json directly.

  4. Restart (start) the fullnode with the new .env

    1. If it’s a new node, please read README.md to generate jwt.txt before you start you fullnode.

    2. Copy the new .env into the root dir in this repo

      1. Please remember to set the value for L1_RPC
        1. And L1_BEACON if your rollup using ethereum da.
      2. Modify other parameters based on your requirements, like:
        1. sync mode: SYNC_MODE
        2. http/ws rpc models: HTTP_API and WS_API
        3. etc…
    3. Start fullnode:

      docker compose up -d
      
    4. Then our script will pull newest rollup.json and register new bootnodes directly.

If you use your own method to sync the fullnode

  1. Please ensure for this upgrading, you op-node version and op-geth version are following:

    1. op-node version: Release op-node v1.11.2 - Ink Mainnet Holocene Update · ethereum-optimism/optimism

      NODE_IMAGE=us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.11.2

    2. op-geth version: Release v1.101500.1 - Ink Mainnet Holocene Update · ethereum-optimism/op-geth

      GETH_IMAGE=us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101500.1

  2. Please delete rollup.json in your environment

  3. For the parameters of op-node and op-geth, please read our docker-compose script directly, then convert to match your toolchain

    1. link: Release v1.2.0: feat: add entrypoint script for geth (#13) · alt-research/opstack-fullnode-sync
    2. tag: v1.2.0
    3. If you already did this workflow before, skip this step.