gnunet-svn
[Top][All Lists]
Advanced

[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 &amp; 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 &amp; 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]