celo-org / optimism

Optimism is Ethereum, scaled.
https://optimism.io
MIT License
3 stars 3 forks source link

Rebase changes on top of stable upstream #123

Closed palango closed 3 months ago

palango commented 5 months ago

We need to rebase (at least that's what we have been doing in the past) our changes on top of the latest upstream changes.

While doing so, I found big changes to contract deployment. This work was mostly done in https://github.com/ethereum-optimism/optimism/pull/10106 and follow-ups.

### Tasks
- [x] Rebase op-geth, will fix https://github.com/celo-org/op-geth/issues/44
- [ ] https://github.com/celo-org/op-geth/issues/136
- [ ] https://github.com/celo-org/optimism/issues/137
lvpeschke commented 4 months ago

Hard to predict and assess progress, reactive work commit by commit.

lvpeschke commented 4 months ago

@palango can you provide a status update? how much is left to do?

palango commented 4 months ago

@palango can you provide a status update? how much is left to do?

tynes commented 4 months ago

Some things that we did recently were:

One question for you, do you use the devnet? Trying to figure out what to do with it, some of our devs use it for local development. I don't think it needs to run in CI on every PR, I think it could run hourly and be fine

palango commented 4 months ago

Thanks for the input here @tynes.

I worked on the rebase and agree that the changes you mention will make maintenance easier in the future (but cause some work now). Moving the bindings to the places where they are used makes a lot of sense and the whole genesis creation in foundry scripts seems both easier and cleaner. Great work! The removal of typescript didn't touch our changes so far, but great to know about it early.

Regarding the devnet: Our current plan is to extend it to allow testing of the migration process which will be quite useful. Do you intent to stop maintaining it or are you more interested in our use cases?

tynes commented 4 months ago

We don't intend to stop maintaining the devnet but we are working on a plan for how to make it maintainable long term. It has a lot of tech debt at this point with all of the various flags (use fault proofs, use plasma, use custom gas token) and its not super cohesive. We need it for application developers so that they can easily test cross chain applications. At some point, we will update it to support 2 L2s to app devs to build interop applications, see https://github.com/ethereum-optimism/optimism/issues/10608. We did all of our migration testing for the migration in the cloud using ansible because it enabled us to use disk snapshots for faster feedback and also allowed us to develop the tooling we used in prod

tynes commented 4 months ago

Regarding the L2 genesis, I'd like to get to a point where we could do releases of a JSON file that represents a release of the L2 genesis allocs and its the same for all chains. I was thinking that other chains could decorate that standard release of the L2 genesis allocs. Not sure timeline wise when we can get to this because it requires https://github.com/ethereum-optimism/specs/pull/194

lvpeschke commented 3 months ago

@palango how close to completion is the remaining work now?

palango commented 3 months ago

It's mostly blocked on https://github.com/celo-org/op-geth/issues/136 and then we need to cherry pick some remaining commits.