-
Notifications
You must be signed in to change notification settings - Fork 86
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
EIP1577 - Multiaddr support for ENS #79
Comments
Was reviewing EIP-1577. My comments:
I am assuming they refer to the
During my research process I noticed our prose concerning the interrelationship of multicodec, multiaddr and multihash could be a bit off. Or at least it feels imprecise (to this reader). For example, the multicodec README says:
Then, in the multihash README, the values are described as:
However, based on my understanding:
If my interpretation is correct, wouldn't it be more precise to state that multiaddr and multihash embed multicodec codepoints? The term "prefix" is misleading. |
I believe the confusion stems from the fact that multiaddrs are paths and /ipfs/Qm..., /ipns/Qm... are paths (/ipfs/Qm... is even a valid multiaddr). Worse, multiaddr has the word "address" in it but we don't use them to address content.
I'm not sure I follow. We say "prefix" because a mulithash is Note: this also came up here: #73 |
@Stebalien I'm reading the README as a spec -- maybe I shouldn't. But with those lenses, if multihash is defined In the case of multiaddr, given that the |
Ah, I see. You're right, we don't prefix the multihash, we prefix the length-delimited hash digest.
So... this is one of the issues with multiaddrs. Without understanding the what each protocol code means, I can't break a multiaddr into a sequence of
Really, this also applies to strings as a single multiaddr "component" could either be:
|
@Stebalien have we considered introducing boundary markers for values? This has the ability to solve the nesting and the value identification problem at once. Using square brackets as the textual representation:
|
We've discussed it for embedding path values ( The real issue with brackets is that they kind of break the path abstraction (coming from the plan9 "everything lives in the filesystem namespace" camp). If you're interested in some ramblings on this subject... https://gist.github.com/4764975c3b5ea33202324d8e9ec0985d (not posting a PR/issue as I don't want to add too much confusion to the discussion unless we decide to go with it). (note: defining these recursively is really just my opinion; by spec, multiaddrs are still defined as a list). |
They're just linking IPFS content in EIP-1577, and the same earlier in EIP-1062. So the answer is easy, they should either:
They're doing basically the ENS version of dnslink. Both of EIP-1577 and EIP-1062 have been merged as a draft on the standards track, so I'm not sure whether they can be corrected or whether there needs to be a new EIP draft. @raulk you spent a ton of time in Ethereum, what do you think? As for multiaddr, there's nothing to do about these EIPs. I'll pull your thoughts above into a new design discussion. |
We've gone with a multicodec. That is, we've defined |
@Stebalien was that in an EIP too? |
Ooh - I see. EIP-1577 defined the multicodec usage, and the *-ns codecs are in multiformats/multicodec. I suppose byte length matters regarding gas cost. |
It's still unfortunate that EIP-1577 has multiaddr in its title... |
Nevermind - I was reading the first version of the draft only. The current version at https://eips.ethereum.org/EIPS/eip-1577 doesn't mention multiaddr at all. All good! |
For everyone wanting to use EIP1577 there is now a js implementation here : content-hash |
Conversation happening at https://ethereum-magicians.org/t/eip1577-multiaddr-support-for-ens/1969
The text was updated successfully, but these errors were encountered: