Builders
Notices (README)
Preparing for Granite Breaking Changes

Preparing for Granite Breaking Changes

This page outlines breaking changes related to the Granite network upgrade for chain operators and node operators. If you experience difficulty at any stage of this process, please reach out to developer support (opens in a new tab).

The Granite upgrade for OP Sepolia was activated on 1723478400 - Mon Aug 12 16:00:00 UTC. The Granite OP Mainnet upgrade will be activated at 1726070401 - Wed 11 Sep 2024 16:00:01 UTC, here is the governance vote (opens in a new tab).

What's Included in Granite

This upgrade is proposed in response to security vulnerabilities identified during a series of third-party security audits by Spearbit, Cantina, and Code4rena. None of the vulnerabilities have been exploited, and user assets are not and were never at risk. However, out of an abundance of caution, the permissioned fallback mechanism has been activated in order to avoid any potential instability while the vulnerabilities are patched. For more information on the permissioned fallback mechanism and the OP Stack's defense-in-depth approach to Fault Proof security, see the fault proof documentation (opens in a new tab).

The upgrade includes both a set of smart contract upgrades to fix the vulnerabilities identified in the audit as well as an L2 hardfork to improve the stability and performance of the fault proof system. In addition, we propose extending the capabilities of the Guardian and DeputyGuardian to set the anchor state for the fault proof system in order to prevent referencing invalid anchor states. Aside from implementing these fixes, the primary impact of this upgrade would be to reset user withdrawals at the planned time, similar to the initial Fault Proof upgrade.

Please refer to the governance proposal (opens in a new tab) for the full details.

For Chain Operators

The proposed Granite upgrade impacts OP chains and requires chain operators to upgrade their chain and configure the sequencer for Granite.

Prepare Sequencer Node

⚠️

If you are operating an OP Chain that has an entry in the superchain-registry (opens in a new tab), the Granite activation date is part of the op-node and op-geth nodes, and are using the --network and --op-network flags. No action is needed for the sequencer after preparing the SystemConfig transaction.

For custom chains not included in the superchain-registry (opens in a new tab), you will need to manually configure the activation timestamp (opens in a new tab). You have two configuration options for your sequencer node:

  • Option 1: Set the Granite activation date in your rollup.json config file. You will still need to set the override.granite flag in op-geth with the UNIX timestamp.
  • Option 2: Alternatively, chain operators can use the override flags to configure your sequencer node by specifying a time in the future when Granite will activate.
    • Set override.granite in both op-node and op-geth to the UNIX timestamp of the block you want to activate the Granite hardfork or corresponding env vars for this.
    • In general, run op-node --help or op-geth --help to see flags, their descriptions and environment variables.

Rollup Configuration Breaking Changes

Alt-DA mode has had a name change. What was formerly known as Plasma Mode has been renamed and you may need to update your rollup configuration file.

To verify proper configuration, chain operators should confirm in the startup logs of their op-node and op-geth that the correct Granite activation timestamps are set.

For Node Operators

Node operators will need to upgrade to Granite before the activation date. The op-node release v1.9.1 (opens in a new tab) and op-geth release v1.101408.0 (opens in a new tab) contain these changes.

These following steps are necessary for every node operator:

Update to the Latest Release

Configure the Granite Activation Date

⚠️

If you are operating a node for an OP Chain that has an entry in the superchain-registry (opens in a new tab), the Granite activation date is part of the op-node and op-geth nodes. So, no action is needed for the sequencer after upgrading to the latest release. Please skip to Step 3: Verify Your Configuration.

For node operators of custom chains not included in the superchain-registry (opens in a new tab), you will need to manually configure the activation timestamp (opens in a new tab). This can be done one of two ways:

  • Option 1: Set the activation time in the rollup.json for op-node. You will still need to set the override.granite flag in op-geth if you use this option.
  • Option 2: Set the activation time via overrides (CLI) in both op-node and op-geth. These will need to be set on op-node and op-geth for the sequencer and all other nodes.

Verify Your Configuration

Make the following checks to verify that your node is properly configured.

  • op-node and op-geth will log their configurations at startup
  • Check that the Granite time is set to activation-timestamp in the op-node startup logs
  • Check that the Granite time is set to activation-timestamp in the op-geth startup logs