Author: ian
Date: 2006-03-09 22:37:25 +0000 (Thu, 09 Mar 2006)
New Revision: 8206
Modified:
trunk/docs/fnet.tex
Log:
first revision, various fixes
Modified: trunk/docs/fnet.tex
===================================================================
--- trunk/docs/fnet.tex 2006-03-09 21:45:15 UTC (rev 8205)
+++ trunk/docs/fnet.tex 2006-03-09 22:37:25 UTC (rev 8206)
@@ -41,12 +41,12 @@
\section{Introduction}
-As Internet connectivity spreads throughout the world, it
-has the potential to increase the availability of information for
-everybody, and to strengthen free speech and discourse. However, a
+With the proliferation of internet connectivity, the potential exists to
+increase the availability of information for
+everybody, while strengthening free speech and discourse. However, a
blind belief that the Internet, in and of itself, cannot be controlled
and will necessarily open the doors to free speech everywhere is
-unwise. In fact, as has been seen in many cases, it is indeed possible
+unwise. In fact, as has been seen in many cases, it is possible
to control and censor much of the Internet, and users of online
services are considerably less anonymous and more exposed than most
believe.
@@ -56,11 +56,11 @@
system, Freenet \cite{clarke:protecting}\cite{clarke:freenet}, is
intended to strengthen the freedom of speech by allowing anyone to
publish anything in the network at any time. To this end, the system
-integrates many levels of redundancy and dispersion of data throughout
+integrates many levels of redundancy while dispersing data throughout
the Internet's topology, which makes it difficult for an adversary to
-eliminate data from the network. The network strives to be opaque, so
+remove data from the network. The Freenet software strives to be opaque, so
that it is difficult without global knowledge to see which nodes
-responsible for storing which data at which time, and flexible, so
+are responsible for storing which data at which time, and flexible, so
that it can survive both the everyday churn of an uncontrolled
peer-to-peer environment and malicious attacks against the network
itself.
@@ -70,24 +70,23 @@
should be protected, both from outsiders and from other people in the
network. Earlier generations of Freenet anomymized only via a Crowds
[] type system, which, while offering some disassociation between
-queries and those who initiate them, is vulnerable to attack in many
-ways. One of the outstanding questions of Freenet development has been
+queries and those who initiate them, is vulnerable to many forms of
+attack. One of the outstanding questions of Freenet development has been
how the network can better anonymize queries in the future, with the
-option of utilizing stronger mixing techniques [] considered possible,
-but difficult in practice.
+option of utilizing stronger mixing techniques [].
A second concern, that has come to the forefront with the actual
deployment of Freenet, is the vulnerability of people operating nodes
in the network. While the network strived to dissociate users with the
-data they access and nodes with the data they serve, it not hide the
-nodes which that were part of the network. In order to find Freenet
-nodes in earlier incarnations of the system, it has been enough to
-join the network and start operating as a node oneself: part of the
+data they access and nodes with the data they serve, it does not hide the
+fact that a particular node is part of the network. In order to find Freenet
+nodes in earlier incarnations of the system, it is sufficient to
+join the network and start operating as a node oneself: through the
continuous process of routing and optimizing the network, one would
-continuously learn the identities and Internet addresses of more nodes
+eventually learn the identities and Internet addresses of more nodes
in the network. This means that somebody wishing to attack the Freenet
network in its entirety would have no problem finding and identifying
-participants.
+participants given sufficient time.
In order to resolve these problems, we have radically shifted the
direction of Freenet development. Instead of direct connections
@@ -120,35 +119,32 @@
Freenet's goal is to provide a distributed system for the publication
and access of information. Documents are stored, or inserted, into the
-network with an associated address, or key. The key (seen as binary
-string) is used both to decide where in the network to store the
+network with an associated address, or key. The key (typically
+represented as a base 64 number) is used both to decide where in the
+network to store the
document, and to authenticate the document when it is accessed. A
person wishing to access the document sends out a retrieve query, or
-request, which performs a routed depth first search. When the request
-finds a node containing a copy of the document, the entire document is
-returned through the search path.
+request, which performs a best first search with backtracking.
+When the request finds a node containing a copy of the document, the
+entire document is returned through the search path.
Freenet nodes do not make guarantees about the persistence of
document, but keep them using a best-effort algorithm that removes the
least-recently accessed document when a node's storage overflows. In
fact, nodes aggressively cache many if not all the documents that they
transfer, so a system of removing documents from the cache is
-necessary. One way of looking at the system is like a giant grid of
+necessary. The system can be viewed as a large grid of
caching proxy hosts, each proxying and caching for one another, but
with no ``authoritative source'' to return to should the document not be
in the cache. In practice, we have found that the system is relatively
-good at maintaining data when a sufficient amount of storage - about five
-to ten times redundancy over what one hopes to maintain - is available
+good at maintaining data when a sufficient amount of storage, typically
+each piece of data is replicated 5 to 10 times throughout the network
(see for instance [theos chapter], [that other fn
-paper])\footnotemark. Likewise, Freenet does not guarantee that data
+paper]). Furthermore, Freenet does not guarantee that data
in the network can be found by any particular search in a bounded
number of steps (or indeed at all) - it only attempts to make it
likely that it will.
-\footnotetext{This is not to say that there isn't value in the
- permanent storage of information. It simply says that guaranteed
- permanent storage is not the problem Freenet is trying to solve.}
-
\subsection{Inserting and Requesting data}
We assume that to every piece of data, $D$, there is an associated key