Ethereum vanilla clients #170
arnaubennassar
started this conversation in
Architecture
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The goal for this discussion is to come up with a proposal that enables sequencing and syncing EVM flavoured CDKs using existing execution clients or a version/fork that is as unmodified as possible.
Today we use
cdk-erigonas an executionc client, the problem with the existing soulution is that implements some features that should exist on thecdkclient in order to:A non exhaustive list of things that
cdk-erigondoes and should be decoupled from it, and where to find specs/docs/code/discussions:cdk-erigonis in charge of sharing the necessary data to reconstruct the state with othercdk-erigonnodes. Specially when this data is part of the "trusted state". This is done using the DataStreamer protocol. Recently, the CDK client has dropped the DataStreamer interface in favor of the JSON RPC when it comes to sonsume data from the execution client. The main problem forcdk-erigonowning this functionality, is that it forces other execution clients to implement it if they want to be part of the stack + non EVM flavors could also benefit from this if implemented on CDK. WIP discussioncdk-erigonsyncs from the sequencer (as explaoned on the data distribution bullet point). However, in case of a misbehaving sequencer,cdk-erigonimplements a mechanism in which it can re-construct the state by consuming data posted on a DA backend instead. This is a core functionality of any rollup (in fact, is necessary even to be a stage0 rollup / validium as per l2Beat framework . However this is treated more like a manual recovery functionality, than anything else. The fact that this is implemented oncdk-erigonis not only bad for re-usability, but for modularity. As we expect the CDK stack to support many DA backends (4844, call data, DAC, Celestia, Avail, ...). Involved in this discussioncdk-erigontakes care of grouping blocks into batches, batches are a concept that obviously doesn't exist on vanilla clientsOther topics that are worth mentioning:
The op-geth vs geth diff is a fantastic resource to understand the challenge of using a 100% vanilla client to build a rollup, it's worth studying before jumping into this discussion
Beta Was this translation helpful? Give feedback.
All reactions