-
Notifications
You must be signed in to change notification settings - Fork 135
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
Capture genesis creation metadata into the registry #478
Comments
Proposed changes:
|
If we store the monorepo From the superchain-registry side, this is how I imagine the bytecode recreation would work
Where/how does the |
Let me try to clarify this a bit. I think there are the following two approaches to genesis validation: "compile & ignore immutables"This is exactly as you describe in your steps 1-5. I think you are correct that an invocationCommand is not required for this approach (although, we still ideally would have the necessary commands to install dependencies and compile, in case This is the initial approach we are taking on #475 . The downsides are: we ignore immutable variables and have to inspect account balances, maintain the list of standard predeploys and storage variables in a more ad hoc fashion too. regenerate genesis exactlyThis is the gold standard approach. To enumerate the steps, it is the same as above with the following modifications: The downsides of this are we need more input from the user to regenerate the genesis, but the upsides are that we get an exact description of the output that is acceptable. I think what we ought to do in the short term is enable the first approach and leave the door open to upgrading the second approach in the future. Since we are trying to make this whole genesis validation approach a "first class citizen" by modifying the genesis creation tooling itself, it seems right to shoot for the gold standard (its much cleaner given the fact we can ensure repeatability of the genesis creation). Perhaps the |
We went with the "regenerate genesis exactly" approach, and are now storing the information in the registry as desired. We can close this ticket when we update the genesis creation tool in the monorepo, such that it stores the information durably (in a gitignored file). The modification could be done around this line https://github.com/ethereum-optimism/optimism/blob/5a1a18d0ceedc40aad99baf4359e06f09fc7b718/packages/contracts-bedrock/scripts/L2Genesis.s.sol#L112 |
@bitwiseguy what is the status of the monorepo genesis creation tool update? Has that change landed? If not, do you have an ETA? |
@bitwiseguy implemented this here ethereum-optimism/optimism#11763 but it has been decided we will take a different approach and make a tag for chain operators to use to generate their L2 genesis ethereum-optimism/optimism#11778 . This should tide us over until we tackle ethereum-optimism/specs#350 |
deploy-config.json
So that we can validate the genesis for standard chains.
We may as well store it for all chains, in case they want to become standard in the future.
The text was updated successfully, but these errors were encountered: