Skip to content

Commit 2c15a63

Browse files
committed
fix: update delegate routing docs
fixes #1752
1 parent 0427b6e commit 2c15a63

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

docs/concepts/glossary.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,13 @@ The Datastore is the on-disk storage system used by an IPFS node. Configuration
164164

165165
Direct Connection Upgrade through Relay (DCUtR) protocol enables [hole punching](#hole-punching) for NAT traversal when port forwarding is not possible. A peer will coordinate with the counterparty using a [relayed connection](#circuit-relay-v2), to upgrade to a direct connection through a NAT/firewall whenever possible. [More about DCUtR](https://github.com/libp2p/specs/blob/master/relay/DCUtR.md)
166166

167-
### Delegate routing node
167+
### Delegate routing
168168

169-
[Kubo](#kubo) nodes with a subset of RPC API commands exposed. JS-IPFS nodes use them to query the DHT and also publish content without having to actually run DHT logic on their own. See [Delegate routing](../concepts/nodes.md#types)
169+
[Delegated Routing V1 HTTP API](https://specs.ipfs.tech/routing/http-routing-v1/) is not a routing system but a general API to offload **content**, **peer**, and **IPNS** routing queries.
170+
171+
This is useful in browsers and other constrained environments where it's infeasible to be a DHT client/server. More broadly, it enables experimentation and innovation in content routing while maintaining interoperability and modularity.
172+
173+
See [Delegate routing](../concepts/nodes.md#types)
170174

171175
### DHT
172176

docs/concepts/nodes.md

+12-13
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sidebarDepth: 2
66

77
# Nodes
88

9-
Participants in the IPFS network are called _nodes_. A _node_ is a program or process implementing IPFS that you run on your local computer (directly or via a browser) to store files and connect to the IPFS network. They're the most crucial aspect of IPFS. Without nodes running as an IPFS _daemon_ (explained below), there would be no IPFS Network.
9+
Participants in the IPFS network are called _nodes_. A _node_ is an instance of an implemention IPFS that you run on your local computer (directly or via a browser) to store files and connect to the IPFS network. They're the most crucial aspect of IPFS. Without IPFS nodes, there would be no IPFS Network.
1010

1111
You're likely to see the term _node_ throughout the IPFS docs, issues, and related code. It's a very general term, so its meaning depends on the context. There are three main categories of nodes: IPFS nodes, data nodes, and libp2p nodes for applications.
1212

@@ -28,7 +28,7 @@ There are different types of IPFS nodes. And depending on the use-case, a single
2828

2929
- [Relay](#relay)
3030
- [Bootstrap](#bootstrap)
31-
- [Delegate routing](#delegate-routing-node)
31+
- [Delegate routing](#delegate-routing)
3232

3333
### Relay
3434

@@ -67,22 +67,21 @@ Both Kubo and Helia _nodes_ use bootstrap _nodes_ to initially enter the DHT.
6767

6868
[More about Bootstrapping](../how-to/modify-bootstrap-list.md)
6969

70-
### Delegate routing node
70+
### Delegated Routing
7171

72-
When IPFS nodes are unable to run Distributed Hash Table (DHT) logic on their own, they _delegate_ the task to a delegate routing node. Publishing works with arbitrary CID codecs (compression/decompression technology), as the [js-libp2p-delegated-content-routing module](https://github.com/libp2p/js-libp2p-delegated-content-routing/blob/master/src/index.ts) publishes CIDs at the block level rather than the IPLD or DAG level.
72+
IPFS nodes _delegate_ the content and peer routing tasks to a **Delegated Routing V1 HTTP API** ([spec](https://specs.ipfs.tech/routing/http-routing-v1/)).
7373

74-
#### Features of a delegate routing node:
74+
Delegated routing over HTTP is not a routing system but a general API to offload routing work. This is useful in browsers and other constrained environments where it's infeasible to be a DHT server/client contacting many other peers. More broadly, it enables experimentation and innovation in content routing while maintaining interoperability.
7575

76-
- They are IPFS _nodes_ with their API ports exposed and some [Kubo RPC API](../reference/kubo/rpc.md) commands accessible at path `/api/v0`.
77-
- Usable by both Kubo and Helia _nodes_.
78-
- Helia _nodes_ can use them to query the DHT and also publish content without having to actually run DHT logic on their own.
79-
- The libp2p _node_ configured for a Helia _node_ can be configured for delegate routing by following instructions at in the [js-libp2p configuration doc](https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md#setup-with-content-and-peer-routing)
76+
The [HTTP API](https://specs.ipfs.tech/routing/http-routing-v1/) can used to resolve **content**, **peer**, and **IPNS name** routing requests.
8077

81-
#### Limitations of a delegate routing node:
78+
#### Support for delegated routing in IPFS implementations
79+
80+
- [someguy](https://github.com/ipfs-shipyard/someguy) is a Delegated Routing V1 server that proxies requests to the IPFS Amino DHT and the [cid.contact Network Indexer](https://cid.contact/). The IPFS Foundation operates a public good delegated routing endpoint backed by someguy with the URL https://delegated-ipfs.dev.
81+
- The [cid.contact Network Indexer](https://cid.contact/) also implements the Delegated Routing V1 HTTP API.
82+
- [Helia](https://github.com/ipfs/helia/tree/main/packages/http#example---with-custom-gateways-and-delegated-routing-endpoints) can be configured to use a delegated routing endpoint.
83+
- [`Kubo`](https://github.com/ipfs/kubo/blob/master/docs/delegated-routing.md) can be configured with multiple delegated routing endpoints (Kubo as a client) in addition to exposing the delegated routing endpoint on the [gateway](https://github.com/ipfs/kubo/blob/master/docs/config.md#gatewayexposeroutingapi) (Kubo as a delegated routing server).
8284

83-
- On default delegate _nodes_ provided by Protocol Labs, the garbage collection happens every hour, so provided content only survives for that long.
84-
- Only Kubo is known to implement the [Kubo RPC API](../reference/kubo/rpc.md) at the time of writing.
85-
- There is a successor to the delegated routing functionality of the Kubo RPC API called [Routing V1 HTTP API](https://specs.ipfs.tech/routing/http-routing-v1/)
8685

8786
## Implementations
8887

0 commit comments

Comments
 (0)