Freenet and the theory thereof has been adequately described in previous writeups, so I'm not going to describe it again. Instead, I will describe the details of my short experiment with the service, and why I have decided it is not for me.
Freenet works by every computer that wants access to the system operating its own network node, as a repository for data and a router for requests. It is architecturally impossible to "leech" off the network. A computer just starting the service is "seeded" with a list of computers known to probably be in the network and usually active; these computers are generally extremely slow and bogged down, however, because almost every user on the service has a link to them. Whenever your system makes a request, it asks some of the computers it knows of if they have the file (identified only by a rather cryptic hash code); if they do not, those computers forward the request. After too many hops without finding the file, the network gives up.
As you use the system and for that matter just sit with it running in the background after at least one computer knows about you, your computer will start to discover other computers, and learn if they specialize in particular hash keys (a computer with a nearly full data store will begin to prefer to store files that have keys that begin with particular characters or character strings). With more places to directly route a request, you are more likely to find content quickly- or, for that matter, to find content at all. In the meantime, other computers are learning about you and asking you for information; this also forms connections.
Whenever data passes through your computer, there is a chance that your Freenet node might hold on to it in the encrypted data store. You cannot control what your computer is storing or proxying for; this is the entire point of the network. Access times are therefore extremely random, as a Freenet site (or Freesite) may have pieces of it close to you and other pieces extraordinarily far away, or even inaccessable. Pages that are less popular are discarded from data stores when those stores fill up and want to hold a new piece of information; this is the only way that data is ever removed from Freenet. Unpopular sites will therefore decay on their own, while popular files will find themselves mirrored in a large number of places and are very likely to be closeby. This is an efficient network design as long as you want to read what everybody else wants to read.
The first problem with Freenet is implicit to this design. It takes a very long time for average response times and hit rates to become acceptable. It was nearly unusable for the first three hours I had my node running, and finally puttered its way up to a speed that might be appropriate to a 14.4 Kbps modem. I live in a dorm that shares a T3 connection between around 40 residents, so this is somewhat slower than the speeds I am used to. According to the system, it should eventually speed up to something usable, but this process would probably take several weeks. There is therefore a strong "attention curve" to Freenet: to have the patience for it, you almost certainly must have a strong inclination to use it.
This leads directly to the second problem. Freenet has very little content that does not need to be on it: i. e., content that would be censored in the parent country of the poster. That's a very wide variety of fascinating political content if you can read German or Chinese, but it becomes stunningly offensive if you are an American of delicate sensibilities. This is applying a remarkably broad definition of "delicate"; the vast majority of Freenet content is likely to be offensive to those who are offended by extreme displays of racism, open flaunting of pornography, frequently illegal pornography involving minors, instructions on the writing of computer viruses, first-person accounts of commiting violent crime, and similar content. Freenet can therefore be extremely useful as a research tool, because it is indeed content that nobody in their right mind would post in an environment where they do not have the anonymity and uncensorability offered by the system. It is also, apparently, useful for warez and pirated music, according to the distributed forum engine.
Frost, the most popular distributed BBS engine on Freenet, is actually rather good. Because of its popularity, its messages propogate extremely quickly across the network. Its content can sometimes leave something to be desired, however; it suffers from a similar distribution of material as the rest of Freenet, with a disproportionate tilt to advocation of violence against "niggers", "sand niggers", and Jews. Many of the remaining posts are techincal discussion on Freenet itself, requests for pointers to where pornography can be found on the system (requests for child porn outnumbered other requests), and requests for pirated software or music.
Freenet's distributed data storage model leads to an unpleasant corrolary: your computer is very likely to be hosting content you personally find extremely offensive. This is explicitly noted in the FAQ about the project:
I don't want my node to be used to harbor child porn, offensive content or terrorism. What can I do?
The true test of someone who claims to believe in Freedom of Speech is whether they tolerate speech which they disagree with, or even find disgusting. If this is not acceptable to you, you should not run a Freenet node. There is another thing you can do. Since content in Freenet is available as long as its popular, you can help limit the popularity of whatever information you do not like. For example, if you do not want a file to spread you should not request it and tell everyone you know not to request that specific key. However, keep in mind that freenet is not designed so as to only allow communication between people if a sufficient number of people agree with the communication. Freenet is designed to make communication possible even if there's just one publisher and one reader, and this is already reasonably feasible on the current freenet.
This itself made me uncomfortable, but I convinced myself that I could accept it, because it would be- by the design of the network- out of my control. Still, hitting zero latency on a remarkably racist essay was a disillusioning
experience; the only way for the data to have returned so quickly was for it to be hosted on my computer. I disagree with the stated philosophy: my distaste for dedicating my computer to content I found extremely offensive is not the same as a distaste for freedom of speech
, as I accepted the author's right to say such things, and that some people wanted to read such; I was not, however, comfortable
with the concept of my computer holding and actively distributing such content, especially to people who do not want to read it, the entire idea upon which Freenet is based. Freenet does not care what you want to read; it will still pass through your computer and probably be stored on it. It is the difference between supporting drug legalization
and being required to house a robot
in peoples' pockets.
Freenet is a very interesting concept, However, it reveals things about human nature that many of us would not like to admit, and hosts almost exclusively content that many of us would not like to think about. Freedom of speech does mean accepting that people think and want to say such things and allowing them to do so, but it does not mean enjoying reading or storing it.
A fairly disturbing but unsurprising observation I made while using Freenet was that pages with primarily or entirely racist content (I did not seek out pornographic content) tended to load much more quickly than pages with primarily informational content or even technical information about Freenet itself. Latency is directly affected by how popular a file is. The corrolary here is unpleasant.
Freenet is a good system if you need to use it because you need to say things that are presently censored. It is a good system to be familiar with in case something you wish to say eventually becomes censored. It is not a comfortable place, however, and I suspect that many others would find it as unpleasant as I did to host a node- not on latency considerations, which supposedly work themselves out, but on knowing what your computer is probably distributing.
To be honest, I would accept such and be willing to take it as an operating cost if it wasn't so difficult to find any other content. However, it is unpleasant to know that two gigabytes of my hard drive had been dedicated almost entirely to content I found offensive rather than somewhat to such content and mostly- or even halfway- to content I would at least be vaguely interested in; If Freenet had more "general" content available, I suspect its popularity would increase greatly- but right now, it has a serious image problem and leaves a very bad first impression, and although I support free speech, I am not comfortable enough with Freenet to operate a node or be part of the system.