Skip to content

Add Routing.Type=delegated to only use Routing.DelegatedRouters #10824

@lidel

Description

@lidel

Problem / User need

Right now (0.35) there is no easy way to disable Amino DHT AND only use Routing.DelegatedRouters.

This setup was requested by users (example), and allows them to turn off DHT client on Kubo and delegate it to a self-hosted instance of Someguy that exposes /routing/v1 caching proxy to Amino DHT and any other Delegated routing endpoints.

Implementation ideas

Since it is already possible to turn off routing with Routing.Type=none, we could add Routing.Type=delegated which would work the same way as Routing.Type=autoclient but without initializing Amino DHT client, and only initializing Delegated routers from Routing.DelegatedRouters

Caveats

  • Error if Provider and Reprovider is enabled, asking user to explciitly disable them, so user knows they are read-only client and dont provide anything?
  • There is no Spec for Delegated Provides over HTTP. ipfs daemon must print a loud warning informing user that node running with Routing.Type=delegated will not be able to provide data on Amino DHT. Prior art:
    ⚠️ Provide and Reprovide systems are disabled due to 'Provide.Enabled=false'
    ⚠️ Local CIDs will not be announced to Amino DHT, making them impossible to retrieve without manual peering
    ⚠️ If this is not intentional, call 'ipfs config profile apply announce-on' or set Provide.Enabled=true'

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium: Good to have, but can wait until someone steps updif/mediumeffort/hoursEstimated to take one or several hourskind/enhancementA net-new feature or improvement to an existing featurestatus/blockedUnable to be worked further until needs are mettopic/dhtTopic dhttopic/routingTopic routing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions