Skip to content

Expose libp2p-style content/peer routing API? #378

@achingbrain

Description

@achingbrain

Small glossary:

  • Helia API - the interface implemented by helia, @helia/http and maybe others one day. It exposes a .libp2p property.
  • helia an implementation of the API that uses libp2p
  • @helia/http an implementation of the API that (in theory) only uses HTTP gateways

This is in reaction to #372 where we have an implementation of the Helia API (so it's compatible with @helia/unixfs, @helia/dag-cbor, etc) that doesn't use libp2p and does everything over HTTP.

Modules like @helia/ipns use the ContentRouting and PeerRouting interfaces from libp2p via the Helia API to do things like look up records or find providers for content.

We have modules like @helia/delegated-routing-v1-http-api-client which implement one or both routing interfaces but only over HTTP.

If the Helia API exposed the Content/Peer routing APIs then helia could call through to libp2p and @helia/http could call implementations like @helia/delegated-routing-v1-http-api-client. Block brokers could use this to find HTTP block/car providers in the routing.

We could probably remove libp2p from the Helia API then - helia would be free to add it back in to expose it for anyone who wants to drop down to a lower level.

cc @ipfs/helia-dev

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions