Hacker News new | ask | show | jobs
by nkoren 4820 days ago
Very interesting! I've long dreamed of an architecture which does exactly this, and is geared towards implementing fully distributed social networks. P2P and social networking were made for each other -- it should be a lot more efficient to peer with your actual social circle rather than a group of strangers, since the data you're most interested in is more likely to already exist somewhere within your own social circle.

Imagine a simple Twitter-like system built on top of this, for example. Each web client would function as a store-and-forward. Every time you connect with a friend, both parties would reconcile the latest posts from all friends that they share in common. In this way, information on social networks could be disseminated rapidly and efficiently with no centralisation whatsoever.

Seems to me like just two other bits of technology would be needed for this: ubiquitous dual-key authentication, and a good UID system. I don't think either of those would be a problem, and I really hope somebody does this, since centralised social networks bother me more than a little bit.

3 comments

I've built something along this line, which I'm hoping to launch in the next few weeks.

It's not done yet, but what ever is? ;)

It works by building a system of distributed identity and messages around GPG signed JSON, and can be distributed over any medium. Right now, It's web-based and HTTPS calls, but I'm actively looking for a good webrtc solution I can use without leaking users IPs and other data.

There's some information about it at Tavern.com

If anyone's interested, I'd love to work with you to figure out how to make it better ;)

What you're describing is similar to a darknet like WASTE or Freenet; they connect to friends and store-and-forward the content as requested.

As for UID, if you just want some kind of unique identifier, you can just use a public RSA key. If you want an unique but readable name (like a nickname), you need something more sofisticated. A possible approach is Namecoin's, which tries to guarantee unique but decentralized domains.

I've been working on-and-off on such a thing, and was hoping this would provide a useful bit of technology. Sadly, when I scrolled to the bottom it seems like they haven't got the WebRTC part working, which has always been the hardest part - it's not easy to run something like a web server in the browser.
Author here, that's correct, we haven't implemented the WebRTC binding yet. The way grim's communication works, we put REST semantics and protocol over messaging transports. We've already done it over Web Workers' postMessage API, and don't expect any trouble doing the same over WebRTC's DataChannels. In fact, the blog post's content is served by a Worker server which proxies out to a markdown file on the remote host, converts to HTML using https://github.com/chjj/marked, and responds.