-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
L2 Genesis Simplification (L2 MCP) #350
Comments
This is very much related to #122 (comment) and we may want to use a similar architecture for setting network specific config into L2. We don't want to expose setters that the chain operator can change, but we do want the Each predeploy that has network specific configuration (for example, the When the To solve this, we would want to go through all of the predeploy contracts and find network specific configuration and then add setters/getters to the Some values like the |
Working on a spec: #358 |
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Right now there is not a great way to do L2 contracts releases because there is network specific configuration in the L2 genesis allocs in the form of storage and bytecode (immutables). This makes it difficult to release an
allocs.json
artifact as a release of the L2 genesis, as well as ensuring that no malicious code has been set in the genesis state of a chain. Ideally there should be a single deterministic L2 genesis state per hardfork and all network specific config should be sourced from L1.This project involves moving all of the network specific configuration in the L2 predeploys to be sourced from L1. We want a system similar to interop's
setConfig
as described here that sets the network specific values into storage via deposit transactions when theSystemConfig
is initialized.Examples of this network specific config:
Instead of reading these values from storage on L2, they could be exposed via getters on the
L1Block
contract and then read from a single source of truth. The L1setConfig
path would be able to issue deposit transactions that can modify these values. This would decouple the L2 genesis state from network specific config and simplify the process of spinning up a new chain because all chains can use the sameallocs.json
The text was updated successfully, but these errors were encountered: