We could use URI: [ipfs
+ CID w/identity "url"]
or Data URL: [ipfs
+ CID w/JSON "{mime, data}"]
but I think itβs better to have these protoCodes
at top-level so the use-case is clear. For example, a future contenthash could potentially be a reverse-proxy, but that is also an url
.
Nick suggested above that these should be separate codecs:
I do like the various dag concepts (esp. merkle dag using transaction hashes) for describing some kind of indirect linked directory or file but I think that should be another top level protoCode
.
I interpret the ENSIP-7 definition <protoCode uvarint><value []byte>
such that value
could be anything as long as we reserve protoCode
as a valid multicodec. And the use-case of protoCode
is that it describes how value
is interpreted to satisfy the requirement of a contenthash, which is either displaying a website (the content) or describing what it will display (the hash in human-readable form: a URL).
I want this ENSIP to proceed as the Data URL contenthash seems especially useful for offchain and EVM gateway-based applications. Single-file inline content is still limiting (1 file, gas cost, β¦) but useful.
A 3rd dag-like option for directories would be awesome, but requires a lot of infrastructure and apps to manage that content, whereas URI and Data URL are dead simple and can be used by anyone.
Lastly, I still like the 4th option thatβs equivalent to βuse my text("url")
β (eg. just <protoCode>
and nothing else) but maybe this could be a fallback instead?