Freenet was the first to apply the P2P approach to Internet anonymity. It was designed with a mission to ensure freedom on the Internet, allowing users to browse and publish “freesites” (websites accessible only through Freenet), share files, and chat on forums without fear of censorship.
Freenet’s decentralized structure, communication encryption and routing through other nodes is what assures anonymity of information sources and people accessing those sources. Each network user shares their bandwidth and allocates a certain portion of their hard drive to store fragments of other people’s files. The users do not know what information is stored on their computers because it is encrypted.
To access Freenet, the user needs to download the main app, install and run it in the background while using the browser to change settings and access content. The core functionality of the network allows storing and reading files; however, the software also contains a set of plugins: Freemail, Sharesite, Library, WebOfTrust. Besides, there is a separate software like FMS or Frost forums that interact through the API.
Freenet is a project that is based on the academic work of various universities around the world, and it has always recognized the importance of development and enhancement. Therefore, when Redwerk was offered to contribute to the project development, we were eager to pitch in.
Despite extensive development and many useful improvements, the current Freenet 0.7.5 version still has a number of unresolved issues. The main problems that users encounter are:
- Low speed of downloading and uploading files
- High rates of adding new files combined with moderate user base may lead to quick loss of file’s parts – up to inability to restore files from duplicate blocks
- Some sections of the code become outdated due to the emergence of new approaches and solutions
- The software may be difficult in use for an average non-technical user
Since our contribution to Freenet was sponsored, we primarily focused on the software upgrades our sponsor needed most. At the same time, we took over part of software maintenance, QA, and user support tasks to relieve the workload of the Freenet core development team. Overall, our major goal was to improve Freenet software by eliminating the issues we have outlined above and making it faster and easier in use.