From b12f535405c1726e76240e7e0e435b7b1ce9954e Mon Sep 17 00:00:00 2001 From: soyboy Date: Mon, 29 Jul 2024 17:02:33 -0600 Subject: [PATCH 1/4] minor updates for l1 contract deployments --- .../chain-operators/deploy/smart-contracts.mdx | 12 ++++++++---- .../chain-operators/management/best-practices.mdx | 12 ++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/pages/builders/chain-operators/deploy/smart-contracts.mdx b/pages/builders/chain-operators/deploy/smart-contracts.mdx index 2eb101cd4..b1cabaa46 100644 --- a/pages/builders/chain-operators/deploy/smart-contracts.mdx +++ b/pages/builders/chain-operators/deploy/smart-contracts.mdx @@ -9,9 +9,10 @@ import { Callout } from 'nextra/components' # OP Stack Smart Contract Deployment The following guide shows you how to deploy the OP Stack L1 smart contracts. -The primary development branch is `develop`. It contains the most up-to-date -software that remains backwards compatible with the latest experimental -network deployments. **Changes to the smart contracts are generally not considered backwards compatible.** +The primary development branch is `develop`, however you should only deploy +official contract releases. You can visit the see the [smart contract overview](add link) +for the official release versions. **Changes to the smart contracts are +generally not considered backwards compatible.** Standard OP Stack chains should use governance approved and audited versions @@ -21,7 +22,10 @@ network deployments. **Changes to the smart contracts are generally not consider ## Deployment Configuration Deploying your OP Stack contracts requires creating a deployment configuration -JSON file. For the full set of options, you can see the [rollup configuration page](/builders/chain-operators/configuration/rollup). +JSON file. You will create a new deployment configuration file in the following +monorepo subdirectory: [packages/contracts-bedrock/deploy-config](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deploy-config) +For the full set of deployment configuration options and their meanings, you +can see the [rollup deployment configuration page](/builders/chain-operators/configuration/rollup). ## Deployment Script diff --git a/pages/builders/chain-operators/management/best-practices.mdx b/pages/builders/chain-operators/management/best-practices.mdx index bb63e031a..5f6a51b20 100644 --- a/pages/builders/chain-operators/management/best-practices.mdx +++ b/pages/builders/chain-operators/management/best-practices.mdx @@ -35,6 +35,18 @@ and `op-geth` releases can be found [here](https://github.com/ethereum-optimism/ version. Since we cannot left-pad with zeroes, the geth major version is not padded. +### Keep Deployment Artifacts + +After deploying your contracts on Ethereum, you should keep a record of all the +deployment artifacts: + +* Contract release tag and commit hash +* Contract deployment directory with smart contract artifacts. This is +created in [packages/contracts-bedrock/deployments](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deployments) +* The rollup configuration file that you generated after the contract +deployment +* The genesis file that you generated after the contract deployment + ### Incremental Upgrade Rollouts When upgrading your nodes, take a staggered approach. This means deploying the From d050176ba889a99b1e2bc39dc1765eb3711b78d1 Mon Sep 17 00:00:00 2001 From: soyboy Date: Mon, 29 Jul 2024 17:04:57 -0600 Subject: [PATCH 2/4] adding internal link --- .../builders/chain-operators/deploy/smart-contracts.mdx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pages/builders/chain-operators/deploy/smart-contracts.mdx b/pages/builders/chain-operators/deploy/smart-contracts.mdx index b1cabaa46..8629a4172 100644 --- a/pages/builders/chain-operators/deploy/smart-contracts.mdx +++ b/pages/builders/chain-operators/deploy/smart-contracts.mdx @@ -10,8 +10,8 @@ import { Callout } from 'nextra/components' The following guide shows you how to deploy the OP Stack L1 smart contracts. The primary development branch is `develop`, however you should only deploy -official contract releases. You can visit the see the [smart contract overview](add link) -for the official release versions. **Changes to the smart contracts are +official contract releases. You can visit the see the [smart contract overview](/stack/protocol/rollup/smart-contracts) +for the official release versions. **Changes to the smart contracts are generally not considered backwards compatible.** @@ -24,13 +24,13 @@ generally not considered backwards compatible.** Deploying your OP Stack contracts requires creating a deployment configuration JSON file. You will create a new deployment configuration file in the following monorepo subdirectory: [packages/contracts-bedrock/deploy-config](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deploy-config) -For the full set of deployment configuration options and their meanings, you +For the full set of deployment configuration options and their meanings, you can see the [rollup deployment configuration page](/builders/chain-operators/configuration/rollup). ## Deployment Script The smart contracts are deployed using [foundry](https://github.com/foundry-rs) -and you can find the script's source code in the monorepo at +and you can find the script's source code in the monorepo at [packages/contracts-bedrock/scripts/deploy/Deploy.s.sol](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/scripts/deploy/Deploy.s.sol). ### State Diff @@ -73,6 +73,7 @@ DEPLOY_CONFIG_PATH= \ ``` ### Deploying a single contract + All functions for deploying a single contract are public, meaning that All functions for deploying a single contract are public, meaning that the `--sig` argument to forge script can be used to target the deployment of a From 256d6afaa9a5ec0bddc9d0c7679d8316a004dfa2 Mon Sep 17 00:00:00 2001 From: soyboy Date: Tue, 30 Jul 2024 08:38:27 -0600 Subject: [PATCH 3/4] addressing review --- pages/builders/chain-operators/deploy/smart-contracts.mdx | 3 +-- pages/builders/chain-operators/management/best-practices.mdx | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pages/builders/chain-operators/deploy/smart-contracts.mdx b/pages/builders/chain-operators/deploy/smart-contracts.mdx index 8629a4172..bc66536e7 100644 --- a/pages/builders/chain-operators/deploy/smart-contracts.mdx +++ b/pages/builders/chain-operators/deploy/smart-contracts.mdx @@ -10,7 +10,7 @@ import { Callout } from 'nextra/components' The following guide shows you how to deploy the OP Stack L1 smart contracts. The primary development branch is `develop`, however you should only deploy -official contract releases. You can visit the see the [smart contract overview](/stack/protocol/rollup/smart-contracts) +official contract releases. You can visit the see the [smart contract overview](/stack/smart-contracts) for the official release versions. **Changes to the smart contracts are generally not considered backwards compatible.** @@ -74,7 +74,6 @@ DEPLOY_CONFIG_PATH= \ ### Deploying a single contract -All functions for deploying a single contract are public, meaning that All functions for deploying a single contract are public, meaning that the `--sig` argument to forge script can be used to target the deployment of a single contract. diff --git a/pages/builders/chain-operators/management/best-practices.mdx b/pages/builders/chain-operators/management/best-practices.mdx index 5f6a51b20..78bb4a339 100644 --- a/pages/builders/chain-operators/management/best-practices.mdx +++ b/pages/builders/chain-operators/management/best-practices.mdx @@ -41,6 +41,8 @@ After deploying your contracts on Ethereum, you should keep a record of all the deployment artifacts: * Contract release tag and commit hash +* Contract deployment configuration file. This is the JSON file you created +and passed to the deployment script when you deployed the contracts. * Contract deployment directory with smart contract artifacts. This is created in [packages/contracts-bedrock/deployments](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deployments) * The rollup configuration file that you generated after the contract From eeb4ea086d03a1f35aeaa96ce6312d80c9dfa435 Mon Sep 17 00:00:00 2001 From: soyboy Date: Tue, 30 Jul 2024 08:41:29 -0600 Subject: [PATCH 4/4] adding emphasis --- pages/builders/chain-operators/deploy/smart-contracts.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/builders/chain-operators/deploy/smart-contracts.mdx b/pages/builders/chain-operators/deploy/smart-contracts.mdx index bc66536e7..59d88e510 100644 --- a/pages/builders/chain-operators/deploy/smart-contracts.mdx +++ b/pages/builders/chain-operators/deploy/smart-contracts.mdx @@ -9,10 +9,10 @@ import { Callout } from 'nextra/components' # OP Stack Smart Contract Deployment The following guide shows you how to deploy the OP Stack L1 smart contracts. -The primary development branch is `develop`, however you should only deploy -official contract releases. You can visit the see the [smart contract overview](/stack/smart-contracts) -for the official release versions. **Changes to the smart contracts are -generally not considered backwards compatible.** +The primary development branch is `develop`, however **you should only deploy +official contract releases**. You can visit the see the [smart contract overview](/stack/smart-contracts#official-releases) +for the official release versions. Changes to the smart contracts are +generally not considered backwards compatible. Standard OP Stack chains should use governance approved and audited versions