The need for a DHT
Posted: Sun Dec 08, 2013 9:21 pm
As some of you know, I've been working on a pure client-side/in-browser Javascript resolver for Namecoin which avoids all of the legal problems inherent with proxies and mirrors. So far, I've been planning on using various sources for routing information, such as Github, Facebook, etc. This is primarily to enable websites to provide custom entry points for users: you can't censor an IP/URL if you don't know about it! It also has a promotional side-effect of sharing/liking a page on a social-networking site which provides DNS routing information (yes, it's secure and it will work).
However, in order for .bit to be suitable for every-day use, it's abundantly clear that we need a decentralized mechanism which vanilla browsers can use to get the DNS information in a way that doesn't require any user interaction. We need a DHT which can return DNS records.
I'm a web-hacker/usability/psych person (my client-side router is stretching my programing abilities as is) so I'm not entirely sure of the best way to go about all of this and it would certainly require a lot of hard work for the core developers. I would not bring this up for debate if I didn't think it was critical to .bit's future: we have to break the chicken-egg problem of adoption before we can get the DNS players to think about accepting .bit as a legitimate root authority.
A browser/web accessible interface would eventually allow us to route around application-level IP and URL blacklists entirely: there are already multiple browser-based/WebRTC P2P CDNs (peercdn.com, peerjs.com). With a DHT a client which could see any visitor of a given website would be able to load that website regardless of whether the URL and IP's are blocked in the client's home country. Yes, there are security and about 100 other issues to be worked out, but all the parts have already been implemented in one form or another (crypto.stanford.edu/flashproxy/ <-pure JS) and it can be done securely.
I would think that it would probably be easiest to start with just adding DHT capabilities to namecoind and/or some popular mining client. Miners are ideal bootstrapping nodes as they are non-transient participants which join the network in a decentralized manner and are not under the control of any one person.
I think I've said enough and I hope I don't come across as too ambitious.
However, in order for .bit to be suitable for every-day use, it's abundantly clear that we need a decentralized mechanism which vanilla browsers can use to get the DNS information in a way that doesn't require any user interaction. We need a DHT which can return DNS records.
I'm a web-hacker/usability/psych person (my client-side router is stretching my programing abilities as is) so I'm not entirely sure of the best way to go about all of this and it would certainly require a lot of hard work for the core developers. I would not bring this up for debate if I didn't think it was critical to .bit's future: we have to break the chicken-egg problem of adoption before we can get the DNS players to think about accepting .bit as a legitimate root authority.
A browser/web accessible interface would eventually allow us to route around application-level IP and URL blacklists entirely: there are already multiple browser-based/WebRTC P2P CDNs (peercdn.com, peerjs.com). With a DHT a client which could see any visitor of a given website would be able to load that website regardless of whether the URL and IP's are blocked in the client's home country. Yes, there are security and about 100 other issues to be worked out, but all the parts have already been implemented in one form or another (crypto.stanford.edu/flashproxy/ <-pure JS) and it can be done securely.
I would think that it would probably be easiest to start with just adding DHT capabilities to namecoind and/or some popular mining client. Miners are ideal bootstrapping nodes as they are non-transient participants which join the network in a decentralized manner and are not under the control of any one person.
I think I've said enough and I hope I don't come across as too ambitious.