title | lang | description |
---|---|---|
Preparing for Granite breaking changes |
en-US |
Learn how to prepare for Granite upgrade breaking changes. |
import { Steps, Callout } from 'nextra/components'
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.
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](https://vote.optimism.io/proposals/46514799174839131952937755475635933411907395382311347042580299316635260952272).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.
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 for the full details.
The proposed Granite upgrade impacts OP chains and requires chain operators to upgrade their chain and configure the sequencer for Granite.
If you are operating an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Granite activation date is part of the `op-node` and `op-geth` nodes, and are using the [--network](/builders/node-operators/configuration/consensus-config#network) and [--op-network](/builders/node-operators/configuration/execution-config#op-network-betaop-network) flags. No action is needed for the sequencer after preparing the `SystemConfig` transaction.For custom chains not included in the superchain-registry
, you will need to manually configure the activation timestamp. 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 theoverride.granite
flag inop-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 bothop-node
andop-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
orop-geth --help
to see flags, their descriptions and environment variables.
- Set
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.Node operators will need to upgrade to Granite before the activation date. The op-node release v1.9.1 and op-geth release v1.101408.0 contain these changes.
These following steps are necessary for every node operator:
### Update to the latest release If you are operating a node for an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), 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](#verify-your-configuration).For node operators of custom chains not included in the superchain-registry
, you will need to manually configure the activation timestamp. This can be done one of two ways:
- Option 1: Set the activation time in the
rollup.json
forop-node
. You will still need to set theoverride.granite
flag inop-geth
if you use this option. - Option 2: Set the activation time via overrides (CLI) in both
op-node
andop-geth
. These will need to be set onop-node
andop-geth
for the sequencer and all other nodes.
Make the following checks to verify that your node is properly configured.
op-node
andop-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