Skip to content

Toward an Ultralight execution client #732

@acolytec3

Description

@acolytec3

With the History Network close to something looking like fully implemented, the build out of support for both era and era1 files within our various monorepos, and the existence of similar efforts status-im/nimbus-eth1#2910, it's time we also think through what would be a useful implementation of an Ultralight EL client.

Things we could do

  • Implement full forward sync from chainstart (kind of boring and already done by Trin Execution)
  • Implement an EL client that uses checkpoint sync to quickly sync to the head of the chain
    This is interesting in that it allows for an "execution" client to quickly sync to the head of the chain without depending on the Beacon Chain (at least not directly as long as the Beacon Network bridges are operational)
  • A personalized EL client that takes something like the above checkpoint sync client plus a mobile app that stays in sync via UnifiedPush to provide a personalized EL experience that lets a user specify a wallet address and monitor it over time. Is this actually that interesting to anybody other than decentralization maxis since it only applies to mainnet?
    What else?

Options 1 and 2 should be relatively straightforward to implement. Just pick a sync strategy (forward sync/checkpoint sync) and then start fetching blocks monotonically or in batches. The structure of a client should be really simple, basically just an @ethereumjs/vm with a portalnetwork module in back pulling in the blocks for execution. There's probably more here since the vm expects a blockchain and other niceties that we'd have to account for but this should still probably be step one.
I'm not sure what else to put here but want to get this conversation started.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions