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.