GSoC: Social network plugin for Retroshare

Retroshare is a communication tool build on two principles: decentralisation and privacy (Read more about the ideals behind Retroshare). Decentralisation means there is no central server. It also leads to privacy, because Retroshare runs on your own devices. Retroshare gives you the cryptographic tools to control who exactly can access your data. Privacy is enabled by encrypting all data which goes over the wire. Read Cryptography and Security in Retroshare for details.

Figure 1: Retroshare is a decentralized network.

Commercial social networks like Facebook have opposite properties: they are centralized and all data is visible to one company. The good news is: similar features to Facebook are also possible in a decentralized manner. The plan is to build this as a plugin for Retroshare. Always having decentralisation and privacy in mind, while offering a very similar interface with a similar feature set.

Figure 2: Sketch of the user interface.

Unlike other peer-to-peer software, Retroshare connects only to a set of trusted friends. This has some practical advantages, for example you don’t have to fear malicious peers. It still scales nicely, because friends tend to gather the same type of data.
But often you want to reach content that was not created by your direct friends. Or you want to contact someone because you are not friends yet. For this Retroshare offers another layer which i call the service layer. At first a service can send messages to direct neighbors only. But if it receives a data packet it can also forward it to a friend. This is how you can reach friends of friends. This philosophy has been applied to multiple information sharing algorithms within Retroshare. Read more about them in the following articles on the Retroshare team blog: Retroshare Forums, Distributed chat(a.k.a. Chat Lobbies), RetroShare’s anonymous routing model and Distant chat and messaging, using generic tunnels.

Figure 3: Retroshare forwards messages from friend to friend

On the neighbor Layer, you have to add your friends keys to your keyring by hand. But this is not a problem in practice, because the number of direct friends is small and Retroshare offers various options to get to know neighbor nodes one hop away. On the service layer you want to have the public keys of people many hops away. In Retroshare v0.6 there is a identity exchange system, which downloads public keys at the same time it receives a post from a unknown author. The identity exchange system can also work decoupled from the neighbor layer. This allows us to have pseudonymous identities. These identities can be used for different kinds of services like chat, mail, forums and the new social network plugin.

Retroshare is a steadily grown project, so the developers gained a lot of experience. Out of this they developed new systems to distribute messages in a Retroshare network (short name is gxs for General Exchange System). So all the complex code for doing the signing, verification, encryption and decryption of data is already done and avaliable. During the Summer of Code i will wrap this complex stuff in a nice webbased user interface. The RSWebUI Plugin is a starting point. It uses Wt, which is a library to create a webinterface with C++, without writing own code in web languages. You can watch the development in the git repository.

Read the next blog post to learn what features the social network plugin will have and how it will work in details.

Download Retroshare:

About me: i study electrical engineering. I first started programming to control hardware. I came to Retroshare because i wanted to chat securely without depending on a server. Then i started to dream about what else would be possible with a secured connection. So i started reading the code. Today i have enaugh knowlegde to contribute.

Join the Wireless Battle Mesh in Brussels

HackerSpaceBrussels (HSB) announces the second Wireless Battle Mesh, which aims to test 3 popular WiFi routing protocols (OLSR, Batman and Babel), in Brussels on Saturday and Sunday 17-18 October 2009.

Wireless Mesh Battle: OLSR vs. BATMAN vs. Babel


  • Tue 06 Oct @ 21:00: final IRC meeting to prepare the design of the networks (see below)
  • Sat 10 Oct @19:30: IPv6 presentation (Filip P.) + panel on possibilities & pittfalls of IPv6 for free networks
  • Tue 13 Oct – Fri 16 Oct: OpenWRT workshops
    (openwrt installation & configuration, kamikaze build environment,
    ssh keys infrastructure, firmware generation, UCI configuration tool,
    asterisk/ SIP phone)
  • Fri 16 Oct @ 18:00 : Deploy the nodes
  • Sat 17 Oct @ 14:00: Deploy the nodes, setup tests
  • Sat 17 Oct @ 19:00: concert "I’m sitting under an antenna" v.a., org. by OKNO
  • Sun 18 Oct @ 14:00: The battle! 🙂

IRC meetings

We setup some IRC meetings to prepare the configuration: IP’s,
versions, and everything that took too much time at WBM v1. The
meetings will be held on the tuesdays of 15 and 22 September and 06
October at 21:00 CET on channel #hsbxl. People from
Brussels and around are invited to join us at the hackerspace.


The event is free. We’ll kindly ask you for a donation to cover some costs.


Quai des Charbonnages 30-34
1080 Brussels


  • Metro: Compte de Flandres / Graaf van Vlaanderen
  • Train: Go to Brussels central station and take metro from there (metro 5 direction Erasmus)
  • Route planner in Brussels


Space is limited, so we ask you to register in advance by registering:

  1. send an email with your name and surname to AND
  2. register on Doodle


  • Bring your laptop/computer
  • Bring your compatible router(s) with OpenWRT pre-installed
  • Bring your WiFi antenna(s) and connectors


  • Zoobab is offering some free space to sleep (contact him at
  • If you have problems finding accomodation, let us know ( — there always be some couches free at HSB.


Tel (ptr_): +32 493 52 50 09
Tel (zoobab): +32 484 56 61 09


[via zoobab]

Freifunk Application for Google Summer of Code – We did not make it .. this time

What happened to the application of the freifunk community (Blog entry) for the Google Summer of code? Well, as you can guess by now, unfortunately we did not get it.. even though we were close. I had asked Leslie Hawthorn and she wrote us back the following lines:

"I know OpenWRT and like them. We simply couldn’t accept everyone. You folks made our short list if that helps. I can give you more feedback if you send me the URL for your ideas list. Is there a way Google can help you beyond Summer of Code? Leslie Hawthorn"

We had some nice ideas. Our intention was to serve as an umbrella for all the freifunk projects here, but maybe we can join the program next year. We still have the ideas pages, which is probably also intresting for developers who want to join freifunk projects in the future.

Some of the project ideas were/are:

  • Multimedia Streaming in Mesh Networks / Porting Obamp to C++
  • Passive + Active Measurement in Mesh Networks / Porting OpenIMP probes to OpenWRT
  • Traffic Flow Visualization / IPFIX DataSource for freimap
  • Mesh Node Status Monitoring / SNMP DataSource for freimap
  • Service Discovery in Mesh Networks / Avahi DataSource for freimap
  • Service Control Module for freimap
  • Topology visualization / B.A.T.M.A.N and olsrd routing decision recovery for freimap
  • Database output for freimap
  • Antenna placement information elements in freifunk map data
  • Search in Wireless Mesh Networks – Yacy
  • Search in Wireless Mesh Networks – Nutch/Lucene
  • Peer-to-peer file sharing applications in Wireless Mesh Networks
  • Developing a Freifunk Theme for CMS
  • VoIP phoning in Freifunk Mesh Networks
  • Porting Freifunk to EeePC
  • Freifunk Webinterface for OpenWrt Kamikaze