The Freenet Help Site
Licences used on this wiki
Welcome anonymous user to Freenet WikiServer
 
Freenet 0.7 FAQ

Frequently asked questions about the new Freenet version 0.7


Enduser questions

What is Freenet 0.7?

Freenet 0.7 is an almost completely redesigned and rewritten version of Freenet (which is currently at version 0.5).

Why is Freenet being rewritten?

The existing version of Freenet doesn't prevent people from knowing that you are running a Freenet node, this could be problematic in some situations. In particular, when you run a Freenet node, you broadcast that fact all over the internet. It's easy for anyone to build a large list of people who run Freenet nodes; this is called "harvesting". Powerful people with control over ISPs can then shut down those nodes, or national firewalls can block them. The whole point of Freenet is to build a system that can't be censored, so this is clearly a big problem. The main focus of 0.7 is to fix that, using the concept of a "darknet" (see below).

While they're at it, the developers are going to make lots of improvements that should make Freenet faster and more portable, including making it use UDP as the default transport, which should speed things up a bit. The new routing algorithm should also be considerably faster and more predictable.

What is this darknet thing I keep hearing about?

With Freenet 0.7, the developers are trying to establish a globally scalable Darknet.
What this means is that every node only connects to a small number of hand-selected other nodes, preferably run by people the owner of that node knows personally. The links between two nodes must be initiated by both parties. This makes the network basically invite-only, because in order to connect, you will need to ask someone who already is connected.

Until now, most darknets have been very small. By using a complex routing algorithm that exploits the so-called small world phenomenon (Wikipedia:Small_world_phenomenon∞), the developers hope to create a darknet that can scale to very large sizes, connecting nodes from all around the globe, even though the people running them might never have heard of each other.

If Freenet 0.7 is going to be a darknet, will that mean I won't be able connect if I don't know anyone else on Freenet?

No. There will be an Open Net? option, that is a network that works largely like the current one and that anyone can connect to. The different emerging darknets may either be connected to the opennet or be isolated "island"-networks. The ultimate goal is to get them all connected in one large network, so that every node in Freenet can reach every other node in Freenet.

Just like the existing 0.5 network, the opennet will be easily harvestable; it will be easy for people to figure out that you're running a node. If Freenet is illegal where you live, or if there's any other reason you don't want people to know that you have a node, you should find trustworthy friends to form a darknet with, instead of using the opennet.

What happens if my friends aren't that trustworthy?

You're "exposed" to your connection partners in two ways:

First, they know that you're running a Freenet node. If you're running a Freenet node in a country where it's illegal to do so, and your partner tells the authorities, this could be a big problem. Even if Freenet isn't actually illegal, you might not want everyone to know that you use it.

Second, there are so-called Correlation Attacks? that can be mounted against you, to figure out what you're downloading, or which anonymous online identities you've adopted. These attacks work by watching the pattern of requests that come out of your node over a period of time, and matching them up with files that turn up on the network. You're not really anonymous if your friend is watching everything you do, so you have to be able to trust your connection partner not to mount such an attack. It should be noted, however, that so far there aren't any reports of anyone mounting such an attack: it would be quite technically challenging to do.

Various ideas have been proposed to prevent correlation attacks, or at least make them much harder, but these ideas won't necessarily be implemented in the early versions of Freenet 0.7.

I've got nothing to hide, so I'm going to post my address on the internet and invite anyone in the world to connect to me.

The problem with this is that the new Freenet routing algorithm depends on people organising themselves into a Small World Network?. This works when people connect to each other for some good reason, such as that they know each other in real life, they have some shared interests, they live geographically close to each other, and so on. Freenet uses mathematical properties of these relationships to figure out how to route a message from point A to point B.

If people connect to random people they find on the internet, the network is no longer a small world network, and so the routing algorithm won't work. If you connect to random people on the internet, you'll quickly find that your node won't find files any more.

Will files in the existing network still be available in the 0.7 network?

No. Freenet 0.7 will start empty. Any content in the existing network will have to be migrated over by hand.

Moving content is not trivial. Each file will get a new key when it's reinserted (this applies for CHKs, not for SSKs and KSKs). Any links in a Free Site will therefore have to be changed to reflect the new keys. Split Files will have to be reassembled and then resplit. Since all of this content is distributed over many nodes, it will all have to be retrieved to one single node before it can be reinserted. So it's not possible to simply run an offline program to convert your old Data Store? to the new format.

Will there be a method for real-time exchange of data?

(Not really a frequently asked question, I included it anyway because it's interesting)
Yes. Freenet 0.7 plans to introduce a Publish Subscribe? scheme, which will make real-time exchange of (low amounts of) data possible. One of the possible uses is IRC over Freenet.
There will be severe bandwidth restrictions on this, though, as it might be a security risk otherwise. So don't plan on using it for exchanging large files.

Can I try it right now?

There is a very limited alpha version of 0.7 available. If you want to help test it, you should first join the IRC channel #freenet-alphatest on the freenode network. With the current limited functionality of 0.7, running it without being in that channel is just pointless.
Next, you need to fetch the node software from http://amphibian.dyndns.org/0.7-alphajars. For installing, see also Alpha-testing Freenet 0.7.
On the 0.7 network, it is, for now, absolutely required that you always run the newest build.
For now, everybody who wants to run a 0.7 node is expected to connect directly to one of the nodes run by toad_ (the main developer). (Did I mention the software is still in early alpha?) You will need to feed toad_'s noderef to your node and provide toad_ with the ref for your node - for example by publishing it in the mentioned IRC channel.
To actually run the node, run this command on the commandline:

java -cp <jarfile.jar> freenet.node.Node <portnumber>

But substitute <jarfile.jar> with the name of the .jar file you downloaded and <portnumber> by the (UDP) port number you want the node to listen on.

Remember to always update the .jar file to the newest version when one is announced in the IRC channel!

Don't expect to be able to actually do anything with this for now.

When will Freenet 0.7 be released?

As of September 2005, the developers are still aiming for some kind of release around Christmas 2005. However, development is still at too early a stage for this to be more than a guess.


Technical questions

Must 3rd party tools be changed to run on 0.7? If yes, when will there be any developer documents available for 0.7?

FCP, the Freenet Client Protocol, will be completely reworked in 0.7, which means that current third party applications will not work. There also won't be a compatibility mode.

FCPv2 is not finalized yet, but specifications will be available eventually. For now you can see some of the first ideas about it on the Freenet-Wiki here: Spec Docs