GSoC/GCI Archive
Google Summer of Code 2009

The Freenet Project

Web Page:

Mailing List:

Freenet is free software which lets you publish and obtain information on the Internet without fear of censorship. To achieve this freedom, the network is entirely decentralized and publishers and consumers of information are anonymous. Without anonymity there can never be true freedom of speech, and without decentralization the network will be vulnerable to attack.

Communications by Freenet nodes are encrypted and are "routed-through" other nodes to make it extremely difficult to determine who is requesting the information and what its content is.

Users contribute to the network by giving bandwidth and a portion of their hard drive (called the "data store") for storing files. Unlike other peer-to-peer file sharing networks, Freenet does not let the user control what is stored in the data store. Instead, files are kept or deleted depending on how popular they are, with the least popular being discarded to make way for newer or more popular content. Files in the data store are encrypted to reduce the likelihood of prosecution by persons wishing to censor Freenet content.

The network can be used in a number of different ways and isn't restricted to just sharing files like other peer-to-peer networks. It acts more like an Internet within an Internet. For example Freenet can be used for:

* Publishing websites or 'freesites'

* Communicating via message boards

* Content distribution

* Sending email messages

Unlike many cutting edge projects, Freenet long ago escaped the science lab, it has been downloaded by over 2 million users since the project started, and it is used for the distribution of censored information all over the world including countries such as China and the Middle East. Ideas and concepts pioneered in Freenet have had a significant impact in the academic world. Our 2000 paper "Freenet: A Distributed Anonymous Information Storage and Retrieval System" was the most cited computer science paper of 2000 according to Citeseer, and Freenet has also inspired papers in the worlds of law and philosophy. Ian Clarke, Freenet's creator and project coordinator, was selected as one of the top 100 innovators of 2003 by MIT's Technology Review magazine.


  • Freenet: trust-based distributed indexing In a non-hierarchical network, trust is an effective method of security against malicious disruptions. Freetalk & FMS are messaging systems backed by a web of trust (WoT) over crypto-identites (IDs). Each ID has a trust list which determines its interaction with other IDs; this interaction also feeds back into the trust system. This project aims to implement a similarly-backed decentralised indexing service, providing search-querying & name-resolution, allowing content to be found much faster.
  • Improving friend-to-friend interaction Freenet allows friends to be added as darknet connections. This is optional and doesn't give many benefits to the end user. An important part of getting the darknet to grow is to give benefits to the users that have darknet friends added. The benefits could either be new features or improvements in performance. The goal of the project is to implement such features and improvements in performance.
  • Progress indicators for loading files in FProxy Progress bars will allow users to know whether the item they have requested has been found and, if it has, what stage of download and how big it is. Additionally I would like to work on improvements to XMLSpider indexing to improve search features.
  • Student Proposal for “Content filter” listed on the idea page I have deep interest in computer security. I know basics of exploits, vulnerabilities and other security concepts. I am eager to learn new concepts. I visit security websites like governmentsecurity, hackinthebox etc regularly.I think freedom of speech is our right and Freenet provides the same.Given the opportunity, I assure you that I would give my level best and certainly meet the time bound targeted objectives to the satisfaction.
  • Web interface improvements Improve the web interface significantly by introducing server pushing technologies.