You are here

Google Summer of Code 2014 Ideas

Primary tabs

GNUnet is participating in this years Google Summer of Code under the GNU umbrella. Here's an overview over GNUnet's project ideas.

Please feel free to contact us about them or to suggest new ideas/features you would like to see implemented in GNUnet, even if you personally can't do them.

General Guidelines

Here some information about GNUnet and our development process:

  • GNUnet is written in C, so extensions to GNUnet have to be written in C as well
  • GNUnet is designed to run on various platforms, but we mainly develop under GNU/Linux ...
  • We use Subversion for version control, you will get write access to or a separate repository to commit your changes
  • In addition we use a buildsystem based on autotools, but additional dependencies have to be discussed with the team members and mentors
  • The common GNUnet hangout is in IRC on freenode in #gnunet, you are invited to join!
  • As a developer you should join the gnunet mailing lists
  • Have look at the developer tools we use to track bugs and do regression testing:

Self-Updating GNUnet with GNU Guix

The goal is to have GNUnet update itself using GNU Guix whenever there is an update available. This project involves working on GNUnet and GNU Guix projects as it involves integrating them. It is also mentioned under GNU Guix's GSoC project ideas.

In this project, you have to implement a GNUnet service which can discover an updates when available, download the update, check the update for authenticity, install the update, and then propagate the update to other peers. Currently, GNU Guix provides packages from a central server with its own protocol based on HTTP. This protocol should be decentralised with GNUnet so that the packages can be downloaded from other peers in the P2P network.

If you are interested in this project, write an email to:

Multicast implementation

The goal is to design and implement the multicast service of GNUnet.

The multicast API and initial design has been already described. The design needs further work to make it robust and scalable. One approach would be implementing the findings, or a derivative from SplitStream. The multicast service is useful for building truly distributed applications, e.g. the PSYC and Social services rely on it to implement publish/subscribe infrastructure and social networking applications.

Social applications

Implement decentralized social applications using the Social service of GNUnet.

The Social service provides publish/subscribe functionality for the underlying stateful multicast channels.
Applications are notified about incoming method calls and changes to the decentralized channel state.

Possible applications include, but not limited to:

  • Applications based on group messaging
  • (Micro)blogging applications
  • Collaborative editing
  • Event scheduling

For more details and further ideas, check the Secure Share site.