Skip to content

Participants

Winterhuman edited this page Apr 14, 2022 · 7 revisions

This section defines every node and individual involved in the IPNS-Link network.

Origin

An Origin refers to a HTTP server that is being exposed by IPNS-Link, each Origin is given it's own Libp2p-keypair of which the hash of the public key is the IPNS address pointing to that Origin's Manifest, the IPNS address pointing to the Manifest may be referred to as the OriginID or OID.

Listener

The Listener is an IPFS node which listens in for incoming p2p-streams and forwards them to the relevant Origin, the Listener doesn't participate in the DHT and thus can only be connected to directly by it's multiaddresses, the Listener is always active, but, the lack of DHT means it incurs no background bandwidth usage.

Publisher

The Publisher is an IPFS node which periodically publishes Manifests for all Origins, the Publisher does participate in the DHT, but, it only does so while publishing and sleeps after the task is done, Manifests are inlined into an IPNS record and published with IPNS-PubSub under the Origin's keypair.

Exposer

The Exposer refers to any software which exposes some service (An Origin) using Listeners and Publishers, the tool named ipns-link is one such example of an Exposer, an explanation of how IPNS-Link works can be told through just the interactions between the Exposer and the Gateway.

Gateway (Proxy)

The Gateway is a HTTP proxy which can search for Origins by their OriginID, the Gateway will resolve the OriginID to find the Manifest and establish a connection with the relevant Listener node, it will then proxy this connection on behalf of the Listener to give the user of the Gateway access to the Origin. Gateways can be publicly, locally, or privately hosted depending on use-case. The Gateway also redirects any IPFS relative URLs given by the Origin to IPFS gateways.

Browser

The Browser refers to the user's browser, cURL, HTTPie, or any other software which forms the HTTP(S) connection with the Gateway.

Clone this wiki locally