-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
Done Criteria
go-ipfs users can manually configure delegated-routing endpoints to query for content discovery.
The initial version can query the DHT and delegated-routing endpoints in parallel. A future iteration can have a "DSL" for describing conditions/sequencing of content routing calls.
Why Important
Make it easily self-service for go-ipfs users to experiment with different content routing options without needing to maintain a go-ipfs plugin or fork.
The immediate usecase is to enable the ipfs.io gateway to be able to query storetheindex for content that isn't otherwise directly published to the public DHT.
Notes
While go-ipfs work can start sooner, these items will need to be completed before this is merged in go-ipfs:
- The delegated routing interface/schema should be defined and checked in: Determine v1 schema go-delegated-routing#8
- ipld/edelweiss generates a client and server for the delegated router schema.
- Estimate: "free" because Petar doing it
- Update ipfs/go-delegated-routing to use the ipld/edelweiss generated client: Implementation of delegated routing based on the Edelweiss compiler go-delegated-routing#11
- Need to add some unit tests for client/server communication (using Edelweiss generated client/server)
- Estimate: 2
At this point, the changes in the Hydras can be done:
The work to go-ipfs will involve:
- Modifying the content routing codepath to query ipfs/go-delegated-routing in parallel if there are configured endpoints
- Adding a dependency to ipfs/go-delegated-routing
- Either easy because we already have a routing system that does parallel routing. We may need to change the abort strategy (i.e., don't do early abort).
- Estimate (assuming the worst case): 4
- Expose a configuration option to specify delegated-routing servers.
- Estimate: 1
Release related items
- Release notes
- Enabling it on gateways for hitting storetheindex
To enable the immediate usecase of the ipfs.io gateway to be able to query storetheindex for content that isn't otherwise directly published to the public DHT, the following will need to be done:
- Add a delegated-routing findprovider endpoint storetheindex that uses the ipld/edelweiss generated service. This is being tracked here: Add Reframe protocol server ipni/storetheindex#251