ethereum-optimism / optimism

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

interop: decouple op-supervisor endpoints availability #11959

Closed protolambda closed 1 month ago

protolambda commented 2 months ago

There is a cyclic dependency in RPCs:

The op-supervisor should decouple the notion of an "L2 endpoint" from an "L2 monitor / DB". If the endpoint is unavailable, offline, etc. then the existing DB should still be discovered, and the existing data should be served.

An L2 endpoint should be possible to add/remove from the op-supervisor without restarting the L2 monitor, or the backend as a whole.

Once it's more decoupled, the op-supervisor can be started, op-geth can connect to it, and then we can make the op-supervisor connect to op-geth when available.

Ideally we also make op-supervisor retry connection attempts of existing configured endpoints, without blocking startup of the op-supervisor, so that we don't have to call the op-supervisor RPC after all the things start up.

protolambda commented 1 month ago

PRs: