-
Notifications
You must be signed in to change notification settings - Fork 237
Description
Context
As noted in the IPNS spec there are currently two components of IPNS:
- The IPNS record spec (related to the similarly proposed IPRS spec)
- The IPNS protocol
The spec currently does not specify the routing system by which a user that wishes to publish or resolve an IPNS record may do so, instead it says:
a peer can use whatever routing system it supports to make the record accessible to the remaining peers of the network
However, in actual IPNS implementations (e.g. in go-ipfs and js-ipfs) there is an implicit assumption that addresses such as /ipns/$key
or dweb:/ipns/$key
will resolve in some standardized way. There's a dive into the world of dweb addressing by @lgierth and @lidel here.
Thus far we've run into minimal problems here despite having both DHT and PubSub based resolution systems. This is because the PubSub system relies on the DHT for initial content resolution (i.e. only using PubSub for publishing/retrieving updates that occur while the daemon is running) and we always publish updates to both the DHT and PubSub. This effectively makes the DHT the authoritative store of IPNS information, with PubSub just being used for faster propagation.
Upcoming Issues
Some of the current endeavors to increase IPNS performance will involve creating record delivery mechanisms that are not reliant on using the DHT to propagate the IPNS records (e.g. a persistent PubSub channel, or IPNS over DNS). As a result, it's time for us to put together a proposal that adds some clarity to issues including:
- What is the protocol used when users lookup
/ipns/$key
? - If that routing mechanism isn't going to be declared in the spec will we have a specified way to declare which routing mechanism we're using? (e.g.
/ipns/pubsub-backed-by-dht/$key
or/ipns/$key-with-routing-info
) - If not should we explicitly call out that
/ipns
like/ipld
refers to content and pathing, but not to record retrieval or propagation?
Many of these issues were surfaced in a meeting on ongoing IPNS endeavors with notes at: ipfs/team-mgmt#948.
Thanks for your help and looking forward to hearing your thoughts: @Stebalien @pgte @satazor @vasco-santos @hugomrdias @jimpick @lidel @momack2