Back

Blog details

Delegated Routing: How Light Clients Skip Running a DHT

AIOZ Network
5 min readSeptember 15, 2026
aioz-pin

IPFS delegated routing exists because this series' own DHT coverage has an unstated assumption baked into it: running a full DHT client, dialing peers, walking the address space, maintaining routing tables, is real, ongoing work, and a browser tab or a resource-constrained device can't reasonably do it. Delegated routing is how a light client gets the same answers, who has this CID, where is this peer, what does this IPNS name resolve to, without becoming a DHT participant itself.

TL;DR:

  • The Delegated Routing V1 HTTP API defines plain HTTP endpoints for the same questions a DHT lookup answers: GET /routing/v1/providers/{cid}, /peers/{peer-id}, and /ipns/{name}, so a client gets JSON back instead of running its own peer-to-peer lookup
  • someguy is the reference delegated routing server; it proxies incoming requests to the Amino DHT and to a separate system, the Network Indexer, rather than running a routing system of its own
  • The Network Indexer (also called IPNI, reachable publicly at cid.contact) is architecturally different from the DHT: providers push advertisements to it directly instead of peers discovering records through Kademlia-style distributed lookups
  • A real, measured 2025 update to someguy added address caching that eliminated about 83% of additional peer-lookup requests and cut P95 latency from 1.91s to 1.35s, a concrete case of what delegated routing infrastructure improvements actually buy
  • This is exactly the mechanism a browser-based Helia node relies on for practical routing, and it's a different, earlier-stage shortcut than AIOZ Pin's gateways, which skip routing and discovery entirely rather than delegating it to a faster HTTP call

Why a Light Client Can't Just Run the DHT

This series' DHT article describes a real, ongoing job: maintaining connections to enough peers, running Kademlia lookups, keeping a routing table current. That's reasonable for a server-class node that stays online continuously. It's a poor fit for a browser tab that exists for one page load, or a mobile app that can't keep dozens of persistent peer connections open in the background. Delegated routing exists specifically to give that kind of light client the DHT's answers without the DHT's ongoing cost.

The V1 HTTP API: The Same Questions, Over Plain HTTP

The Delegated Routing V1 API defines a small set of endpoints answering exactly the questions this series' DHT and IPNS articles already cover. GET /routing/v1/providers/{cid} returns peer records for whoever's advertising a given CID, the HTTP equivalent of a DHT provider lookup. GET /routing/v1/peers/{peer-id} resolves a peer's known addresses. GET /routing/v1/ipns/{name} resolves an IPNS name to its current record, with a corresponding PUT for publishing updates. Requests and responses are ordinary JSON, multibase-encoded CIDs, string-encoded multiaddrs, with standard HTTP caching headers and support for streaming large result sets. A client calling these endpoints never opens a libp2p connection or runs a Kademlia walk itself; it just makes an HTTP request and gets an answer back.

someguy: The Reference Server Behind the API

someguy is the reference implementation of a delegated routing server, and its own job is instructive: it doesn't run a routing system of its own so much as proxy incoming requests to two separate backends, the Amino DHT (the same DHT this series already covers) and a second, architecturally distinct system called the Network Indexer. The IPFS Foundation runs a public instance at delegated-ipfs.dev/routing/v1, which is what a Helia node or any other delegated-routing-aware client typically points at by default.

The Network Indexer: A Different Shape of Routing

The Network Indexer, also called IPNI and reachable publicly at cid.contact, solves the same underlying problem, mapping content to providers, through a structurally different mechanism than the DHT. Rather than peers discovering each other's provider records through distributed Kademlia lookups, providers push signed advertisements directly to the indexer, chained together the way each advertisement links to the previous one, and the indexer ingests and stores the resulting CID-to-provider mappings directly. A lookup against the indexer is a direct query against that stored index, not a multi-hop peer-to-peer walk. This makes it a genuinely different routing backend, not just a cached mirror of the DHT, which is exactly why someguy queries both rather than treating either as sufficient on its own.

A Real, Measured Performance Improvement

It's worth grounding this in something more concrete than the general shape of the architecture. A 2025 update to someguy (v0.7.0) added an address cache, up to a million peer addresses held for 48 hours, along with background probing that periodically re-verifies which cached peers are actually still reachable. The measured result: for the roughly one-third of requests that needed address resolution at all, about 83% were served from cache instead of triggering a fresh lookup, and P95 latency for successful responses dropped from 1.91 seconds to 1.35 seconds, a 560-millisecond, 29% improvement. That's a genuine case of delegated-routing-side infrastructure work translating directly into faster answers for every light client relying on it, without any of those clients changing anything on their end.

Where This Fits an AIOZ Pin Workflow

Delegated routing is exactly the mechanism a browser-based Helia node, covered elsewhere in this series, relies on for practical content and peer discovery, since running a full DHT client in a browser tab isn't realistic. It's worth being precise about how this differs from AIOZ Pin's own gateway shortcut, covered throughout this series: delegated routing still answers the same discovery question the DHT would, just faster and over HTTP instead of peer-to-peer; a gateway request skips the discovery question entirely, since the gateway already is a known, reachable host. Both are ways of avoiding the cost of a full DHT lookup, they just remove different amounts of work.

Frequently Asked Questions

What is delegated routing in IPFS? A way for a light client to get DHT-equivalent answers, who has this CID, what does this IPNS name resolve to, over plain HTTP instead of running its own DHT lookups.

What is someguy? The reference delegated routing server. It proxies incoming HTTP requests to the Amino DHT and to the separate Network Indexer, rather than running its own routing system.

What is the Network Indexer? Also called IPNI, reachable at cid.contact: a routing backend where providers push signed advertisements directly rather than peers discovering records through DHT-style distributed lookups.

Why can't a browser just run a full DHT client? Maintaining DHT connections and routing tables is ongoing background work unsuited to a browser tab's lifecycle. Delegated routing gets the same answers without that ongoing cost.

Did a real update actually improve delegated routing performance? Yes. A 2025 caching update to someguy eliminated about 83% of additional peer-lookup requests and cut P95 latency from 1.91s to 1.35s, a measured, documented improvement.

Does AIOZ Pin's gateway use delegated routing? A gateway request skips content and peer discovery entirely, since the gateway already holds the content. Delegated routing is a different shortcut, still answering the discovery question, just faster than a full DHT lookup.

References

We only send updates when meaningful changes ship, and you can unsubscribe anytime

Related Content

blog thumbnail

IPFS Is Rate-Limiting Public Gateways: What Changes for You

Free public IPFS gateways are being rate-limited on purpose, not as a bug. Here is exactly what IPFS's own blog says is changing, and what to actually do.

4 min readOctober 05, 2026
blog thumbnail

Real-World IPFS Case Studies: Audius and LikeCoin

Two real, documented IPFS deployments, a media platform and a blockchain publisher, and the specific architectural problem each one solved with it.

4 min readOctober 02, 2026
blog thumbnail

How to Host a Static Website on IPFS (and Why Pin It)

Uploading a site to IPFS is the easy part. Here is the full picture: CID, gateway access, a real domain, and the pinning step most tutorials skip.

5 min readSeptember 30, 2026
blog thumbnail

What Happens to Your Files If You Stop Using AIOZ Pin

Cancelling a pinning service is not documented the way it should be, anywhere in the industry. Here is exactly what you can control before you stop paying.

4 min readSeptember 28, 2026
blog thumbnail

Types of IPFS Nodes: The Different Roles, Explained

IPFS node types aren't a full-vs-light weight class the way some blockchains work. They are specific jobs a node opts into. Here is what each one does.

5 min readSeptember 25, 2026
blog thumbnail

IPFS Immutability: Why You Can't Edit a File in Place

IPFS content is immutable by design: change one byte and the CID changes with it. Here is exactly what happens when you edit a file, and why IPNS fixes it.

4 min readSeptember 23, 2026