Amy Guy

Raw Blog

Monday, February 04, 2013

Gibbering about decentralised networks

Recently I read and brainstormed some things about interesting ways of creating a decentralised network (social or otherwise).

Tent.io is still coming out on top as having the most potential for something I could actually implement and build upon.  Tent server is originally Ruby, but there are already Python and PHP implementations.  PHP might be the most useful as the mostly widely supported by cheap shared hosting providers, reducing the barrier for people wanting to run their own Tent server.  Depot in particular has the goal of targeting the technical lowest common denominator, and making installation and maintenance as easy as possible for a non-expert.

Problems with having nodes of a network, whereby people who don't want to set up their own node can sign up to someone else's node, include ensuring consistent URIs for things.  If someone wants to up and move to another node, what are the best ways of maintaining connections?  Obviously anyone who buys their own domain name and hooks it up won't have a problem, but not everyone can or will.  A centralised permanent URI service like PURL (or just use PURL..)?

Unhosted and their remoteStorage protocol are interesting.  The idea is that a user registers with a remoteStorage provider, then signs into Unhosted apps with that identity.  Unhosted apps are all frontend JavaScript, and no data is sent to a server.  Anything that needs to be stored - content you creating whilst using the app - is sent to your personal remoteStorage account.  There are only two remoteStorage providers listed though, and one of those is a test one that could get wiped at any time.  The other, 5apps.com, doesn't appear to provide an interface for browsing and exporting what you have stored with them.  Obviously this is an early project, and since anyone with a webserver can theoretically set up a remoteStorage service, has lots of potential.  In the short time I spent investigating, I couldn't work out possibilities for sharing data in your remoteStorage, so Unhosted apps might just be useful for personal, non-collaborative activities.  Some examples they have are a simple text/code editor, a really pretty simple writing interface, to-do lists, time management, favourite drinks list.  Oh wait, friendsunhosted.com is like a twitter service.  Because I don't know anyone else using friendsUnhosted, I haven't tested it properly, but it appears to offer a stream of peoples' statuses, which are presumably stored in their personal remoteStorage.  I'll investigate better.  The mailing list is active and the main developer seems to be on top of things, so this is something to keep a close eye on.

Idea: Possible to set up 'remoteStorage' on peoples' own Google Drive accounts, via that API?

I don't know anything technically about peer-to-peer, but it seemed like a good avenue to pursue with regards to very established, very decentralised networks of people and files.

At an extreme end of 'owning one's own data', I'm curious about storing all your files (eg. linked data graphs) locally and sharing them / accessing other peoples' only through a browser interface.  Drawbacks obviously include your files only being available when you're online.

I read a handful of good things about the G3 protocol and API used in FilesWire, by Dreamsoft Technologies.  I got really excited for a little while, before reluctantly giving up because the whole project seems to be old and very dead.  I did track down the developer on LinkedIn and facebook, but I haven't decided yet if it's worth pursuing at all.

I investigated Freenet, and their freesites.  The Freenet network is all about anonymity; any data you upload is broken up and stored on many nodes in the network.  You can't identify where it originally came from, or where you're pulling something from when you retrieve it.  There were some messages from 2000/2001 on a mailing list about RDF on Freenet, but nothing seems to have come of that.  Requires a software download of course.  Again, I don't know enough about the technicalities yet to judge if something like this would be a viable approach for a decentralised linked data sharing network.

I also came across (the now deceased) Opera Unite, which is a webserver running inside Opera that lets people share files and serve webpages without the hassle of paying for or setting up their own server.