GSoC/GCI Archive
Google Summer of Code 2013

Freenet Project Inc

Web Page: https://wiki.freenetproject.org/Google_Summer_of_Code/2013

Mailing List: mailto:devl@freenetproject.org

Freenet is free software which lets you anonymously share files, browse and publish "freesites" (web sites accessible only through Freenet) and chat on forums, without fear of censorship. Freenet is decentralised to make it less vulnerable to attack, and if used in "darknet" mode, where users only connect to their friends, is very difficult to detect.

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. Files are automatically 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 are encrypted, so generally the user cannot easily discover what is in his datastore, and hopefully can't be held accountable for it. Chat forums, websites, and search functionality, are all built on top of this distributed data store.

Freenet has been downloaded over 2 million times since the project started, and 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.

An important recent development, which very few other networks have, is the "darknet": By only connecting to people they trust, users can greatly reduce their vulnerability, and yet still connect to a global network through their friends' friends' friends and so on. This enables people to use Freenet even in places where Freenet may be illegal, makes it very difficult for governments to block it, and does not rely on tunneling to the "free world".

Tahrir: We may accept applications for students to work on Tahrir as well, which is a closely related project, but you will need to make sure you have a mentor.

Projects

  • Android support for darknet connections A P2P platform like freenet should definitely have an Android version. Since it is a resource intensive application, it might consume a lot of battery/data. My objective is to utilize the technologies, pre-built into android (Wi-Fi direct and QR), to save upon battery/data and to make it user friendly where ever possible. The power problem is overcome by making two versions of the application, a resource intensive and a light weight. The resource intensive application runs on laptops,homeservers etc. while light weight application on android mobiles. These two applications communicate with each other over Wi-Fi direct (i.e. no data/internet connectivity is required). We plan to use QR code as a means to establish darknet connections. Two nodes connect when they scan each other's QR codes. This provides a very user friendly and secure alternative to run darknet in a censored environment. Finally, we plan to utilize Wi-Fi direct for exchanging popular content on the data stores when two nodes meet. This lessens the burden on actual internet connectivity With smart phones, smart cameras and smart TV sets evolving. this project appears rewarding.
  • Distributed Version Control Improvements with WoT and Infocalypse Source repositories in Freenet are somewhat inconvenient, requiring manual sharing of repository keys, and having no features apart from push and pull. I'd like to extend Infocalypse to use WoT to make it easier to push, pull, and discuss code. This means the ability to publish repositories under WoT identities, and allowing others to make comments and pull requests. In a phrase, I hope to build a distributed GitHub over Freenet.
  • File sharing/searching for Freenet My “ideal storage system” includes functionality to share and search for immutable documents (such songs or videos). The search results include objects that were generated in the system that contain partial data of the targeted file. These objects were generated independently of the initial user’s uploaded file. Later the user or someone who is searching for this content can use the new objects to recover the initial file. To make this thing possible it is necessary to locate these new objects. The search is conducted using CHK without any extra knowledge.
  • The Tahrir Project Tahrir aims to be a distributed, decentralized, scalable, and anonymous "workalike" for Twitter. I would like to help bring Tahrir to an initial public beta release stage, which would require a good understanding of the already in-place code and commendable experience in handling the GUI related projects.
  • Transport Layer Improvements project Generally, the aim of the project is to enhance the survivability of slow and dying connections at the same time boosting the broad ones. Also it seems important to improve the current congestion control mechanism.