Freenet
Freenet is an open source software that provides solutions for anonymity, freedom of speech, and censorship resistance on the web. It is a decentralized, scalable P2P network that enables anonymous file sharing, browsing and creating websites accessible only through Freenet, and censorship-free chatting on forums.
All CustomersSoftware Maintenance
We provided assistance with software maintenance by thoroughly testing the software, doing bug fixes and partial code refactoring, which allowed us to restore the initial functionality of Freenet’s search index, and improve the performance of several plugins.
Learn moreLegacy Maintenance
Redwerk helped Freenet investigate its vulnerabilities, test ways for enhancing its speed, and outline areas for further development. Using our knowledge and hands-on experience in modern technologies, we managed to eliminate key UI issues, increase the lifespan and size of the uploaded files, and enable the search of files and “freesites”.
Learn moreChallenge
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.
Solution
The main functionality of the project is written in Java, and as a Java development company, we were glad to apply our expertise.
When we started studying the project, looking for what we could improve, we focused on its core, which is Fred (Freenet REference Daemon). It’s the most important part of the software, without which Freenet forums, plugins, and mail would not exist.
For Fred, we did the following:
- Repaired Theora video filter – now users can safely watch videos right from Freenet; there is no need to download them first
- Improved UI – we fixed inaccuracies in design, making the interface neat and more appealing
- Increased the maximum size of uploaded files (from 5 GB to at least 15 GB)
- Detected and fixed numerous minor bugs
Apart from supporting the core project, we also worked on improving the functionality of Freenet’s plugins such as KeepAlive, Library, and Freemail.
KeepAlive allows Freenet users to protect their files from loss as old files and “freesites” may be automatically replaced with newer and more popular files. Working on KeepAlive, we managed to:
- Find and fix the place where the plugin crashed
- Perform comprehensive plugin refactoring and release a fully working alternative version of the plugin
- Add CSRF protection (security requirements)
Plugins Library and Spider constitute Freenet’s search engine. However, they hadn’t been working properly for a while, and as a result, new searchable databases were not built. Our main goals were to get to the root cause of the lost functionality and bring back the search index to its original state. Although the quality of the search requires further development, we managed to fix the search index and made searching on Freenet possible again.
Freemail is a plugin that allows users to communicate and share files within Freenet. As for our contribution to Freemail, we enabled the use of a new API for interaction with WoT (WebOfTrust).
Working closely with the core team, we managed to enhance the overall software quality and upgrade the plugins that were of special interest to our sponsor.
Result
With the joint effort of the Freenet and Redwerk development teams, Freenet has gained a new visual look, a modernized codebase, an updated documentation, and community support on forums. Redwerk helped Freenet enhance its core features and make several plugins fully functional again. All the improvements we have made together with Freenet are essential for retaining existing users, attracting new participants, and spreading the word about the platform and its purpose.
Need experienced Java developers?
Let’s talkTechnologies
Redwerk Team Comment
Oleh
Developer
The Freenet project combines many original ideas that altogether create a working network, unlike any other. Other developers with whom I spoke were very friendly, ready to discuss suggestions and help find the best solution.
Related in Blog
How Redwerk Contributes to Open Source Projects: Freenet Example
Open source projects have always been a major topic for discussion among IT professionals worldwide. Over the decades, open source software grew from free apps coded by passionate enthusiasts to globally adopted enterprise solutions and a rapidly developing multi-billion industry...
Read MoreFreedom in WWW: How to Stay free
Although the Internet is considered a bastion of freedom and anonymity, in reality, it’s hardly that way. Starting from the government that wants to know everything about you or restrict your access to information to companies like Facebook and Google that follow your online beha...
Read MoreImpressed?
Hire usOther Case Studies
Platform Upgrade For European Parliament
Upgraded e-voting platform for European Parliament in less than 1 month
Web Intake
Developed citizen request management software used by 50% of city councils in Belgium and Netherlands
Searchturbo
Developed secure Chromium-based mobile browser supporting 18 languages and having over 100K installs