Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: upgrade 1. (ref slack thread) #88

Merged
merged 5 commits into from
May 21, 2020
Merged

docs: upgrade 1. (ref slack thread) #88

merged 5 commits into from
May 21, 2020

Conversation

daviddias
Copy link
Contributor

No description provided.

2. IPNS is very modular. You have a record that is signed and points to an immutable record. You can use IPNS over DHT, or pubsub, as discussed, but there are also other implementations (see Namecoin, or ETH.link).
**Q: The IPNS links are not decentralised and are easy to censor - are you working on a solution?**

A: IPNS is a modular name system. In its pure form, it is a record that is signed and that has an immutable pointer (CID). You can use IPNS over DHT, or pubsub, as discussed, but there are also other implementations (see Namecoin, or ETH.link).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Namecoin and ETH.Link don't use IPNS do they? I haven't interacted with them but I thought they were DNS implementations that DNSLink can use.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIU, you can use /ipns/<namecoin||eth.link> and get stuff resolved, correct?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, but I think that's just because for historical reasons DNSLink uses /ipns/ipfs.io instead of something like /dnslink/ipfs.io. I think namecoin and ENS both just use DNS resolvers

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aschmahmann AFAIU, IPNS was supposed to be a multi-namesystem. If that is not the case, we can always say that rather than using IPNS, IPFS implementations can also use other resolvers, although not part of the protocol.

Copy link
Contributor

@aschmahmann aschmahmann May 20, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IPFS implementations can also use other resolvers, although not part of the protocol.

Sure we can say that as an overarching statement since IPFS and IPNS are not the same thing. However, "IPFS implementations" is an under-defined concept. For example, must every IPFS implementation include any of a DHT, Bitswap, UnixFS-support, libp2p peerIDs, or an IPNS resolver?

Regard IPNS the TLDR is that IPNS documentation is bizarre since we both define what an IPNS record is and IPNS propagation systems (DHT + PubSub) as well as use /ipns/dns-address.com for things like DNSLink. This feels similar to how we used to use /ipfs/QmXyz for peerIDs for historical reasons, but since it makes no sense we now use /p2p/QmXyz.

@daviddias I have not seen any documentation on what IPNS is that explains what all the different resolvers are and how they interoperate. My understanding is:

IPNS: It has a record type and a spec
DNSLink: It has a spec
Proquints: They have a spec (I've never seen anyone examples on our docs site for this nor any links on our docs site to tools for generating proquints, but it's supported in the code)
Namesys (or the only seen in code "MPNS"): It is an interface that (recursively) resolves one path into another using a set of registered resolvers (e.g. /ipns/ipfs.io -> /ipns/bafyabc -> /ipns/bikad-fokor-zihoj-bajir -> /ipns/myexample.com -> /ipfs/bafyxyz)

It's quite confusing that go-ipfs Namesys, as far as I know, insists that all resolvers have the /ipns prefix and that we implicitly figure out which resolver to use (e.g. do you look like a public key use IPNS, do you look like a domain use DNSLink, do you look like a proquint use proquint). However, my understanding was that the plan was to modify this so that new resolvers would be valid (e.g. /foo/qazwsx -> /ipns/bafyabc -> /bar/123 -> /ipfs/bafyxyz).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@daviddias If you're interested in this I'd look at ipfs/specs#198 (comment), or that whole thread generally, but that's not a prerequisite for the answer here at all as much as a reminder that we need to make some terminology/docs decisions as well as some related technical decisions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the purposes of this Q&A, I think the current answer is fine, just removing the reference to Namecoin and ETH.link and mentioning "other resolvers, external to the protocol" is going to be enough. Even if we had the technical issues resolved, we would not be able to provide all the detail in this Q&A.

content/posts/202005-resnetlab-ndn/index.md Outdated Show resolved Hide resolved
content/posts/202005-resnetlab-ndn/index.md Outdated Show resolved Hide resolved
@daviddias daviddias requested a review from momack2 May 19, 2020 19:41
@daviddias daviddias marked this pull request as draft May 19, 2020 19:41
@momack2 momack2 marked this pull request as ready for review May 21, 2020 00:24
@momack2 momack2 requested a review from aschmahmann May 21, 2020 00:25
Copy link
Contributor

@aschmahmann aschmahmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

@jpeg07 jpeg07 merged commit 20390b3 into master May 21, 2020
@jpeg07 jpeg07 deleted the daviddias-patch-1 branch May 21, 2020 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants