-
-
Published
Linked with GitHub
# Next steps on EIP-4444
We discussed the EIP with many community members over the Devconnect week, along with a demo given by @henridf about his work prototyping history export/import.
As an outcome of these conversations, we think a good next step will be to continue working on a history prototype for the pre-Merge execution chain.
Once the Merge happens, it would be great to demo how history will be archived and the resulting committment to the pre-Merge history can even be included in EIP-4444.
# What is needed
In the following, "history" refers to the full chain history of the execution chain from genesis up to and including the terminal proof-of-work block.
- A way to serialize the history including block headers, bodies and receipts that facilitates efficient download, retrieval and storage.
- This serialization should come with a built-in cryptographic accumulation scheme so that subsets of the history (granularity TBD) can be verified against a single accumulator
- Software to take in the canonical accumulator and then verify all (or ideally just part) of the history data provided as input.
- Software to take the serialized history data as input and import to each execution client (note: clients should already have a way to import raw RLP so this is likely just a thin adapter from the serialization format to the format needed for import)
- (light) documentation on how to use this software
- bonus: once the history serialization has been finalized, host torrents of the data and ping the EIP-4444 authors who can help seed.
NOTE: a good chunk of this has already been done by @henridf in his prototype work -- reach out to him if you want to get involved
# Open questions
Do clients **verify** the block history upon import?
If we trust the history accumulator then this is not as important but we should also at some point (perhaps not any time soon but before shipping EIP-4444) also provide a way for an execution client to verify ("full sync" style) the entire history from genesis up to the terminal proof-of-work block.