-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Add ability to initiate an L2 upgrade on L1 #706
Copy link
Copy link
Closed
Description
Is your feature request related to a problem? Please describe.
We would like the ability to use a contract on L1 to authenticate upgrades to L2 for security & stability reasons.
Describe the solution you'd like
In order for us to do this, we will need to send a message from L1 into L2 that starts an upgrade. Once an upgrade is started, the L2 ExecutionManager must pause transactions to any account that is not the upgrade contract.
One side-effect of pausing transactions on L2 is that all deposits will fail to be executed until the upgrade is complete. This is unfortunate but it's hard to avoid. However, thankfully we can replay all deposits by using: #705 !
The mechanics of this is as follows:
- Create a transaction on L1 which submits an
enqueuewhich initiates the L2 upgrade. - Wait until the enqueue which initiates the upgrade is processed. This will change the ExecutionManager to only forward transactions along to the upgrade contract.
- Submit a bunch of off-chain transactions to the sequencer which carry out the upgrade.
- Once the upgrade on L2 is done, run the deposit replayer and make sure that any enqueue messages that failed because of the upgrade are included!
Blockers
#705
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels