I think I have a vague idea of how the IPNS pubsub resolution works. It appears to create a room where the publisher sends updates to the IPNS record so that subscribers will get updates quickly. I’m assuming that the room name is somehow included in the IPNS record so someone knows where to listen for updates.
What I’m not sure about is how this gets started. Is the initial resolution standard IPNS? If so is it correct that the initial resolution may be slow and IPNS pubsub would only be fast for updates?
You may want to check out Understanding guarantees of the improved IPNS over pubsub and more precisely the IPNS over PubSub spec.
Quick overview is:
The pubsub topic is calculated from the IPNS name. I’d differentiate name from record, as the record contains the current thing the IPNS name is pointing to along with other information like the record number and signature.
This was true until go-ipfs v0.5.0. Since v0.5.0 the initial resolution is now fast since peers can directly query each other for these IPNS over PubSub records so you don’t have to wait on a republish to learn about the record (more details in the spec)
Thanks. That’s just what I was looking for and the links are a treasure trove of info. I’ll sit down with the specs when I get a chance but your feedback at least lets me keep thinking about the idea I’m working on.
I’ll have to start putting in some PR’s for doc updates.