-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
pluggable ipns resolvers #3942
Comments
I applaud the general push for pluggability 💯 I think a separate namespace a la I'm not sure it's gonna do us good adding more (and user-defined!) semantics to the |
Sounds good @whyrusleeping! Making it pluggable makes it possible to have just a number of nodes to run some specific resolver. Implementing all "distributed DNS's" in the core code (as in the proof of concept you refer to), requires local access to a node of that specific “DNS-blockchain”, which is of course not feasible. Since the IPNS system is implemented on top of the DHT, a couple of stable IPFS nodes with such a plugin could make sure that all nodes can resolve regardless of having the plugin. Security can be solved like this I think: Creating a record:
Requesting a lookup:
I'm not a security expert, but I think this could work. |
I was about to make a feature request related to this, but instead I'll just revive this issue, and give my input. I'm thinking that this sort of feature could be added as a Plugin type. A "Resolver" type that takes a path/protocol, and returns a link to be resolved to the content. This could be handled in the way libp2p likes to handle protocols, and forward paths of the format This can also handle something like |
Could this be governed by multiformats? So that |
I've been thinking about how to make it easy to add in new ipns resolvers to ipfs.
@llopv implemented a namecoin resolver here: ipfs/notes#41 (comment) and i'm thinking we can make it easier than hacking the namesys code.
My proposal is to have a config section for the resolver that could look something like:
This would register a new ipns resolve called 'namecoin', and upon trying to resolve a name that matches the regex in 'match', would look for a binary at
$IPFS_PATH/resolvers/ipns-namecoin
and execute it with the argument of the name being resolved. The binary could return either just the resolved value, or maybe the value along with some extra information like a ttlThis way, users could write a (for example) namecoin resolver as a simple binary, and ipfs would require no modifications to be able to use it.
A lot of things for this need to be thought through, primarily security, and the implications of having different resolvers all over, people might end up passing ipns paths that others cant actually resolve.
The text was updated successfully, but these errors were encountered: