[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [www] 08/11: gsoc.html: indent
From: |
gnunet |
Subject: |
[GNUnet-SVN] [www] 08/11: gsoc.html: indent |
Date: |
Mon, 01 Jul 2019 21:38:48 +0200 |
This is an automated email from the git hooks/post-receive script.
xrs pushed a commit to branch master
in repository www.
commit 727b28c5abeade5ee8b7a4adee76aa6e004616d7
Author: xrs <address@hidden>
AuthorDate: Mon Jul 1 21:08:48 2019 +0200
gsoc.html: indent
---
template/gsoc.html.j2 | 1157 +++++++++++++++++++++++++------------------------
1 file changed, 579 insertions(+), 578 deletions(-)
diff --git a/template/gsoc.html.j2 b/template/gsoc.html.j2
index 1f5d4f0..5104e51 100644
--- a/template/gsoc.html.j2
+++ b/template/gsoc.html.j2
@@ -6,17 +6,6 @@
<h1>{{ _("GNUnet's Google Summer of Code projects") }}</h1>
</header>
- <div class="row container justify-content-center">
- <div class="col-6">
- {% trans %}
- As a GNU project, GNUnet has participated in the
- Google Summer of Code (GSoC) for a number of years.
- This page lists all current, past, and finished
- projects.
- {% endtrans %}
- </div>
- </div>
-
<div class="row">
<div class="col-2 d-none d-lg-block"><!-- for large viewports show menu
for better orientation -->
<nav class="nav subnav position-fixed flex-column border-right"
style="position:fixed">
@@ -27,580 +16,592 @@
</div>
<div class="col">
- <h2><a name="current" class="subnav-anchor"></a>{{ _("Current projects
(2019)") }}</h2>
- <section>
- <h4>Android Port</h4>
- <p>
- {% trans %}
- It is time for GNUnet to run properly on Android. Note that
- GNUnet is written in C, and this is not about rewriting
- GNUnet in Java, but about getting the C code to run on Android.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> <a
href="https://www.goebel-consult.de/">Hartmut Goebel</a>
- {% endtrans %}
- </p>
- </section>
+ <section>
+ <p>
+ {% trans %}
+ As a GNU project, GNUnet has participated in the
+ Google Summer of Code (GSoC) for a number of years.
+ This page lists all current, past, and finished
+ projects.
+ {% endtrans %}
+ </p>
+ </section>
+
+
+ <h2><a name="current" class="subnav-anchor"></a>{{ _("Current projects
(2019)") }}</h2>
+ <section>
+ <h4>Android Port</h4>
+ <p>
+ {% trans %}
+ It is time for GNUnet to run properly on Android. Note that
+ GNUnet is written in C, and this is not about rewriting
+ GNUnet in Java, but about getting the C code to run on Android.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> <a
href="https://www.goebel-consult.de/">Hartmut Goebel</a>
+ {% endtrans %}
+ </p>
+ </section>
- <section>
- <h4>Help with Continuous Integration setup</h4>
- <p>
- {% trans %}
- There is a push for migrating our CI to Gitlab. The CI should
- eventually not just run "make check" on various platforms, but also
- perform tests with multiple peers running in different VMs with
- specific network topologies (i.e. NAT) between them being simulated.
- The CI should also be integrated with Gauger for performance
- regression analysis. Running jobs only when dependencies have changed
- and scripting more granular triggers or ideally automatic dependency
- discovery (as done by the autotools) is also important.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> TBD
- {% endtrans %}
- </p>
- </section>
+ <section>
+ <h4>Help with Continuous Integration setup</h4>
+ <p>
+ {% trans %}
+ There is a push for migrating our CI to Gitlab. The CI should
+ eventually not just run "make check" on various platforms, but also
+ perform tests with multiple peers running in different VMs with
+ specific network topologies (i.e. NAT) between them being
simulated.
+ The CI should also be integrated with Gauger for performance
+ regression analysis. Running jobs only when dependencies have
changed
+ and scripting more granular triggers or ideally automatic
dependency
+ discovery (as done by the autotools) is also important.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> TBD
+ {% endtrans %}
+ </p>
+ </section>
- <section>
- <h4>Migrate gnunet-qr from Python 2.7 to C using libzbar</h4>
- <p>
- {% trans %}
- Python 2.7 is reaching its end-of-life, and we want to get rid
- of the dependency on Python. The existing gnunet-qr tool is a
- rather simple wrapper around python-zbar, which itself wraps
- libzbar. The goal of this project is to directly use libzbar
- to scan QR codes for GNUnet / the GNU Name System (see
- also <a href="https://bugs.gnunet.org/view.php?id=5562">#5562</a>).
- <br>
- <strong>Mentors:</strong> Christian Grothoff
- {% endtrans %}
- </p>
- </section>
+ <section>
+ <h4>Migrate gnunet-qr from Python 2.7 to C using libzbar</h4>
+ <p>
+ {% trans %}
+ Python 2.7 is reaching its end-of-life, and we want to get rid
+ of the dependency on Python. The existing gnunet-qr tool is a
+ rather simple wrapper around python-zbar, which itself wraps
+ libzbar. The goal of this project is to directly use libzbar
+ to scan QR codes for GNUnet / the GNU Name System (see
+ also <a href="https://bugs.gnunet.org/view.php?id=5562">#5562</a>).
+ <br>
+ <strong>Mentors:</strong> Christian Grothoff
+ {% endtrans %}
+ </p>
+ </section>
- <section>
- <h4>re:claimID OpenID Connect performance improvements</h4>
- <p>
- {% trans %}
- reclaimID is a decentralized identity system build on top of the GNU
- Name System.
- Upon authorization, the user provides a requesting party (RP) such as
a website
- with an authorization ticket (e.g. piggybacked in an OpenID
authorization code).
- The RP uses information contained in this ticket to
- <ol>
- <li> Retrieve the decryption key from GNS</li>
- <li> Retrieve the user attributes from GNS</li>
- </ol>
- The GNS lookups ensure that the RP receives up-to-date attributes and
functional
- decryption keys. However, in particular the RP-specific encryption key
- resolution can be slow and even fail depending on the network topology.
- We propose that in an initial exchange, in particular OpenID
authorization code
- flows, we try to incorporate key and maybe even an attribute set in
the ticket
- exchange.
+ <section>
+ <h4>re:claimID OpenID Connect performance improvements</h4>
+ <p>
+ {% trans %}
+ reclaimID is a decentralized identity system build on top of the
GNU
+ Name System.
+ Upon authorization, the user provides a requesting party (RP) such
as a website
+ with an authorization ticket (e.g. piggybacked in an OpenID
authorization code).
+ The RP uses information contained in this ticket to
+ <ol>
+ <li> Retrieve the decryption key from GNS</li>
+ <li> Retrieve the user attributes from GNS</li>
+ </ol>
+ The GNS lookups ensure that the RP receives up-to-date attributes
and functional
+ decryption keys. However, in particular the RP-specific encryption
key
+ resolution can be slow and even fail depending on the network
topology.
+ We propose that in an initial exchange, in particular OpenID
authorization code
+ flows, we try to incorporate key and maybe even an attribute set
in the ticket
+ exchange.
- In order to mitigate this issue, this project is meant to investigate
and implement how...
- <ol>
- <li> ... decryption keys can be added to an initial exchange in
OpenID.</li>
- <li> ... initial set(s) of attributes can be piggybacked in
OpenID.</li>
- </ol>
- <br/>
- <strong>Mentors:</strong> Martin Schanzenbach
- {% endtrans %}
- </p>
- </section>
+ In order to mitigate this issue, this project is meant to
investigate and implement how...
+ <ol>
+ <li> ... decryption keys can be added to an initial exchange in
OpenID.</li>
+ <li> ... initial set(s) of attributes can be piggybacked in
OpenID.</li>
+ </ol>
+ <br/>
+ <strong>Mentors:</strong> Martin Schanzenbach
+ {% endtrans %}
+ </p>
+ </section>
- <section>
- <h4>re:claimID alternative GNS-based encryption</h4>
- <p>
- {% trans %}
- re:claimID is a decentralized identity system build on top of the GNU
- Name System.
- The initial design and implementation of re:claimID includes an
attribute-based
- encryption module in order to prevent unauthorized access to
attributes in the
- name system.
- Our motivation for re:claimID was for it to be name system agnostic,
which
- means the design theoretically also works for other name systems such
as
- namecoin.
- Other name systems often do not have built-in mechanisms in order to
do this.
- Hence, we implemented an ABE access control layer. Our ABE
implementation
- requires two third party libraries: libpbc and libgabe. While we could
merge
- libgabe into the gnunet service implementation of re:claimID, libpbc
is a
- rather large, third party library which lacks packaging in
distributions and
- for platforms.
- On the other hand, GNS supports record data encryption using symmetric
keys as
- labels.
- If we make the access control layer of re:claimID more generic in
order to
- support both ABE and GNS encryption, we could reduce the required
depenencies.
- This would result in gnunet packages to include re:claimID by default.
+ <section>
+ <h4>re:claimID alternative GNS-based encryption</h4>
+ <p>
+ {% trans %}
+ re:claimID is a decentralized identity system build on top of the
GNU
+ Name System.
+ The initial design and implementation of re:claimID includes an
attribute-based
+ encryption module in order to prevent unauthorized access to
attributes in the
+ name system.
+ Our motivation for re:claimID was for it to be name system
agnostic, which
+ means the design theoretically also works for other name systems
such as
+ namecoin.
+ Other name systems often do not have built-in mechanisms in order
to do this.
+ Hence, we implemented an ABE access control layer. Our ABE
implementation
+ requires two third party libraries: libpbc and libgabe. While we
could merge
+ libgabe into the gnunet service implementation of re:claimID,
libpbc is a
+ rather large, third party library which lacks packaging in
distributions and
+ for platforms.
+ On the other hand, GNS supports record data encryption using
symmetric keys as
+ labels.
+ If we make the access control layer of re:claimID more generic in
order to
+ support both ABE and GNS encryption, we could reduce the required
depenencies.
+ This would result in gnunet packages to include re:claimID by
default.
- In short, the goals are to...
- <ol>
- <li> ... improve performance by reducing encryption overhead.</li>
- <li> ... reduce dependencies.</li>
- </ol>
- <br/>
- <strong>Mentors:</strong> Martin Schanzenbach
- {% endtrans %}
- </p>
- </section>
+ In short, the goals are to...
+ <ol>
+ <li> ... improve performance by reducing encryption
overhead.</li>
+ <li> ... reduce dependencies.</li>
+ </ol>
+ <br/>
+ <strong>Mentors:</strong> Martin Schanzenbach
+ {% endtrans %}
+ </p>
+ </section>
- <section>
- <h4>Enable all networking applications to run over GNUnet out of the
box</h4>
- <p>
- {% trans %}
- One great problem of the current Internet is the lack of
- disintermediation. When people want to talk they need a
- chat service. When they want to share files they need a
- file transfer service. Although GNUnet already possesses
- quite advanced integration into Linux networking, a little
- extra work is needed for existing applications like irc,
- www, ftp, rsh, nntpd to run over it in a peer-to-peer way,
- simply by using a GNS hostname like friend.gnu. Once
- people have added a person to their GNS they can
- immediately message, exchange files and suchlike directly,
- with nothing but the GNUnet in the middle, using
- applications that have been distributed with unix systems
- ever since the 1980's. We can produce an OS distribution
- where these things work out of the box with the nicknames
- of people instead of cloud services. For more information
- and context, read
- {% endtrans %}
- <a href="https://bugs.gnunet.org/view.php?id=4625">bug id 4625</a>.
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> lynX & dvn
- {% endtrans %}
- </p>
- </section>
- <!-- Past projects: Previously proposed, but left unfinished. Inspiration
for students. -->
- <h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2>
- <section>
- <h4>Rust APIs for GNUnet services</h4>
- <p>
- {% trans %}
- There are a variety of GNUNet APIs that should be
- exposed in the Rust wrappers. Implementing these will
- require extending the port of GNUNet utils written by
- Andrew Cann and Kelong Cong.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- As an introduction to the code base, we suggest that the
- student and Jeff Burdges together update the
- asynchronous IO system from gjio to futures-rs or
- another layer built upon it. Jeff Burdges is expected
- to concurrently be implementing a GNUNet API for his own
- mix network work.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Jeff Burdges
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: Rust
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: low
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Tor compatibility for GNUnet</h4>
- <p>
- {% trans %}
- Implement the AnycastExit spec to enable GNUnet clients
- to connect over Tor.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Jeff Burdges
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Note: There was a Special TLDs spec to allow Tor to
- resolve domain names using GNS over Tor too, but
- currently that's on hold until folks think more about
- how names should be moved around the local system. We're
- calling this more collaborative approach NSS2 for now.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: C
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: medium
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>RESTful GNUnet</h4>
- <p>
- {% trans %}
- Design and implementation
- of <a href="http://jsonapi.org/">REST APIs</a> that expose
- the
- <a href="https://gnunet.org/doxygen/modules.html">GNUnet API</a>
- so that easy, hands-on development is
- possible. Also, browser-based UIs will be much easier to
- create on top of REST APIs.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Martin Schanzenbach
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Rust implementation of GNUnet utils</h4>
- <p>
- {% trans %}
- Improve the Rust implementation of GNUnet utils, possibly
- including adding support for asynchronous IO using mio, or
- perhaps a higher level asynchronous IO library built upon
- it, such as rotor, mioco, eventual_io, or gj.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Jeff Burdges
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Android compatibility for GNUnet</h4>
- <p>
- {% trans %}
- Implement rudimentary Android compatibility for GNUnet,
- in part by porting the GNUnet utils scheduler to act as
- a thin wrapper over libuv.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Jeff Burdges and Christian Grothoff
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Implementation of a replacement for PANDA</h4>
- <p>
- {% trans %}
- Implementation of a replacement for PANDA (see Pond)
- with better security, and maybe integration with the GNU
- Name System for key exchange.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Jeff Burdges
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: Rust or C, crypto
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: high
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>secushare: Implement social networking features on top of pubsub
channels</h4>
- <p>
- {% trans %}
- Implement different place types and file sharing by
- creating a new place for the shared content.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Place types to be implemented:
- {% endtrans %}
- </p>
- {% trans %}
- <ul>
- <li>File: generic file with comments</li>
- <li>Image: display an image with comments referencing a region of the
image</li>
- <li>Sound: play a sound file with comments referencing a timestamp</li>
- <li>Directory/Album: pointers to File / Image / Sound places</li>
- <li>Event: with RSVP</li>
- <li>Survey: ask your social neighborhood questions in a structured
form</li>
- </ul>
- {% endtrans %}
- <p>
- {% trans %}
- Also provide the following UI functionality:
- {% endtrans %}
- </p>
- {% trans %}
- <ul>
- <li>Fork existing channels, reorganize people into new chatrooms or
channels.</li>
- <li>Share a post (edit and repost something elsewhere, on a fan page for
example).</li>
- <li>Edit a previously published post + offer edit history to
readers.</li>
- <li>Control expiry of channel history.</li>
- </ul>
- {% endtrans %}
- <p>
- {% trans %}
- See also <a
href="http://secushare.org/features">http://secushare.org/features</a>
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> lynX
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: C/C++
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: high
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>secushare: Implement a Social Graph API for contact adoption and
more</h4>
- <p>
- {% trans %}
- Implement aggregation of distributed state from
- various channels
- in order to provide for a powerful social graph API capable of
- producing social network profiles, dashboards,
- a calendar out of
- upcoming event invitations (if available),
- social search functionality
- and most of all to make it easy for users to
- adopt cryptographic
- identities of their contacts/friends simply by finding
- them in the
- social graph of their
- existing contacts ("This is Linda. You have 11
- contacts in common with her. [ADD]").
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Related to
- <a href="http://secushare.org/rendezvous">secushare.org/rendezvous</a>
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> t3sserakt, lynX
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: C
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: high
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>secushare: Implement integration with tradition e-mail</h4>
- {% trans %}
- <ul>
- <li>
- Emulate IMAP/SMTP protocols as necessary to transform
- traditional mail clients into secushare user
- interfaces.
- </li>
- <li>
- Think of ways to map e-mail addresses to secushare
- identities.
- </li>
- <li>
- Encode or translate various e-mail features into
- secushare equivalents.
- </li>
- <li>
- Parts of secushare are currently written in Rust,
- therefore Rust is preferred for this task but it is
- not an requirement.
- </li>
- </ul>
- {% endtrans %}
- <p>
- {% trans %}
- <strong>Mentors:</strong> t3sserakt, lynX
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: C
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: high
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>GNUnet auction</h4>
- <p>
- {% trans %}
- Implementation of the GNUnet auction system described in
- Chapter 3 of
- <a href="https://gnunet.org/libbrand-thesis">this thesis</a>.
- Specific tasks are adding smart
- contract creation and round time enforcement to
- libbrandt as well as creating the
- GNUnet auction service, library and the three user interface
- programs create, info and join.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> mate, cg
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: C
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: medium
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Implementation of additional transports</h4>
- <p>
- {% trans %}
- Implementation of additional transports to make GNUnet communication
- more robust in the presence of problematic networks:
- GNUnet-over-SMTP, GNUnet-over-DNS
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Matthias Wachs
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Implementation of ALG-based NAT traversal methods</h4>
- <p>
- {% trans %}
- Implementation of ALG-based NAT traversal methods (FTP/SIP-based hole
- punching, better STUN support)
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Matthias Wachs
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Integration of the GNU Name System with GnuPG</h4>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Matthias Wachs, Christian Grothoff, Jeff
Burdges
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>libaboss improvements</h4>
- <p>
- {% trans %}
- Improving libaboss to make computation on shared secrets (including
- repeated multiplication) based
- on <a href="https://dl.acm.org/citation.cfm?doid=62212.62213">Ben-Or
- et al.</a> if possible. This in particular means moving libaboss to
- bignums (gcry_mpi).
- {% endtrans %}
- </p>
- <p><strong>Mentors:</strong> Krista Grothoff, Jeff Burdges</p>
- </section>
- <section>
- <h4>Implementation of a replacement for PANDA</h4>
- <p>
- {% trans %}
- Implementation of a replacement for PANDA (see Pond) with better
- security, and maybe integration with the GNU Name System for key
- exchange.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Jeff Burdges
- {% endtrans %}
- </p>
- </section>
- <section>
- <h4>Supporting GNU Guix's package distribution</h4>
- <p>
- {% trans %}
- Please refer to the description for this project listed under
- GNU Guix project ideas.
- {% endtrans %}
- </p>
- </section>
- <h2><a name="finished" class="subnav-anchor"></a>{{ _("Finished projects")
}}</h2>
- <!-- Commentary: Finished projects, descriptions and Links to write-ups
about them. -->
- <h3>2018</h3>
- <section>
- <h4>GNUnet Web-based User Interface</h4>
- <p>
- {% trans %}
- Implementation of a Web-based UI for GNUnet similar to
- GNUnet-Gtk with a yet to be determined framework such as
- Angular2. This includes the design and implementation of
- not yet existing <a href="http://jsonapi.org/">REST APIs</a>
- that expose the
- <a href="https://gnunet.org/doxygen/modules.html">GNUnet API</a>.
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- <strong>Mentors:</strong> Martin Schanzenbach
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Required Skills: C, JavaScript, CSS
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Difficulty level: medium
- {% endtrans %}
- </p>
- <p>
- {% trans %}
- Report: <a href="gsoc-2018-gnunet-webui.html">GSoC 2018: GNUnet
WebUI</a>
- {% endtrans %}
- </p>
- </section>
+ <section>
+ <h4>Enable all networking applications to run over GNUnet out of the
box</h4>
+ <p>
+ {% trans %}
+ One great problem of the current Internet is the lack of
+ disintermediation. When people want to talk they need a
+ chat service. When they want to share files they need a
+ file transfer service. Although GNUnet already possesses
+ quite advanced integration into Linux networking, a little
+ extra work is needed for existing applications like irc,
+ www, ftp, rsh, nntpd to run over it in a peer-to-peer way,
+ simply by using a GNS hostname like friend.gnu. Once
+ people have added a person to their GNS they can
+ immediately message, exchange files and suchlike directly,
+ with nothing but the GNUnet in the middle, using
+ applications that have been distributed with unix systems
+ ever since the 1980's. We can produce an OS distribution
+ where these things work out of the box with the nicknames
+ of people instead of cloud services. For more information
+ and context, read
+ {% endtrans %}
+ <a href="https://bugs.gnunet.org/view.php?id=4625">bug id 4625</a>.
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> lynX & dvn
+ {% endtrans %}
+ </p>
+ </section>
+ <!-- Past projects: Previously proposed, but left unfinished.
Inspiration for students. -->
+ <h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects")
}}</h2>
+ <section>
+ <h4>Rust APIs for GNUnet services</h4>
+ <p>
+ {% trans %}
+ There are a variety of GNUNet APIs that should be
+ exposed in the Rust wrappers. Implementing these will
+ require extending the port of GNUNet utils written by
+ Andrew Cann and Kelong Cong.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ As an introduction to the code base, we suggest that the
+ student and Jeff Burdges together update the
+ asynchronous IO system from gjio to futures-rs or
+ another layer built upon it. Jeff Burdges is expected
+ to concurrently be implementing a GNUNet API for his own
+ mix network work.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Jeff Burdges
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: Rust
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: low
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Tor compatibility for GNUnet</h4>
+ <p>
+ {% trans %}
+ Implement the AnycastExit spec to enable GNUnet clients
+ to connect over Tor.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Jeff Burdges
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Note: There was a Special TLDs spec to allow Tor to
+ resolve domain names using GNS over Tor too, but
+ currently that's on hold until folks think more about
+ how names should be moved around the local system. We're
+ calling this more collaborative approach NSS2 for now.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: C
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: medium
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>RESTful GNUnet</h4>
+ <p>
+ {% trans %}
+ Design and implementation
+ of <a href="http://jsonapi.org/">REST APIs</a> that expose
+ the
+ <a href="https://gnunet.org/doxygen/modules.html">GNUnet API</a>
+ so that easy, hands-on development is
+ possible. Also, browser-based UIs will be much easier to
+ create on top of REST APIs.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Martin Schanzenbach
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Rust implementation of GNUnet utils</h4>
+ <p>
+ {% trans %}
+ Improve the Rust implementation of GNUnet utils, possibly
+ including adding support for asynchronous IO using mio, or
+ perhaps a higher level asynchronous IO library built upon
+ it, such as rotor, mioco, eventual_io, or gj.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Jeff Burdges
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Android compatibility for GNUnet</h4>
+ <p>
+ {% trans %}
+ Implement rudimentary Android compatibility for GNUnet,
+ in part by porting the GNUnet utils scheduler to act as
+ a thin wrapper over libuv.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Jeff Burdges and Christian Grothoff
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Implementation of a replacement for PANDA</h4>
+ <p>
+ {% trans %}
+ Implementation of a replacement for PANDA (see Pond)
+ with better security, and maybe integration with the GNU
+ Name System for key exchange.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Jeff Burdges
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: Rust or C, crypto
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: high
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>secushare: Implement social networking features on top of pubsub
channels</h4>
+ <p>
+ {% trans %}
+ Implement different place types and file sharing by
+ creating a new place for the shared content.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Place types to be implemented:
+ {% endtrans %}
+ </p>
+ {% trans %}
+ <ul>
+ <li>File: generic file with comments</li>
+ <li>Image: display an image with comments referencing a region of
the image</li>
+ <li>Sound: play a sound file with comments referencing a
timestamp</li>
+ <li>Directory/Album: pointers to File / Image / Sound places</li>
+ <li>Event: with RSVP</li>
+ <li>Survey: ask your social neighborhood questions in a structured
form</li>
+ </ul>
+ {% endtrans %}
+ <p>
+ {% trans %}
+ Also provide the following UI functionality:
+ {% endtrans %}
+ </p>
+ {% trans %}
+ <ul>
+ <li>Fork existing channels, reorganize people into new chatrooms or
channels.</li>
+ <li>Share a post (edit and repost something elsewhere, on a fan page
for example).</li>
+ <li>Edit a previously published post + offer edit history to
readers.</li>
+ <li>Control expiry of channel history.</li>
+ </ul>
+ {% endtrans %}
+ <p>
+ {% trans %}
+ See also <a
href="http://secushare.org/features">http://secushare.org/features</a>
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> lynX
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: C/C++
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: high
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>secushare: Implement a Social Graph API for contact adoption and
more</h4>
+ <p>
+ {% trans %}
+ Implement aggregation of distributed state from
+ various channels
+ in order to provide for a powerful social graph API capable of
+ producing social network profiles, dashboards,
+ a calendar out of
+ upcoming event invitations (if available),
+ social search functionality
+ and most of all to make it easy for users to
+ adopt cryptographic
+ identities of their contacts/friends simply by finding
+ them in the
+ social graph of their
+ existing contacts ("This is Linda. You have 11
+ contacts in common with her. [ADD]").
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Related to
+ <a
href="http://secushare.org/rendezvous">secushare.org/rendezvous</a>
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> t3sserakt, lynX
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: C
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: high
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>secushare: Implement integration with tradition e-mail</h4>
+ {% trans %}
+ <ul>
+ <li>
+ Emulate IMAP/SMTP protocols as necessary to transform
+ traditional mail clients into secushare user
+ interfaces.
+ </li>
+ <li>
+ Think of ways to map e-mail addresses to secushare
+ identities.
+ </li>
+ <li>
+ Encode or translate various e-mail features into
+ secushare equivalents.
+ </li>
+ <li>
+ Parts of secushare are currently written in Rust,
+ therefore Rust is preferred for this task but it is
+ not an requirement.
+ </li>
+ </ul>
+ {% endtrans %}
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> t3sserakt, lynX
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: C
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: high
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>GNUnet auction</h4>
+ <p>
+ {% trans %}
+ Implementation of the GNUnet auction system described in
+ Chapter 3 of
+ <a href="https://gnunet.org/libbrand-thesis">this thesis</a>.
+ Specific tasks are adding smart
+ contract creation and round time enforcement to
+ libbrandt as well as creating the
+ GNUnet auction service, library and the three user interface
+ programs create, info and join.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> mate, cg
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: C
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: medium
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Implementation of additional transports</h4>
+ <p>
+ {% trans %}
+ Implementation of additional transports to make GNUnet
communication
+ more robust in the presence of problematic networks:
+ GNUnet-over-SMTP, GNUnet-over-DNS
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Matthias Wachs
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Implementation of ALG-based NAT traversal methods</h4>
+ <p>
+ {% trans %}
+ Implementation of ALG-based NAT traversal methods (FTP/SIP-based
hole
+ punching, better STUN support)
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Matthias Wachs
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Integration of the GNU Name System with GnuPG</h4>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Matthias Wachs, Christian Grothoff, Jeff
Burdges
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>libaboss improvements</h4>
+ <p>
+ {% trans %}
+ Improving libaboss to make computation on shared secrets (including
+ repeated multiplication) based
+ on <a
href="https://dl.acm.org/citation.cfm?doid=62212.62213">Ben-Or
+ et al.</a> if possible. This in particular means moving libaboss
to
+ bignums (gcry_mpi).
+ {% endtrans %}
+ </p>
+ <p><strong>Mentors:</strong> Krista Grothoff, Jeff Burdges</p>
+ </section>
+ <section>
+ <h4>Implementation of a replacement for PANDA</h4>
+ <p>
+ {% trans %}
+ Implementation of a replacement for PANDA (see Pond) with better
+ security, and maybe integration with the GNU Name System for key
+ exchange.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Jeff Burdges
+ {% endtrans %}
+ </p>
+ </section>
+ <section>
+ <h4>Supporting GNU Guix's package distribution</h4>
+ <p>
+ {% trans %}
+ Please refer to the description for this project listed under
+ GNU Guix project ideas.
+ {% endtrans %}
+ </p>
+ </section>
+ <h2><a name="finished" class="subnav-anchor"></a>{{ _("Finished
projects") }}</h2>
+ <!-- Commentary: Finished projects, descriptions and Links to write-ups
about them. -->
+ <h3>2018</h3>
+ <section>
+ <h4>GNUnet Web-based User Interface</h4>
+ <p>
+ {% trans %}
+ Implementation of a Web-based UI for GNUnet similar to
+ GNUnet-Gtk with a yet to be determined framework such as
+ Angular2. This includes the design and implementation of
+ not yet existing <a href="http://jsonapi.org/">REST APIs</a>
+ that expose the
+ <a href="https://gnunet.org/doxygen/modules.html">GNUnet API</a>.
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ <strong>Mentors:</strong> Martin Schanzenbach
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Required Skills: C, JavaScript, CSS
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Difficulty level: medium
+ {% endtrans %}
+ </p>
+ <p>
+ {% trans %}
+ Report: <a href="gsoc-2018-gnunet-webui.html">GSoC 2018: GNUnet
WebUI</a>
+ {% endtrans %}
+ </p>
+ </section>
</div>
</div>
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [GNUnet-SVN] [www] branch master updated (c6f26b6 -> eebae0f), gnunet, 2019/07/01
- [GNUnet-SVN] [www] 07/11: install.html: fix layout, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 04/11: Merge branch 'master' of ssh://git.gnunet.org/www, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 01/11: minor fix, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 06/11: fix links for subnav, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 05/11: add menu to use.html; improve menu on gsoc.html; shorten long string, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 08/11: gsoc.html: indent,
gnunet <=
- [GNUnet-SVN] [www] 02/11: update po-files, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 09/11: update po-files, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 10/11: simplify, unify, check responsiveness, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 03/11: Merge branch 'master' of ssh://git.gnunet.org/www, gnunet, 2019/07/01
- [GNUnet-SVN] [www] 11/11: html encode dashes to satisfy po localization, gnunet, 2019/07/01