Based on my conversation with Boris Mann about Fission, and visiting a Decentralised Web Meetup in Amsterdam because his Fission co-founder Brooklyn Zelenka, I started exploring the technology they work with and are building. First step was getting access to and understanding the ideas behind IPFS.

What makes IPFS interesting

The IPFS about file (if you click that link, you’re visiting a file on IPFS from your browser) says a variety of things, but a few elements are key imo.

First, it is a peer to peer system, much like we’ve seen many before. When you download a file to your system it will come in bits and pieces from multiple other computers, somewhere in the network, who have that file available. Whatever is the easiest way to get that file to you, is the way followed.

Second there is a key difference in how file addresses work in IPFS, compared to the web or on your local drive. We are used to files having names, and addresses being a representation of the location of that file. The URL for this blog points to a specific server, where in a specific folder, a specific filename resides. That file returns the content. Similarly the address for a file on my drive is based on the folder structure and the name of the file. IPFS addresses files based on their content, and does so with a hash (a cryptographic representation of the content of a file).
Naming things based on a hash of its contents means that if the content of a file changes, the name will change too. For every file the content will match what it says on the tin, and versioning is built in.

Combine that with a peer to peer system, and you have a way of addressing things globally without being tied to location. You also have a way to ensure that whatever you find in a given file is exactly what was originally in the file. https://mydomain.com/catpicture.html may have had a cat picture at the start that later got replaced by malware, but you wouldn’t know. With earlier p2p systems to exchange files like Napster of Bittorrent you always had to be careful about what it was you actually downloaded. Because the content might be very different from what the name suggested. With IPFS those issues are done away with.

Currently (location based) addressing on the web is centralised (through domain registration and DNS), and decoupling addresses from locations like IPFS does allows decentralisation. This decentralisation is important to me, as it helps build agency and make that agency resilient, as decentralisation is much closer to local first principles.

Getting IPFS set-up on my laptop

Boris was helpful in pointing the way for me how to set-up IPFS (and Fission). There is a IPFS desk top client, which makes it very easy to do. I installed that and then you have a basic browser that shows you which of your own files you are sharing, and which ones you are re-sharing. It also when you are looking at a file shows where it comes from.

I uploaded a PDF as a hello world message. In the screenshot above the Qm…… series of characters you see underneath the local file name helloworld.pdf is the hash that is used to identify the file across the IPFS network. If you ‘pin’ a file (or folder), you prevent it from being deleted from your cache, and it stays available to the wider network with that Qm…. string as address. Which also means a drawback of hashed-content addressing is non-human readable addresses, but they’re usually intended for machines anyway (and otherwise, there’s a use case for QR codes here maybe)

With IPFS set-up, I started playing with Fission. Fission builds on IPFS, to allow you to deploy apps or websites directly from your laptop. (“build and go live while on a plane without wifi”). It’s meant as tooling for developers, in other words not me, but I was curious to better understand what it does. More in a next post.

Some links I thought worth reading the past few days

During BarCamp Amsterdam last Friday I prepared a few sheets that in the end I didn’t use. As everybody was busy coding or already in a presentation, and by the end of the afternoon everybody was starting to concentrate on the beer in the fridge more, I didn’t see a useful window of opportunity to get a group together for what is basically a conversation around a question I have. It concerns peer to peer social networking, and at this point is much more about concepts than tools I think. So Roland, sorry I didn’t grab a room and presented this, but let’s see if this conversation can get off the ground here as well.
 
My starting point is the notion that Information Overload doesn’t exist. The perceived stress is the symptom of failing information strategies that work fine in an environment where info is scarce but do not scale to the information abundance the internet offers us.
 
social network as info filter
 
A good way to build strategies that do work in information abundance, is taking the social context of information into account.
pattern search key
 
Doing that you then look for patterns without paying much attention to individual information items (the outside-in approach), or focus and those singular items that relate to a specific list of topics that concerns your current goals and actions (inside-out approach). Also, as you look at information within its social context (that basically taking its human source into account)  you try to move up information paths and networks of your contacts that are the source of that information.
 
Moving up those paths, and having a clear notion of the social context of an information item, requires some social networking tools if done on-line. The first generation yasns (linked-in, openbc, tribe, orkut etc) don’t cut it for me. Firstly because they have my data somewhere else, in the clubhouse so to speak, and if I am to do anything with it I have to do it in that clubhouse. As if my whole life takes places there, and I am not meeting people in the on-line equivalents of my home, my friends houses, my fav pubs, and public squares etc. Also relations require substance, an object to revolve around. Networking for the sake of networking such as most yasns seem to only offer is useless. Flickr and Plazes on the other hand readily provide object to form and have relations around.
 
 
What I really want from social networking tools is:
a) to have my data at home, or at least in one, not service specific, location where I can control it.
b) to finely nuance the levels of trust around information items I share (so that e.g. friends see more in my blog than the general public.But being able to specify that seamlessly per item per context, not as general settings only or merely on/off)
c) to be in the center of my own network, be able to visualize that, spider it, and do that in real time and over time. (Like Anjo Anjewierden in the picture above, or Valdis Krebs does)
 
 
How to do that? I don’t know.
I would like to have a true peer to peer social networking platform. Also I’d like to have my own spiders and agents.
FOAF isn’t ready for this kind of thing I think, but we might look to an existing p2p infrastructure like Skype to be a carrier. Boris Mann pretty much repeatedly said Jabber can do anything during BarCamp, and seemed to be only half joking.
 
What do you think?