Freenet 0.5 Released
An anonymous reader submits "After over a year in the making, Freenet 0.5 stable has been released. This new version is far superior to previous versions of Freenet."
The announcement specifically thanks Matthew Toseland, "without whom this release would still be vaporware," noting "On the 11th of November, Matthew will no longer be able to work full-time unless more people donate, so please give whatever you can spare at our Donations page."
Please remember NOT to set yourself as anything other than a transient node, unless you have a great big fat unfirewalled Internet pipe and never turn your PC off.
Really. There is nothing more annoying than broken links on Freenet which takes ages to resolve.
the package appears to not be gzipped (despite the suffix). Hence use tar -xf freenet-0.5.0.tgz. Also the shell scripts in the package don't have the proper executable attributes set so that also needs to be modified. After that just follow the instructions :)
FreeNet is essentially the bulletproof P2P data exchange. It's practically impossible to destroy, or track down people who are on it. It is NOT designed for swapping MP3s or porn for those who have got the wrong idea, it's purpose is (as the name implies) to guarantee freedom of speech by allowing totally anonymous yet scalable publishing.
Scalable? Yes, one of the more interesting aspects of Freenet is it's intelligent caching and retrieval system. This isn't Gnutella, when you request a file it traverses the nodes being cached at each level. Therefore, the more a file is requested, the more distributed it becomes and the easier it becomes to get to - the opposite of the web.
FreeNet takes the form of a web for new users, you can "surf" the FreeWeb, and there was at one point a google-style search engine for it, I have no idea if that's the case. Some of the problems I remember were that it was often hard or impossible to reach certain pages as they hadn't propagated enough to be found before the timeouts were hit, and even then the timeouts were pretty high (like 2 minutes). On the more popular sites the owners would have to manually request it from different parts of the FreeNet in order to make it accessible.
Another problem was that because nothing can ever be deleted from the FreeNet once published, it was hard to do news/blog style sites: at the time they used JavaScript date based redirects, I think that shows how long ago I used it. Suffice to say that I'll be trying this release with interest.
Please set your node up as non-transient as long as you're online most of the time (where most is something like 75% and above). The network desperately needs non-transient nodes (high bandwidth is not that important). Also, your anonymity is a lot higher when running a non-transient node.
Yeah.... but what is it? P2P? Blogger? Messenger?
/.'ed and needs more bandwidth, well that's just tough. With freenet I put info on freenet that is connected to some sort of name (I don't fully get how that works). Then freenet somehow determines where to actually store that data, in parts, depending on demand and who running freenet has bandwidth; ie what freenet clients to store parts of the file. Then if somebody is running freenet they can run some 3rd party freenet client (or any normal internet client I think) and enter 127.0.0.1:8888 followed by the name of the link. This queries freenet (that is running on your computer) and figures out where that data is stored and the most efficient way to retrieve it. One of the interesting things is nobody knows what data is being stored on there computer so nobody can feel guilty for that info. Of course that cuts both ways. You may feel guilty for every bit of naughty data spread by freenet because it may have come from your computer.
As I understand it, it is none of those things... but it can facilitate those things. What it is is kind of a different paradigm for the internet. At the moment with the internet I type in an address and I get data from the person who has registered that address - if he has the bandwidth. I know who is sending the info and who posted it. And if that person has spare bandwidth or is being
If I'm wrong anywhere please correct. Or if I'm right but kind of shaky please reassure me. Hope this helps
It is. The store is cryptographically opaque; you don't know what you're hosting. Whether it's possible to identify whether a particular item is in the store when you know its key, I'm not sure.
2) My files aren't shared permanently. If nobody requests the files I injected, they are thrown out after a while, even if my node is online 24/7. That's just plain stupid.
It's necessary for a distributed-storage system where the injection point needs to be distanced from the storage points. Data flows to where it's being requested, so you could keep an item in your own store by requesting it automatically every so often. It won't go anywhere else, but it will stay in the keyspace should it ever be requested later on. You could do much the same thing to prolong the longevity of someone else's data that you valued -- but again, it would tend to live only on your own node if no other nodes were requesting it.
On the contrary, FreeNet is used by a lot of Chinese people as it's a good way of distributing information without being traced. Right now freedom of speech may not be a problem for us, but we're lucky.
If for instance, my node is used for storing some part of some kiddy pr0n and the authorities decide for whatever reason to inspect my PCs, how am I to prove that I didn't source the file myself.
Your question should be modded up. It's one of the most important ones.
The idea behind Freenet's anonymity is plausible deniability. But before I can go into what that means, I need to describe how Freenet works in a little more detail.
There are two different types of Freenet nodes: permanent and transient. If you run a permanent node, it means that you're a full participant in the Freenet network. Your node acts as storage and as a router for requests and inserts. Data moves through Freenet in the form of keys, which are basically the same as files (or in some cases, segments of files) but with cryptic names. Your node caches all the keys that it sees (with least recently used keys being deleted when the node's data store is full, with "full" being defined by the amount of space you choose to let it consume).
Let's say Alice inserts two files into Freenet: the text of Mein Kampf and a picture of Adolf Hitler. She does this using her Freenet node, specifying a hops to live value on the insert. This HTL value is usually around 10 to 15, and is the number of other Freenet nodes that must be talked to. Each node that processes Alice's request decreases the HTL and passes it on to another node. When the last node to get the request sees that HTL is 1, and it still hasn't found Alice's file (because she's the first person to insert it), it returns Data Not Found to the previous node, which passes it to the previous node, etc., all the way back to Alice.
Alice's node gets the "failure" message back, and then sends actual copies of the data files back down the chain. Thus, the files are inserted into Freenet.
Now, this is where the plausible deniability comes in: the data coming from Alice's node looks just like the data coming from all the other nodes she talked to during the request/insert process. There's no way to distinguish between the node that originated the request and a node that's simply passing the request along on someone else's behalf. So if someone were to sniff the traffic coming from Alice's machine and decrypt it and discover that her machine was inserting Mein Kampf, then she could claim that she had no knowledge of it; that her machine was simply routing an insert by someone else.
The same goes for requests. Suppose Bob stumbles upon a key which claims to be an ISO image of Windows 2000 Professional and requests a copy of it. His node generates a request with a certain HTL (generally 15 or more for requests), and it's passed along to other nodes until one of them either finds the key, or runs out of hops. The final result (either an error condition or the key he requested) is sent back to Bob's node.
But Bob could claim that he wasn't the person who originally requested that key -- he could say that his node was simply routing someone else's request, and he had no knowledge of it.
The same thing goes for files inside the local node's data store. Just because your node is storing a copy of a nude photo of Ronald Reagan doesn't necessarily mean that you either inserted or requested that file. Your node might simply have acted as a router for someone else's activity, and cached a copy of the key.
Now, all of this protection goes straight out the window if you run a transient node. Transient nodes don't ever act as routers for other nodes -- they're pure leeches. Anything on a transient node is there because you, the node operator, requested or inserted it there. You have no plausible deniability any more.
This explanation is a bit vague, and for that I apologize. The actual routing algorithms and encryption ciphers are a bit beyond my understanding at this time. If you have more detailed questions about how Freenet works, please check the Freenet mailing lists.