I've felt for a while that a standard, widely-implemented, distributed content-addressable store is one of the biggest missing pieces of the modern internet. Glad to see any steps in that direction.
I'll know real progress has been made when my browser can resolve something like:
Completely agree! Another comment has mentioned beakerbrowser.com, and at IPFS we're about to get js-ipfs in the browser to interoperate with go-ipfs. The goal with js-ipfs and the firefox addon is (1) seamless support for fs:/ipfs/somehash URIs, and (2) to offer the ipfs APIs to webpages.
Seems like a good place to ask, is there a guide for IPFS implementers? I know there is a bunch of specs, but it's a bit hard to understand the complexity of the thing and where to look in case I was looking to implement it, instead of say bittorrent-based content delivery.
We want to make it easier though, and haven't really got there yet. But if you have questions, #ipfs on freenode is a good place where core devs and the community hang around usually.
Acknowledged -- the documentation around IPFS and libp2p is not exactly delighful yet :) A new community member as written up their notes on diving into the IPFS ecosystem here: https://github.com/ipfs/specs/issues/145
Bittorrent's DHT is used that way now, it's probably the biggest public DHT deployment in existence, all a magnet link is at it's core is magnet:?xt=urn:btih:<infohash>, so just having an infohash of a torrent is enough for you to get its content.
Of course, there's also IPFS, Zeronet and Freenet which all address this exact issue in slightly different ways, all more web-targetted.
I believe it's an entirely separate network, not DHT based like IPFS though, but they've done a lot of cool work on the client side of things to allow user accounts and stuff.
HTTP is centered around hosts being the authority over what content a certain URL maps to, while IPFS and other content-addressed systems don't have a notion of server/client, or central authority. The content itself is the authority, as its name is derived from the content itself.
I'll know real progress has been made when my browser can resolve something like:
cas://sha256/2d66257e9d2cda5c08e850a947caacbc0177411f379f986dd9a8abc653ce5a8e