Skip to content

Light client server support [tracking issue] #3651

Open
@michaelsproul

Description

@michaelsproul

Description

We should support the full node side of the light client protocol.

The components we need for this are:

Groundwork

P2P (Gossip & ReqResp)

REST APIs

Optimization

Production: enabling Light Client server by default

  • Add tests for Light Client ReqResp interfaces #4940
  • Measure performance impact and additional resource requirement
  • Review inbound request quota config
  • Evaluate whether changes to peer count / inbound peer ratio is required
  • Enable light client server by default

Additional Details

  • Constructing merkle proofs: I think it will be easiest if we pursue a non-generic approach for this initially, as a generic approach would require digging into the guts of tree_hash_derive to add methods for generating merkle proofs based on field indices. We probably want that eventually, but a non-generic approach can inform the generic implementation. If we implement this atop unstable we probably want to integrate with the BeaconTreeHashCache so that we don't need to re-hash the whole state for the intermediate nodes of the proof. Alternatively we could implement it without caching and rely on the arrival of tree-states to improve performance (because caching is then built in to each field's tree_hash_root() method).
  • NOTE: in-memory tree states is now on stable as of v5.2.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    NetworkingconsensusAn issue/PR that touches consensus code, such as state_processing or block verification.enhancementNew feature or requestlight-client

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions