Distibuted social media

by rullzer on Nov.10, 2010, under Annoying things, Daily news, Linux

I think the diaspora project is a fail, and judging from the messages posted around the web I am not the only one thinking this. However the idea of distributed social media is still very appealing to me. So here are just some things I am thinking about and who know maybe I (or somebody else) will eventually do something with it ;) .

Public & Private streams

Most people using social media do not mind sharing certain information. Take for example sharing of news items, most people probably wouldn’t mind if others could “follow” them and also get the news. Or you could be a private person and only want to share data with your friends, or you could be a journalist wanting to share everything you post.

In my view these are two distinct things and should be treated as such. Private streams allow for pushing content, or some sort of publish-subscribe mechanism. While public streams are more suited to be served on a location and then pulled by anyone who wants it. One could even consider sharing a public stream as a static file (in for example json format) and just updating this as one posts something to the stream. Etag checking would then avoid unnecessary transfer and otherwise the webserver is just serving a static file which is cheap.

Private streams on the other hand would benefit from a publish-subscribe approach since that would require minimal data transfer and people would get the data as soon as it is available. However a side effect of the publish-subscribe mechanism is that the publishing peer has to keep track of send data (and is that really what you want?). However this could be simply solved by each peer keeping a list of last update (unix timestamp anyone) of all his peers and then do some communication once a peer comes online or when an update is posted and decide what to communicate.

Specify the communication not the implementation

Keeping the open spirit the communication should be specified and not the implementation. Many people do not want to (or can’t) run RoR however anything that can be implemented in RoR can also be implemented in an other language. When specifying the communication anyone can implement it, be it in RoR, php, C, asembly whatever…

Encryption

The whole idea of distributed social media is that you are in control of your data. So you probably do not want to send your (private) stuff in plain text over the internet. So it makes sense to use some sort of encryption to transfer the data. However that does not quaranty privacy. A lot of people do not have their own server running, and probably a lot of peers will be hosted on the same server. Now would you want the hosting company to be able to read all your private data? Of course not!

So the data should also be encrypted on your peer. GPG encryption could do this. That only on a host where you have your private key that you can decrypt the messages. Now I do understand that this brings certain complications. Then I would only be able to read messages on my laptop, in order to read (or send) messages on my phone I would need to copy my private key to my phone, which might not be what you want.

Another down side of this approach is that you can’t view or send messages when you are at someone else’s computer…
You could of course store your private key on the machine that hosts your peer instance but then anyone that could read your key (sysadmin or even more people due to a potential security bug) could get their hands on your private key, which is certainly not what you want.

Anyone else any idea’s on distributed social media?

:, ,

1 Comment for this entry

  • Ben Werdmuller

    Diaspora isn’t the only game in town, by any means – and they also weren’t the first.

    Check out Evan Promodou’s StatusNet, for one thing, and the accompanying OStatus protocol, which a bunch of people are picking up on. StatusNet’s been out in the wild for quite some time, and OStatus is definitely separable from its underlying software platform. It’s pretty great, and worth checking out if you haven’t already.

    Others, for example OneSocialWeb, are using XMPP under the hood (although, more and more, they’re using OStatus and formats like ActivityStreams within that context).

    Meanwhile, I tend to agree with some of what you said above, and I’m working on a decentralized blogging system called idno – at its simplest, think “decentralized Tumblr with access controls”. It will use existing formats and protocols, will allow requests to all pages – including feeds, but also any external page – to be signed with an identity key in the headers. See my how social networks can replace email series of posts for more on this approach.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!