Differences between bootstraps, delegates and preload nodes?

This is a great question and a common source of confusion.

The first thing to note is that you can use a single Kubo node with a TLS certificate for Bootstrap, Delegates, and preload.

So here’s what they are for:

  • Bootstrap is list is a list of peers with which the IPFS daemon learns about other peers on the network. IPFS comes with a default list of trusted peers, but you are free to modify the list.
  • Delegates are nodes that expose the /api/v0/dht/* endpoints of the Kubo RPC API for delegated routing. Because js-ipfs nodes don’t have the DHT enabled by default (and wouldn’t make good DHT servers in browsers anyways), they need the help of delegates nodes to resolve DHT queries. [^1]
  • Preload are nodes that expose the /api/v0/refs endpoint which can be called so that the remote node will fetch CIDs (but not pin). This is necessary to ensure that blocks that are added in the browser are preloaded onto a long-running IPFS node so that it’s made available to the rest of the network. Important to note that preload nodes will garbage collect those blocks after a period.

And is it possible to have ‘root’ nodes used as bootstraps, delegates and preload simultaneously?

Yes – a single Kubo node can serve all three purposes.

[^1] As far as I understand, in the long run, the idea is to replace this part of the API with Reframe.

2 Likes