You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Deployments at our level of complexity require multiple transactions spaced out over multiple blocks. This introduces annoyances around ensuring that all deployments are carried out to completion before operation of the chain continues.
Additionally, authenticating a deployment should be extremely high security & therefore it is extremely expensive to perform a deployment where you need to authenticate every transaction in a deployment that requires, say, 20 transactions. It's just unreasonable to sign 20 multisig txs!
Describe the solution you'd like
In order to solve this we propose a deployment system which:
Can authenticate a very large deployment in 1 transaction and allow anyone to actually execute the deployment.
Locks the entire contract system while a deployment is in progress, ensuring that no transactions are executed against a partial deployment.
Can perform deployments across L1 and L2 (the deployment pauses both L1 and L2 contracts so that we can upgrade any component of our system)
Will never get stuck in the middle of a deployment.
Tracks the version of the deployment.
To create this we need to create a DeploymentManager contract which handles initiating a new upgrade, shutting down the system, performing upgrades, updating the upgrade if needed, resuming the system, and emitting useful information which describes what the upgrade did.
This issue is specifically scoped to implementing the DeploymentManager contract. Note that we will need to extend the functionality when we want to implement the specific pausing & resuming logic for L1 and L2 as they differ per environment.
snario
changed the title
Add ChugSplashDeployer contract supporting L1 & L2
ChugSplash needs a contract that authenticates and executes upgrades as internal transactions
May 3, 2021
Is your feature request related to a problem? Please describe.
Deployments at our level of complexity require multiple transactions spaced out over multiple blocks. This introduces annoyances around ensuring that all deployments are carried out to completion before operation of the chain continues.
Additionally, authenticating a deployment should be extremely high security & therefore it is extremely expensive to perform a deployment where you need to authenticate every transaction in a deployment that requires, say, 20 transactions. It's just unreasonable to sign 20 multisig txs!
Describe the solution you'd like
In order to solve this we propose a deployment system which:
To create this we need to create a DeploymentManager contract which handles initiating a new upgrade, shutting down the system, performing upgrades, updating the upgrade if needed, resuming the system, and emitting useful information which describes what the upgrade did.
There is a WIP implementation here:
optimism/packages/contracts/contracts/chugsplash/L2/ChugSplashDeployer.sol
Line 13 in a33bf58
This issue is specifically scoped to implementing the DeploymentManager contract. Note that we will need to extend the functionality when we want to implement the specific pausing & resuming logic for L1 and L2 as they differ per environment.
Blockers
#697
#696
The text was updated successfully, but these errors were encountered: