From fd7fd6f4bf00f3a21093dea2910d9c51d130a37f Mon Sep 17 00:00:00 2001 From: soyboy Date: Wed, 5 Feb 2025 17:16:14 -0800 Subject: [PATCH 1/6] I think my pnpm-lock.yaml is breaking things --- pages/builders/notices/pectra-changes.mdx | 69 +++++++++++++++++++---- pnpm-lock.yaml | 24 ++++---- 2 files changed, 69 insertions(+), 24 deletions(-) diff --git a/pages/builders/notices/pectra-changes.mdx b/pages/builders/notices/pectra-changes.mdx index b03c2c2fb..5eaffc92e 100644 --- a/pages/builders/notices/pectra-changes.mdx +++ b/pages/builders/notices/pectra-changes.mdx @@ -12,10 +12,20 @@ This page outlines breaking changes related to the Ethereum Pectra (Prague-Elect If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). - This page will be updated continuously with information on upgrade runbooks and timelines as they come. This based on the last Ethereum ACDC on Jan 23rd 2025. These dates are subject to change based on how `devnet-6` goes. Ethereum L1 clients are expected to have a release out by Feb 3rd. - * The Pectra upgrade for Holesky L1 proposed activation is on **Wed, Feb 12 at 09:32:48 UTC (`1739352768`)**. - * The Pectra upgrade for Sepolia L1 proposed activation is on **Wed, Feb 19 at 15:48:48 UTC (`1739980128`)**. - * The Pectra upgrade for Ethereum L1 will be activated in **March**. + This page will be updated continuously with information on upgrade runbooks and timelines as they come. Here's the [latest proposed activation time slots](https://github.com/ethereum/pm/issues/1265#issuecomment-2637778317) that are being brought to the all core dev call on happening on Feb 6. + + 1. Client testnet releases out by Feb 10 + * Holesky slot: 3670016 (Wed, Feb 19 at 05:23:12 UTC) + * Sepolia slot: 7061504 (Tue, Feb 25 at 08:20:48 UTC) + * +30 day mainnet slot: 11354112 (Thu, Mar 27 at 11:02:47 UTC) + 2. Client testnet releases out by Feb 13 (ACDE) + * Holesky slot: 3710976 (Mon, Feb 24 at 21:55:12 UTC) + * Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC) + * +30 day mainnet slot: 11444224 (Tue, Apr 8 at 23:25:11 UTC) + 3. Client testnet releases out by Feb 17 + * Holesky slot: 3727360 (Thu, Feb 27 at 04:32:00 UTC) + * Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC) + * +30 day mainnet slot: 11444224 (Tue, Apr 8 at 23:25:11 UTC) ## What's included in Pectra? @@ -45,8 +55,9 @@ These following steps are necessary for every chain operator: ### Update to the latest releases + - The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st). + The software is currently being tested and we expect the releases to be cut by the end of this week (Feb 3rd to 7th). These [release candidates](https://github.com/ethereum-optimism/optimism/issues/13627#issuecomment-2627347212) are currently baking on devnet. * `op-node` at `vTBD` @@ -64,28 +75,62 @@ These following steps are necessary for every chain operator: ### For fault proof enabled chains -Since the Pectra upgrade changes the derivation rules, you will need to upgrade the `op-program` version used in the fault proof system to support these changes. The `op-program` version used is specified via the `faultGameAbsolutePrestate` setting, deployed as part of `FaultDisputeGame` and `PermissionedDisputeGame` contracts. + + The following instructions assume your chain is on the latest contract release `op-contracts/v1.8.0` and have Holocene activated. + + +The following steps are to update your absolute prestate on your chain. **This is absolutely necessary for chains running permissionless fault proofs.** For chains running the Fault Proof System with permissioned games you can skip this section because games will not be played out and the absolute prestate is not used. + +The Pectra upgrade changes the derivation rules, permissionless fault proof chains need to upgrade the `op-program` version used in the fault proof system to support these changes. The `op-program` version used is specified via the `faultGameAbsolutePrestate` setting, deployed as part of `FaultDisputeGame` and `PermissionedDisputeGame` contracts. ### Make sure the Superchain Registry is up to date The new `op-program` release will pull the configurations from the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry). This is important because the op-challenger uses the `op-program` and it needs to be aware of your chain's configuration. If your chain that not in the superchain-registry, please [open a PR to add your chain to the superchain-registry](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/ops.md#adding-a-chain). - ### Generate a new absolute prestate + ### Verify the new absolute prestate + + + The following is based on the [op-program/v1.5.0-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.5.0-rc.1) which is wrapping up testing and the official release will be out soon. + + + You can use this new absolute prestate (`0x03dfa3b3ac66e8fae9f338824237ebacff616df928cf7dada0e14be2531bc1f4`) for the following chains: + + * Sepolia: Base, OP, Metal, Mode, Zora, Ethernity, Unichain, Ink + * Mainnet: Base, OP, Orderly, Lyra, Metal, Mode, Zora, Lisk, Ethernity, Binary, Ink + + You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/6819d8a4e787df2adcd09305bc3057e2ca4e58d9/Makefile#L133-L135) in the root of the monorepo: + + ```shell + make reproducible-prestate + ``` - Once we have a finalized release of the `op-program`, we will provide a release tag for you to use to generate the absolute prestate. You will check out that release tag in the monorepo and run the `make reproducible-prestate` [command](https://github.com/ethereum-optimism/optimism/blob/80eff009a352c4e74ec8fb41a6bdb2a5778f3075/Makefile#L133-L135) to generate the absolute prestate. + You should expect the following output at the end of the command: + + ```shell + Cannon Absolute prestate hash: + 0x03dfa3b3ac66e8fae9f338824237ebacff616df928cf7dada0e14be2531bc1f4 + Cannon64 Absolute prestate hash: + 0x03f83792f653160f3274b0888e998077a27e1f74cb35bcb20d86021e769340aa + CannonInterop Absolute prestate hash: + 0x03b7658b889796c1e372f57439e48eb46a5b008f6e6a4b7e5c8c2d3bddffa797 + ``` ### Deploy new dispute game contracts - You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value. + You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value. You can reuse the [Holocene script](https://github.com/ethereum-optimism/optimism/tree/op-contracts/v1.8.0-rc.4/packages/contracts-bedrock/scripts/upgrades/holocene) to deploy the new contracts. The only change you will need to make is to update the `absolutePrestate` value in your [deploy-config](https://github.com/ethereum-optimism/optimism/blob/2073f4059bd806af3e8b76b820aa3fa0b42016d0/packages/contracts-bedrock/scripts/upgrades/holocene/README.md?plain=1#L53-L54). Alternatively we will be releasing an `OPPrestateUpdater` that can be used to deploy the new contracts. ### Update the DisputeGameFactory - You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. We will provide an upgrade task and script to facilitate this upgrade. + You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. You can utilize this [template](https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/sep/fp-recovery/005-set-game-implementation) to generate the transaction and validation script for this step. Before executing you will need to update your op-challenger. ### Update your op-challenger - Finally you will need to update your `op-challenger` to the new release version that will be provided soon. + Update your `op-challenger` to the new release version that will be provided soon and configure it to use the new absolute prestate. + + ### Execute the upgrade + + Once your challenger is ready, you can execute the "Set Dispute Game Implementation" transaction. Please simulate and validate that the expected output prior to executing the transaction. ### For OP Stack forks @@ -102,7 +147,7 @@ These following steps are necessary for every node operator: ### Update to the latest release - The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st). + The software is currently being tested and we expect the releases to be cut by the end of this week (Feb 3rd to 7th). These [release candidates](https://github.com/ethereum-optimism/optimism/issues/13627#issuecomment-2627347212) are currently baking on devnet. * `op-node` at `vTBD` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a0172cbc..0d79c4710 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,13 +6,13 @@ settings: patchedDependencies: nextra@2.13.2: - hash: 81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249 + hash: a4rp2hgojklggjmthmkiyqaek4 path: patches/nextra@2.13.2.patch remark-code-import@1.2.0: - hash: f6b78667b2fd0da0247b6e898a35f71bfde2a83adfa62fa6017a02dc7fb5d436 + hash: heylvfasxh3ubj2edns2svea2m path: patches/remark-code-import@1.2.0.patch remark-lint-frontmatter-schema@3.15.4: - hash: 32c1574b8fd989888047ea0226d42029f451eb7c875349c28b6259a73cc7e59f + hash: jaxvkozlhcbn7zjsiti5ocoubi path: patches/remark-lint-frontmatter-schema@3.15.4.patch importers: @@ -57,10 +57,10 @@ importers: version: 4.2.3(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) nextra: specifier: 2.13.2 - version: 2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) nextra-theme-docs: specifier: 2.13.2 - version: 2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -115,7 +115,7 @@ importers: version: 15.0.1 remark-code-import: specifier: ^1.2.0 - version: 1.2.0(patch_hash=f6b78667b2fd0da0247b6e898a35f71bfde2a83adfa62fa6017a02dc7fb5d436) + version: 1.2.0(patch_hash=heylvfasxh3ubj2edns2svea2m) remark-frontmatter: specifier: ^5.0.0 version: 5.0.0 @@ -124,7 +124,7 @@ importers: version: 3.0.1 remark-lint-frontmatter-schema: specifier: ^3.15.4 - version: 3.15.4(patch_hash=32c1574b8fd989888047ea0226d42029f451eb7c875349c28b6259a73cc7e59f) + version: 3.15.4(patch_hash=jaxvkozlhcbn7zjsiti5ocoubi) remark-lint-heading-style: specifier: ^3.1.2 version: 3.1.2 @@ -7433,7 +7433,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + nextra-theme-docs@2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@headlessui/react': 1.7.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@popperjs/core': 2.11.8 @@ -7447,13 +7447,13 @@ snapshots: next: 14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-seo: 6.4.0(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-themes: 0.2.1(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - nextra: 2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + nextra: 2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scroll-into-view-if-needed: 3.1.0 zod: 3.22.4 - nextra@2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + nextra@2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@headlessui/react': 1.7.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mdx-js/mdx': 2.3.0 @@ -7768,7 +7768,7 @@ snapshots: hast-util-raw: 9.0.1 vfile: 6.0.1 - remark-code-import@1.2.0(patch_hash=f6b78667b2fd0da0247b6e898a35f71bfde2a83adfa62fa6017a02dc7fb5d436): + remark-code-import@1.2.0(patch_hash=heylvfasxh3ubj2edns2svea2m): dependencies: strip-indent: 4.0.0 to-gatsby-remark-plugin: 0.1.0 @@ -7841,7 +7841,7 @@ snapshots: unified: 10.1.2 unified-lint-rule: 2.1.2 - remark-lint-frontmatter-schema@3.15.4(patch_hash=32c1574b8fd989888047ea0226d42029f451eb7c875349c28b6259a73cc7e59f): + remark-lint-frontmatter-schema@3.15.4(patch_hash=jaxvkozlhcbn7zjsiti5ocoubi): dependencies: '@apidevtools/json-schema-ref-parser': 11.1.0 ajv: 8.12.0 From 6628b1388d2f91f989f97f830da8a6e7d47175c7 Mon Sep 17 00:00:00 2001 From: soyboy Date: Wed, 5 Feb 2025 18:12:56 -0800 Subject: [PATCH 2/6] Revert "I think my pnpm-lock.yaml is breaking things" This reverts commit fd7fd6f4bf00f3a21093dea2910d9c51d130a37f. --- pages/builders/notices/pectra-changes.mdx | 69 ++++------------------- pnpm-lock.yaml | 24 ++++---- 2 files changed, 24 insertions(+), 69 deletions(-) diff --git a/pages/builders/notices/pectra-changes.mdx b/pages/builders/notices/pectra-changes.mdx index 5eaffc92e..b03c2c2fb 100644 --- a/pages/builders/notices/pectra-changes.mdx +++ b/pages/builders/notices/pectra-changes.mdx @@ -12,20 +12,10 @@ This page outlines breaking changes related to the Ethereum Pectra (Prague-Elect If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). - This page will be updated continuously with information on upgrade runbooks and timelines as they come. Here's the [latest proposed activation time slots](https://github.com/ethereum/pm/issues/1265#issuecomment-2637778317) that are being brought to the all core dev call on happening on Feb 6. - - 1. Client testnet releases out by Feb 10 - * Holesky slot: 3670016 (Wed, Feb 19 at 05:23:12 UTC) - * Sepolia slot: 7061504 (Tue, Feb 25 at 08:20:48 UTC) - * +30 day mainnet slot: 11354112 (Thu, Mar 27 at 11:02:47 UTC) - 2. Client testnet releases out by Feb 13 (ACDE) - * Holesky slot: 3710976 (Mon, Feb 24 at 21:55:12 UTC) - * Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC) - * +30 day mainnet slot: 11444224 (Tue, Apr 8 at 23:25:11 UTC) - 3. Client testnet releases out by Feb 17 - * Holesky slot: 3727360 (Thu, Feb 27 at 04:32:00 UTC) - * Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC) - * +30 day mainnet slot: 11444224 (Tue, Apr 8 at 23:25:11 UTC) + This page will be updated continuously with information on upgrade runbooks and timelines as they come. This based on the last Ethereum ACDC on Jan 23rd 2025. These dates are subject to change based on how `devnet-6` goes. Ethereum L1 clients are expected to have a release out by Feb 3rd. + * The Pectra upgrade for Holesky L1 proposed activation is on **Wed, Feb 12 at 09:32:48 UTC (`1739352768`)**. + * The Pectra upgrade for Sepolia L1 proposed activation is on **Wed, Feb 19 at 15:48:48 UTC (`1739980128`)**. + * The Pectra upgrade for Ethereum L1 will be activated in **March**. ## What's included in Pectra? @@ -55,9 +45,8 @@ These following steps are necessary for every chain operator: ### Update to the latest releases - - The software is currently being tested and we expect the releases to be cut by the end of this week (Feb 3rd to 7th). These [release candidates](https://github.com/ethereum-optimism/optimism/issues/13627#issuecomment-2627347212) are currently baking on devnet. + The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st). * `op-node` at `vTBD` @@ -75,62 +64,28 @@ These following steps are necessary for every chain operator: ### For fault proof enabled chains - - The following instructions assume your chain is on the latest contract release `op-contracts/v1.8.0` and have Holocene activated. - - -The following steps are to update your absolute prestate on your chain. **This is absolutely necessary for chains running permissionless fault proofs.** For chains running the Fault Proof System with permissioned games you can skip this section because games will not be played out and the absolute prestate is not used. - -The Pectra upgrade changes the derivation rules, permissionless fault proof chains need to upgrade the `op-program` version used in the fault proof system to support these changes. The `op-program` version used is specified via the `faultGameAbsolutePrestate` setting, deployed as part of `FaultDisputeGame` and `PermissionedDisputeGame` contracts. +Since the Pectra upgrade changes the derivation rules, you will need to upgrade the `op-program` version used in the fault proof system to support these changes. The `op-program` version used is specified via the `faultGameAbsolutePrestate` setting, deployed as part of `FaultDisputeGame` and `PermissionedDisputeGame` contracts. ### Make sure the Superchain Registry is up to date The new `op-program` release will pull the configurations from the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry). This is important because the op-challenger uses the `op-program` and it needs to be aware of your chain's configuration. If your chain that not in the superchain-registry, please [open a PR to add your chain to the superchain-registry](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/ops.md#adding-a-chain). - ### Verify the new absolute prestate - - - The following is based on the [op-program/v1.5.0-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.5.0-rc.1) which is wrapping up testing and the official release will be out soon. - - - You can use this new absolute prestate (`0x03dfa3b3ac66e8fae9f338824237ebacff616df928cf7dada0e14be2531bc1f4`) for the following chains: - - * Sepolia: Base, OP, Metal, Mode, Zora, Ethernity, Unichain, Ink - * Mainnet: Base, OP, Orderly, Lyra, Metal, Mode, Zora, Lisk, Ethernity, Binary, Ink - - You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/6819d8a4e787df2adcd09305bc3057e2ca4e58d9/Makefile#L133-L135) in the root of the monorepo: - - ```shell - make reproducible-prestate - ``` + ### Generate a new absolute prestate - You should expect the following output at the end of the command: - - ```shell - Cannon Absolute prestate hash: - 0x03dfa3b3ac66e8fae9f338824237ebacff616df928cf7dada0e14be2531bc1f4 - Cannon64 Absolute prestate hash: - 0x03f83792f653160f3274b0888e998077a27e1f74cb35bcb20d86021e769340aa - CannonInterop Absolute prestate hash: - 0x03b7658b889796c1e372f57439e48eb46a5b008f6e6a4b7e5c8c2d3bddffa797 - ``` + Once we have a finalized release of the `op-program`, we will provide a release tag for you to use to generate the absolute prestate. You will check out that release tag in the monorepo and run the `make reproducible-prestate` [command](https://github.com/ethereum-optimism/optimism/blob/80eff009a352c4e74ec8fb41a6bdb2a5778f3075/Makefile#L133-L135) to generate the absolute prestate. ### Deploy new dispute game contracts - You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value. You can reuse the [Holocene script](https://github.com/ethereum-optimism/optimism/tree/op-contracts/v1.8.0-rc.4/packages/contracts-bedrock/scripts/upgrades/holocene) to deploy the new contracts. The only change you will need to make is to update the `absolutePrestate` value in your [deploy-config](https://github.com/ethereum-optimism/optimism/blob/2073f4059bd806af3e8b76b820aa3fa0b42016d0/packages/contracts-bedrock/scripts/upgrades/holocene/README.md?plain=1#L53-L54). Alternatively we will be releasing an `OPPrestateUpdater` that can be used to deploy the new contracts. + You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value. ### Update the DisputeGameFactory - You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. You can utilize this [template](https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/sep/fp-recovery/005-set-game-implementation) to generate the transaction and validation script for this step. Before executing you will need to update your op-challenger. + You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. We will provide an upgrade task and script to facilitate this upgrade. ### Update your op-challenger - Update your `op-challenger` to the new release version that will be provided soon and configure it to use the new absolute prestate. - - ### Execute the upgrade - - Once your challenger is ready, you can execute the "Set Dispute Game Implementation" transaction. Please simulate and validate that the expected output prior to executing the transaction. + Finally you will need to update your `op-challenger` to the new release version that will be provided soon. ### For OP Stack forks @@ -147,7 +102,7 @@ These following steps are necessary for every node operator: ### Update to the latest release - The software is currently being tested and we expect the releases to be cut by the end of this week (Feb 3rd to 7th). These [release candidates](https://github.com/ethereum-optimism/optimism/issues/13627#issuecomment-2627347212) are currently baking on devnet. + The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st). * `op-node` at `vTBD` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d79c4710..8a0172cbc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,13 +6,13 @@ settings: patchedDependencies: nextra@2.13.2: - hash: a4rp2hgojklggjmthmkiyqaek4 + hash: 81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249 path: patches/nextra@2.13.2.patch remark-code-import@1.2.0: - hash: heylvfasxh3ubj2edns2svea2m + hash: f6b78667b2fd0da0247b6e898a35f71bfde2a83adfa62fa6017a02dc7fb5d436 path: patches/remark-code-import@1.2.0.patch remark-lint-frontmatter-schema@3.15.4: - hash: jaxvkozlhcbn7zjsiti5ocoubi + hash: 32c1574b8fd989888047ea0226d42029f451eb7c875349c28b6259a73cc7e59f path: patches/remark-lint-frontmatter-schema@3.15.4.patch importers: @@ -57,10 +57,10 @@ importers: version: 4.2.3(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) nextra: specifier: 2.13.2 - version: 2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) nextra-theme-docs: specifier: 2.13.2 - version: 2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -115,7 +115,7 @@ importers: version: 15.0.1 remark-code-import: specifier: ^1.2.0 - version: 1.2.0(patch_hash=heylvfasxh3ubj2edns2svea2m) + version: 1.2.0(patch_hash=f6b78667b2fd0da0247b6e898a35f71bfde2a83adfa62fa6017a02dc7fb5d436) remark-frontmatter: specifier: ^5.0.0 version: 5.0.0 @@ -124,7 +124,7 @@ importers: version: 3.0.1 remark-lint-frontmatter-schema: specifier: ^3.15.4 - version: 3.15.4(patch_hash=jaxvkozlhcbn7zjsiti5ocoubi) + version: 3.15.4(patch_hash=32c1574b8fd989888047ea0226d42029f451eb7c875349c28b6259a73cc7e59f) remark-lint-heading-style: specifier: ^3.1.2 version: 3.1.2 @@ -7433,7 +7433,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + nextra-theme-docs@2.13.2(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@headlessui/react': 1.7.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@popperjs/core': 2.11.8 @@ -7447,13 +7447,13 @@ snapshots: next: 14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-seo: 6.4.0(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-themes: 0.2.1(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - nextra: 2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + nextra: 2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scroll-into-view-if-needed: 3.1.0 zod: 3.22.4 - nextra@2.13.2(patch_hash=a4rp2hgojklggjmthmkiyqaek4)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + nextra@2.13.2(patch_hash=81936321c37741ec218dc19817c4a4939f4655b8371e793561fc236bebccc249)(next@14.2.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@headlessui/react': 1.7.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mdx-js/mdx': 2.3.0 @@ -7768,7 +7768,7 @@ snapshots: hast-util-raw: 9.0.1 vfile: 6.0.1 - remark-code-import@1.2.0(patch_hash=heylvfasxh3ubj2edns2svea2m): + remark-code-import@1.2.0(patch_hash=f6b78667b2fd0da0247b6e898a35f71bfde2a83adfa62fa6017a02dc7fb5d436): dependencies: strip-indent: 4.0.0 to-gatsby-remark-plugin: 0.1.0 @@ -7841,7 +7841,7 @@ snapshots: unified: 10.1.2 unified-lint-rule: 2.1.2 - remark-lint-frontmatter-schema@3.15.4(patch_hash=jaxvkozlhcbn7zjsiti5ocoubi): + remark-lint-frontmatter-schema@3.15.4(patch_hash=32c1574b8fd989888047ea0226d42029f451eb7c875349c28b6259a73cc7e59f): dependencies: '@apidevtools/json-schema-ref-parser': 11.1.0 ajv: 8.12.0 From 6951f9a1fcb8b6a5a47e4402e8086432a5892c10 Mon Sep 17 00:00:00 2001 From: soyboy Date: Wed, 5 Feb 2025 18:18:25 -0800 Subject: [PATCH 3/6] i thought i was supposed to commit my lock file --- pages/builders/notices/pectra-changes.mdx | 71 ++++++++++++++++++----- 1 file changed, 58 insertions(+), 13 deletions(-) diff --git a/pages/builders/notices/pectra-changes.mdx b/pages/builders/notices/pectra-changes.mdx index b03c2c2fb..3ad681130 100644 --- a/pages/builders/notices/pectra-changes.mdx +++ b/pages/builders/notices/pectra-changes.mdx @@ -12,10 +12,20 @@ This page outlines breaking changes related to the Ethereum Pectra (Prague-Elect If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). - This page will be updated continuously with information on upgrade runbooks and timelines as they come. This based on the last Ethereum ACDC on Jan 23rd 2025. These dates are subject to change based on how `devnet-6` goes. Ethereum L1 clients are expected to have a release out by Feb 3rd. - * The Pectra upgrade for Holesky L1 proposed activation is on **Wed, Feb 12 at 09:32:48 UTC (`1739352768`)**. - * The Pectra upgrade for Sepolia L1 proposed activation is on **Wed, Feb 19 at 15:48:48 UTC (`1739980128`)**. - * The Pectra upgrade for Ethereum L1 will be activated in **March**. + This page will be updated continuously with information on upgrade runbooks and timelines as they come. Here's the [latest proposed activation time slots](https://github.com/ethereum/pm/issues/1265#issuecomment-2637778317) that are being brought to the all core dev call on happening on Feb 6. + + 1. Client testnet releases out by Feb 10 + * Holesky slot: 3670016 (Wed, Feb 19 at 05:23:12 UTC) + * Sepolia slot: 7061504 (Tue, Feb 25 at 08:20:48 UTC) + * +30 day mainnet slot: 11354112 (Thu, Mar 27 at 11:02:47 UTC) + 2. Client testnet releases out by Feb 13 (ACDE) + * Holesky slot: 3710976 (Mon, Feb 24 at 21:55:12 UTC) + * Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC) + * +30 day mainnet slot: 11444224 (Tue, Apr 8 at 23:25:11 UTC) + 3. Client testnet releases out by Feb 17 + * Holesky slot: 3727360 (Thu, Feb 27 at 04:32:00 UTC) + * Sepolia slot: 7118848 (Wed, Mar 5 at 07:29:36 UTC) + * +30 day mainnet slot: 11444224 (Tue, Apr 8 at 23:25:11 UTC) ## What's included in Pectra? @@ -45,8 +55,9 @@ These following steps are necessary for every chain operator: ### Update to the latest releases + - The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st). + The software is currently being tested and we expect the releases to be cut by the end of this week (Feb 3rd to 7th). These [release candidates](https://github.com/ethereum-optimism/optimism/issues/13627#issuecomment-2627347212) are currently baking on devnet. * `op-node` at `vTBD` @@ -64,28 +75,62 @@ These following steps are necessary for every chain operator: ### For fault proof enabled chains -Since the Pectra upgrade changes the derivation rules, you will need to upgrade the `op-program` version used in the fault proof system to support these changes. The `op-program` version used is specified via the `faultGameAbsolutePrestate` setting, deployed as part of `FaultDisputeGame` and `PermissionedDisputeGame` contracts. + + The following instructions assume your chain is on the latest contract release `op-contracts/v1.8.0` and have Holocene activated. + + +The following steps are to update your absolute prestate on your chain. **This is absolutely necessary for chains running permissionless fault proofs.** For chains running the Fault Proof System with permissioned games you can skip this section because games will not be played out and the absolute prestate is not used. + +The Pectra upgrade changes the derivation rules, permissionless fault proof chains need to upgrade the `op-program` version used in the fault proof system to support these changes. The `op-program` version used is specified via the `faultGameAbsolutePrestate` setting, deployed as part of `FaultDisputeGame` and `PermissionedDisputeGame` contracts. ### Make sure the Superchain Registry is up to date The new `op-program` release will pull the configurations from the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry). This is important because the op-challenger uses the `op-program` and it needs to be aware of your chain's configuration. If your chain that not in the superchain-registry, please [open a PR to add your chain to the superchain-registry](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/ops.md#adding-a-chain). - ### Generate a new absolute prestate + ### Verify the new absolute prestate + + + The following is based on the [op-program/v1.5.0-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.5.0-rc.1) which is wrapping up testing and the official release will be out soon. + + + You can use this new absolute prestate (`0x03dfa3b3ac66e8fae9f338824237ebacff616df928cf7dada0e14be2531bc1f4`) for the following chains: + + * Sepolia: Base, OP, Metal, Mode, Zora, Ethernity, Unichain, Ink + * Mainnet: Base, OP, Orderly, Lyra, Metal, Mode, Zora, Lisk, Ethernity, Binary, Ink + + You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/6819d8a4e787df2adcd09305bc3057e2ca4e58d9/Makefile#L133-L135) in the root of the monorepo: + + ```shell + make reproducible-prestate + ``` - Once we have a finalized release of the `op-program`, we will provide a release tag for you to use to generate the absolute prestate. You will check out that release tag in the monorepo and run the `make reproducible-prestate` [command](https://github.com/ethereum-optimism/optimism/blob/80eff009a352c4e74ec8fb41a6bdb2a5778f3075/Makefile#L133-L135) to generate the absolute prestate. + You should expect the following output at the end of the command: + + ```shell + Cannon Absolute prestate hash: + 0x03dfa3b3ac66e8fae9f338824237ebacff616df928cf7dada0e14be2531bc1f4 + Cannon64 Absolute prestate hash: + 0x03f83792f653160f3274b0888e998077a27e1f74cb35bcb20d86021e769340aa + CannonInterop Absolute prestate hash: + 0x03b7658b889796c1e372f57439e48eb46a5b008f6e6a4b7e5c8c2d3bddffa797 + ``` ### Deploy new dispute game contracts - You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value. + You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value. You can reuse the [Holocene script](https://github.com/ethereum-optimism/optimism/tree/op-contracts/v1.8.0-rc.4/packages/contracts-bedrock/scripts/upgrades/holocene) to deploy the new contracts. The only change you will need to make is to update the `absolutePrestate` value in your [deploy-config](https://github.com/ethereum-optimism/optimism/blob/2073f4059bd806af3e8b76b820aa3fa0b42016d0/packages/contracts-bedrock/scripts/upgrades/holocene/README.md?plain=1#L53-L54). Alternatively we will be releasing an `OPPrestateUpdater` that can be used to deploy the new contracts. ### Update the DisputeGameFactory - You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. We will provide an upgrade task and script to facilitate this upgrade. + You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. You can utilize this [template](https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/sep/fp-recovery/005-set-game-implementation) to generate the transaction and validation script for this step. Before executing you will need to update your op-challenger. ### Update your op-challenger - Finally you will need to update your `op-challenger` to the new release version that will be provided soon. + Update your `op-challenger` to the new release version that will be provided soon and configure it to use the new absolute prestate. + + ### Execute the upgrade + + Once your challenger is ready, you can execute the "Set Dispute Game Implementation" transaction. Please simulate and validate that the expected output prior to executing the transaction. ### For OP Stack forks @@ -102,7 +147,7 @@ These following steps are necessary for every node operator: ### Update to the latest release - The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st). + The software is currently being tested and we expect the releases to be cut by the end of this week (Feb 3rd to 7th). These [release candidates](https://github.com/ethereum-optimism/optimism/issues/13627#issuecomment-2627347212) are currently baking on devnet. * `op-node` at `vTBD` @@ -115,4 +160,4 @@ These following steps are necessary for every node operator: * `op-node` and `op-geth` will log their configurations at startup * Check that the Pectra time is set to `activation-timestamp` in the op-node startup logs * Check that the Pectra time is set to `activation-timestamp` in the op-geth startup logs - + \ No newline at end of file From 0d2ed31f8bf4608d89636204910265b523a0bb7b Mon Sep 17 00:00:00 2001 From: soyboy Date: Wed, 5 Feb 2025 18:21:40 -0800 Subject: [PATCH 4/6] fixing linter issue --- pages/builders/notices/pectra-changes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/builders/notices/pectra-changes.mdx b/pages/builders/notices/pectra-changes.mdx index 3ad681130..4bbe29ff9 100644 --- a/pages/builders/notices/pectra-changes.mdx +++ b/pages/builders/notices/pectra-changes.mdx @@ -160,4 +160,4 @@ These following steps are necessary for every node operator: * `op-node` and `op-geth` will log their configurations at startup * Check that the Pectra time is set to `activation-timestamp` in the op-node startup logs * Check that the Pectra time is set to `activation-timestamp` in the op-geth startup logs - \ No newline at end of file + From c2d6d7b5347bcfdb3e1a8cbc696a4a54319986b1 Mon Sep 17 00:00:00 2001 From: soyboy <85043086+sbvegan@users.noreply.github.com> Date: Wed, 5 Feb 2025 18:22:54 -0800 Subject: [PATCH 5/6] Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- pages/builders/notices/pectra-changes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/builders/notices/pectra-changes.mdx b/pages/builders/notices/pectra-changes.mdx index 4bbe29ff9..997205896 100644 --- a/pages/builders/notices/pectra-changes.mdx +++ b/pages/builders/notices/pectra-changes.mdx @@ -122,7 +122,7 @@ The Pectra upgrade changes the derivation rules, permissionless fault proof chai ### Update the DisputeGameFactory - You will then need to update the `DisputeGameFactory` to use the point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. You can utilize this [template](https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/sep/fp-recovery/005-set-game-implementation) to generate the transaction and validation script for this step. Before executing you will need to update your op-challenger. + You will then need to update the `DisputeGameFactory` to point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. You can utilize this [template](https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/sep/fp-recovery/005-set-game-implementation) to generate the transaction and validation script for this step. Before executing, you will need to update your op-challenger. ### Update your op-challenger From 9bee8ad6db37302ec379ae29710802b5f4738c99 Mon Sep 17 00:00:00 2001 From: soyboy Date: Wed, 5 Feb 2025 18:28:14 -0800 Subject: [PATCH 6/6] adding words --- words.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/words.txt b/words.txt index 3628f8a14..134a0bda5 100644 --- a/words.txt +++ b/words.txt @@ -109,6 +109,7 @@ erigon ETHERBASE etherbase Ethernow +Ethernity ETHSTATS ethstats EVMTIMEOUT @@ -181,6 +182,7 @@ jwtsecret Keccak leveldb lightkdf +Lisk logfile logfmt MAXAGE