GSoC 2017 – RetroShare via Freifunk

Hello, my name is Stefan Cokovski and I’m an undergraduate student at the Faculty of Computer Science and Engineering, Saints Cyril and Methodius University of Skopje. My field is Computer Networks Technologies.

Firstly, I would like to thank Google and the team responsible for organizing GSoC. GSoC is a wonderful opportunity for many students all over the world to gain some real experience working on open-source projects, but also to expand their network with new friends and potential colleagues. I would also like to thank Freifunk (for taking many projects related with computer networks under their wing and for also supporting the project RetroShare) and the lead developers (and my mentors) of RetroShare for being here for me during this community bonding period, answering my questions and helping me to improve my ideas. I’m sure they will continue to help me during the later parts of GSoC.

Before I tell you what my project involves, I would like to introduce you to what exactly RetroShare is and maybe convince you to start using it (if you don’t use it already) and possibly join the development process.

RetroShare is a decentralized, private and secure commmunication and sharing platform which provides many interesting features like file sharing, chat, messages, forums and channels. RetroShare is a free and open-source project, completely free of any costs, ads and terms of service. RetroShare is available on several operating systems, including various GNU/Linux distributions, FreeBSD, Microsoft Windows and Mac OS X.

Sounds interesting? Read more.

Why should you use and recommend RetroShare to your friends?

With the recent disclosures involving the violation of privacy, exercising the right to have secrets and secure communication between friends has never been more difficult. Information is often intercepted by various agencies and the need for a secure communication and sharing platform has never been greater. This is where RetroShare comes in play.


  •   is a completely decentralized, friend to friend network designed for people who don’t want to be dependent on centralized systems which often invade their users’ privacy.
  • provides you the means of exercising your right to have secrets and control what you share and to whom you share it.
  • makes use of strong cryptographic algorithms, while keeping simplicity of use which is very important for average computer users.
  • can be the all in one alternative you’re looking for to replace the dozen other communication methods you’re using at the moment.

Technical specifications:

RetroShare’s network topology, by definition, is a decentralized friend to friend network (F2F). RetroShare uses DHT (distributed hash table) to locate friends and make the initial connection process easier. Transport is provided by IPv4 TCP and UDP, Tor, I2P, while IPv6 support is still in development. Authentication is utilized with PGP keys and the traffic is encrypted with TLS (OpenSSL). UPnP and NAT-PMP provide port forwarding support, while UDP support helps to connect to friends which are behind NAT. RetroShare can be extended via plugins.

Alright, so now since you’re at least partly familiar with what RetroShare is, let me tell you about my project.

Currently, RetroShare is mostly being used as a desktop application. It has a Qt-based GUI which has been polished over time. RetroShare also has a web interface (bingo, this is what I’m interested in). Sorry for keeping you in suspense there. The web interface is a bit behind the main Qt GUI in terms of functionality and appearance. In an age where mobile and portable devices dominate the percent of online devices, it’s absolutely crucial for RetroShare’s web interface to be improved in both appearance and functionality. Being a RetroShare user myself, I (and also many others) have expressed the need for an improved web interface which can drastically improve RetroShare usability on devices other than desktops and open up many possibilities. What I mean is the following: with a solid web interface, RetroShare users can host the core of the application on a machine which could, for example, run 24/7 and thus help support the network by being a constantly active node and enjoy in the features that RetroShare provides on an interface suitable for mobile and portable devices. By now you should be wondering: “Well then, why is there no version of RetroShare for Android?”. Due to the nature of RetroShare (network bandwidth, hardware and other requirements), simply porting the application for Android (or any other mobile operating system) will not result in a stable and usable solution for the end user. Many other applications provide decent web interfaces which allow control and use via mobile and portable devices and my goal with this project will be to improve RetroShare’s web interface to this point.

Just for a reference, I will show you how RetroShare’s web interface (just on the home screen, as to not leak any information from the chats and etc) looks at the moment. And if I’m successful, I will get to show you how it will look at the end of this Google Summer of Code.

One thought on “GSoC 2017 – RetroShare via Freifunk

Leave a Reply

Your email address will not be published. Required fields are marked *