diff options
Diffstat (limited to 'template/gsoc.html.j2')
-rw-r--r-- | template/gsoc.html.j2 | 153 |
1 files changed, 113 insertions, 40 deletions
diff --git a/template/gsoc.html.j2 b/template/gsoc.html.j2 index 5a8066f4..6fdc58be 100644 --- a/template/gsoc.html.j2 +++ b/template/gsoc.html.j2 | |||
@@ -9,8 +9,8 @@ | |||
9 | <div class="row"> | 9 | <div class="row"> |
10 | <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation --> | 10 | <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation --> |
11 | <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed"> | 11 | <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed"> |
12 | <a class="nav-link" href="#current">{{ _("Ideas 2020") }}</a> | 12 | <a class="nav-link" href="#current">{{ _("Ideas 2021") }}</a> |
13 | <a class="nav-link" href="#past">{{ _("Past projects") }}</a> | 13 | <!--<a class="nav-link" href="#past">{{ _("Past projects") }}</a>--> |
14 | <a class="nav-link" href="#finished">{{ _("Finished projects") }}</a> | 14 | <a class="nav-link" href="#finished">{{ _("Finished projects") }}</a> |
15 | </nav> | 15 | </nav> |
16 | </div> | 16 | </div> |
@@ -26,7 +26,85 @@ | |||
26 | </section> | 26 | </section> |
27 | 27 | ||
28 | 28 | ||
29 | <h2><a name="current" class="subnav-anchor"></a>{{ _("Ideas 2020") }}</h2> | 29 | <h2><a name="current" class="subnav-anchor"></a>{{ _("Ideas 2021") }}</h2> |
30 | |||
31 | <section> | ||
32 | <h4>Transport Next Generation (TNG): Communicator plugins</h4> | ||
33 | <p> | ||
34 | {% trans %} | ||
35 | The GNUnet team is currently working on a transport layer rewrite | ||
36 | in order to fix core issues with connectivity. | ||
37 | This new component is currently developed under the name "TNG". | ||
38 | What is currently known as "transport plugins" will in the TNG | ||
39 | be represented as "communicators". | ||
40 | |||
41 | Communicators are processes with a well defined API that allow | ||
42 | to connect peers over a specific protocol. | ||
43 | The primary protocol which are already implemented are UNIX sockets, | ||
44 | UDP sockets, and TCP sockets. | ||
45 | |||
46 | For a truly resilient network, other connectivity options such as | ||
47 | WiFi mesh, Bluetooth, HTTP(S), QUIC or even more obscure alternatives | ||
48 | such as radio are required. | ||
49 | |||
50 | In this project, the goal is to select, implement and test new | ||
51 | communicators. | ||
52 | While TNG is not yet ready, communicators can, by design, be developed | ||
53 | and tested against the current API. | ||
54 | |||
55 | We expect that this project can be worked on by multiple students | ||
56 | as there are a lot of protocols to choose from. | ||
57 | The tasks would consist of: | ||
58 | <ol> | ||
59 | <li>Deciding which communicators to implement.</li> | ||
60 | <li>Test the communicators.</li> | ||
61 | <li>Documentation.</li> | ||
62 | </ol> | ||
63 | Advantageous skills/languages/frameworks: | ||
64 | <ol> | ||
65 | <li>C</li> | ||
66 | <li>Knowledge of HTTPS, QUIC, Bluetooth or WiFi.</li> | ||
67 | </ol> | ||
68 | <br/> | ||
69 | <strong>Difficulty:</strong> Average, but depends on selected protocols. | ||
70 | <br/> | ||
71 | <strong>Mentors:</strong> Martin Schanzenbach, t3sserakt | ||
72 | {% endtrans %} | ||
73 | </p> | ||
74 | </section> | ||
75 | |||
76 | <section> | ||
77 | <h4>REST: Multi-user support</h4> | ||
78 | <p> | ||
79 | {% trans %} | ||
80 | The REST API currently only supports a single user system. | ||
81 | This is an issue as on multi-user systems, access control | ||
82 | must be enfoced on a per-user basis. | ||
83 | |||
84 | In this project, the REST service must be extended to | ||
85 | support user authentication. | ||
86 | This includes the correct handling of user context switches. | ||
87 | <ol> | ||
88 | <li>Implement user authentication.</li> | ||
89 | <li>Test the access control.</li> | ||
90 | <li>Document the changes to the REST API.</li> | ||
91 | </ol> | ||
92 | Advantageous skills/languages/frameworks: | ||
93 | <ol> | ||
94 | <li>C</li> | ||
95 | <li>Knowledge of user authentication subsystems on Linux/Unix.</li> | ||
96 | <li>REST/HTTP Authentication methods</li> | ||
97 | </ol> | ||
98 | <br/> | ||
99 | <strong>Difficulty:</strong> Beginner | ||
100 | <br/> | ||
101 | <strong>Mentors:</strong> Martin Schanzenbach | ||
102 | {% endtrans %} | ||
103 | </p> | ||
104 | </section> | ||
105 | |||
106 | |||
107 | |||
30 | <section> | 108 | <section> |
31 | <h4>re:claimID/GNUnet Browser Plugin</h4> | 109 | <h4>re:claimID/GNUnet Browser Plugin</h4> |
32 | <p> | 110 | <p> |
@@ -103,8 +181,38 @@ | |||
103 | </p> | 181 | </p> |
104 | </section> | 182 | </section> |
105 | 183 | ||
184 | <section> | ||
185 | <h4>Rust templates for GNUnet services</h4> | ||
186 | <p> | ||
187 | {% trans %} | ||
188 | The goal is to either build upon the (outdated) <a href="https://github.com/canndrew/gnunet-rs">GNUnet Rust | ||
189 | bindings</a> or to follow the path of <a href="GNUnet Go">https://github.com/bfix/gnunet-go</a> | ||
190 | which tries to reimplement most of the GNUnet stack. | ||
191 | The end result should be an extension template for GNUnet in the form | ||
192 | of the existing <a href="https://git.gnunet.org/gnunet-ext.git/">C template</a> | ||
193 | which allows to quickly start implementing services and libraries | ||
194 | for GNUnet. | ||
195 | {% endtrans %} | ||
196 | </p> | ||
197 | <p> | ||
198 | {% trans %} | ||
199 | <strong>Mentors:</strong> Martin Schanzenbach | ||
200 | {% endtrans %} | ||
201 | </p> | ||
202 | <p> | ||
203 | {% trans %} | ||
204 | Required Skills: Solid knowledge of Rust and ideally asynchronuous IO. | ||
205 | {% endtrans %} | ||
206 | </p> | ||
207 | <p> | ||
208 | {% trans %} | ||
209 | Difficulty level: medium | ||
210 | {% endtrans %} | ||
211 | </p> | ||
212 | </section> | ||
213 | |||
106 | <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. --> | 214 | <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. --> |
107 | <h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2> | 215 | <!--<h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2> |
108 | <p> | 216 | <p> |
109 | Past projects: Previously proposed, but left unfinished. Inspiration for students. | 217 | Past projects: Previously proposed, but left unfinished. Inspiration for students. |
110 | </p> | 218 | </p> |
@@ -183,42 +291,6 @@ | |||
183 | </p> | 291 | </p> |
184 | </section> | 292 | </section> |
185 | <section> | 293 | <section> |
186 | <h4>Rust APIs for GNUnet services</h4> | ||
187 | <p> | ||
188 | {% trans %} | ||
189 | There are a variety of GNUNet APIs that should be | ||
190 | exposed in the Rust wrappers. Implementing these will | ||
191 | require extending the port of GNUNet utils written by | ||
192 | Andrew Cann and Kelong Cong. | ||
193 | {% endtrans %} | ||
194 | </p> | ||
195 | <p> | ||
196 | {% trans %} | ||
197 | As an introduction to the code base, we suggest that the | ||
198 | student and Jeff Burdges together update the | ||
199 | asynchronous IO system from gjio to futures-rs or | ||
200 | another layer built upon it. Jeff Burdges is expected | ||
201 | to concurrently be implementing a GNUNet API for his own | ||
202 | mix network work. | ||
203 | {% endtrans %} | ||
204 | </p> | ||
205 | <p> | ||
206 | {% trans %} | ||
207 | <strong>Mentors:</strong> Jeff Burdges | ||
208 | {% endtrans %} | ||
209 | </p> | ||
210 | <p> | ||
211 | {% trans %} | ||
212 | Required Skills: Rust | ||
213 | {% endtrans %} | ||
214 | </p> | ||
215 | <p> | ||
216 | {% trans %} | ||
217 | Difficulty level: low | ||
218 | {% endtrans %} | ||
219 | </p> | ||
220 | </section> | ||
221 | <section> | ||
222 | <h4>Tor compatibility for GNUnet</h4> | 294 | <h4>Tor compatibility for GNUnet</h4> |
223 | <p> | 295 | <p> |
224 | {% trans %} | 296 | {% trans %} |
@@ -520,6 +592,7 @@ | |||
520 | {% endtrans %} | 592 | {% endtrans %} |
521 | </p> | 593 | </p> |
522 | </section> | 594 | </section> |
595 | --> | ||
523 | <h2><a name="finished" class="subnav-anchor"></a>{{ _("Finished projects") }}</h2> | 596 | <h2><a name="finished" class="subnav-anchor"></a>{{ _("Finished projects") }}</h2> |
524 | <!-- Commentary: Finished projects, descriptions and Links to write-ups about them. --> | 597 | <!-- Commentary: Finished projects, descriptions and Links to write-ups about them. --> |
525 | <h3>2019</h3> | 598 | <h3>2019</h3> |