Roger Dingledine commited on 2008-03-11 22:57:02
Zeige 1 geänderte Dateien mit 64 Einfügungen und 38 Löschungen.
... | ... |
@@ -91,6 +91,16 @@ Farsi translations, for the many Tor users in censored areas.</li> |
91 | 91 |
<a id="Summer"></a> |
92 | 92 |
<a id="Projects"></a> |
93 | 93 |
<h2><a class="anchor" href="#Projects">Good Coding Projects</a></h2> |
94 |
+ |
|
95 |
+<p> |
|
96 |
+You may find some of these projects to be good <a href="<page |
|
97 |
+gsoc>">Google Summer of Code 2008</a> ideas. We have labelled each idea |
|
98 |
+with how important it is to the overall Tor project to get this started |
|
99 |
+(priority), how much work we expect it would be (effort level), how much |
|
100 |
+clue you should start with (skill level), and which of our <a href="<page |
|
101 |
+people>#Core">core developers</a> would be good mentors. |
|
102 |
+</p> |
|
103 |
+ |
|
94 | 104 |
<ol> |
95 | 105 |
|
96 | 106 |
<li> |
... | ... |
@@ -102,15 +112,18 @@ Effort Level: <i>High</i> |
102 | 112 |
<br /> |
103 | 113 |
Skill Level: <i>High</i> |
104 | 114 |
<br /> |
105 |
-Likely Mentors: <i>Matt, others</i> |
|
115 |
+Likely Mentors: <i>Matt, Jacob</i> |
|
106 | 116 |
<br /> |
107 | 117 |
We're in need of a good updating framework. |
108 | 118 |
Vidalia already has the ability to notice when the user is running an |
109 |
-outdated or unrecommended version of Tor. Currently, Vidalia simply pops |
|
119 |
+outdated or unrecommended version of Tor, using signed statements inside |
|
120 |
+the Tor directory information. Currently, Vidalia simply pops |
|
110 | 121 |
up a little message box that lets the user know they should manually |
111 | 122 |
upgrade. The goal of this project would be to extend Vidalia with the |
112 | 123 |
ability to also fetch and install the updated Tor software for the |
113 |
-user. Time permitting, we would also like to be able to update other |
|
124 |
+user. We should do the fetches via Tor when possible, but also fall back |
|
125 |
+to direct fetches in a smart way. Time permitting, we would also like |
|
126 |
+to be able to update other |
|
114 | 127 |
applications included in the bundled installers, such as Polipo and |
115 | 128 |
Vidalia itself. |
116 | 129 |
<br /> |
... | ... |
@@ -133,7 +146,7 @@ with the student prior to implementation. |
133 | 146 |
</li> |
134 | 147 |
|
135 | 148 |
<li> |
136 |
-<b>An Improved and More Usable Network Map</b> |
|
149 |
+<b>An Improved and More Usable Network Map in Vidalia</b> |
|
137 | 150 |
<br /> |
138 | 151 |
Priority: <i>Medium</i> |
139 | 152 |
<br /> |
... | ... |
@@ -141,7 +154,7 @@ Effort Level: <i>Medium</i> |
141 | 154 |
<br /> |
142 | 155 |
Skill Level: <i>Medium to High</i> |
143 | 156 |
<br /> |
144 |
-Likely Mentors: <i>Matt, others</i> |
|
157 |
+Likely Mentors: <i>Matt</i> |
|
145 | 158 |
<br /> |
146 | 159 |
One of Vidalia's existing features is a network map that shows the user |
147 | 160 |
the approximate geographic location of relays in the Tor network and |
... | ... |
@@ -152,8 +165,8 @@ that gives us a better quality map and enables improved interactivity, |
152 | 165 |
such as allowing the user to click on individual relays or circuits to |
153 | 166 |
display additional information. We might also consider adding the ability |
154 | 167 |
for users to click on a particular relay or a country containing one or |
155 |
-more Tor exit relays and say, ``I want my connections to foo.com to exit |
|
156 |
-from here.'' |
|
168 |
+more Tor exit relays and say, "I want my connections to foo.com to exit |
|
169 |
+from here." |
|
157 | 170 |
<br /> |
158 | 171 |
This project will first involve the student getting familiar with Vidalia |
159 | 172 |
and the Marble widget's API. The student will then integrate the widget |
... | ... |
@@ -167,7 +180,7 @@ required. |
167 | 180 |
</li> |
168 | 181 |
|
169 | 182 |
<li> |
170 |
-<b>Better Debian Packaging and Debian Packaging Support</b> |
|
183 |
+<b>Better Debian Packaging for Tor+Vidalia</b> |
|
171 | 184 |
<br /> |
172 | 185 |
Priority: <i>High</i> |
173 | 186 |
<br /> |
... | ... |
@@ -175,16 +188,17 @@ Effort Level: <i>Medium</i> |
175 | 188 |
<br /> |
176 | 189 |
Skill Level: <i>Medium</i> |
177 | 190 |
<br /> |
178 |
-Likely Mentors: <i>Weasel, Matt, others</i> |
|
191 |
+Likely Mentors: <i>Peter, Matt</i> |
|
179 | 192 |
<br /> |
180 | 193 |
Vidalia currently doesn't play nicely on Debian and Ubuntu with the |
181 | 194 |
default Tor packages. The current Tor packages automatically start Tor |
182 | 195 |
as a daemon running as the debian-tor user and (sensibly) do not have a |
183 |
-CntrolPort defined in the default torrc. Consequently, Vidalia will try |
|
196 |
+<a href="<svnsandbox>doc/spec/control-spec.txt">ControlPort</a> defined |
|
197 |
+in the default torrc. Consequently, Vidalia will try |
|
184 | 198 |
to start its own Tor process since it could not connect to the existing |
185 | 199 |
Tor, and then Vidalia's Tor process will then exit with an error message |
186 | 200 |
the user likely doesn't understand since Tor cannot bind its listening |
187 |
-ports--they're already in use by the original Tor daemon. |
|
201 |
+ports — they're already in use by the original Tor daemon. |
|
188 | 202 |
<br /> |
189 | 203 |
The current solution involves either telling the user to stop the |
190 | 204 |
existing Tor daemon and let Vidalia start its own Tor process, or |
... | ... |
@@ -192,8 +206,8 @@ explaining to the user how to set a control port and password in their |
192 | 206 |
torrc. A better solution on Debian would be to use Tor's ControlSocket, |
193 | 207 |
which allows Vidalia to talk to Tor via a Unix domain socket, and could |
194 | 208 |
possibly be enabled by default in Tor's Debian packages. Vidalia can |
195 |
-then authenticate to Tor using cookie authentication if the user running |
|
196 |
-Vidalia is also in the debian-tor group. |
|
209 |
+then authenticate to Tor using filesystem-based (cookie) authentication |
|
210 |
+if the user running Vidalia is also in the debian-tor group. |
|
197 | 211 |
<br /> |
198 | 212 |
This project will first involve adding support for Tor's ControlSocket |
199 | 213 |
to Vidalia. The student will then develop and test Debian and Ubuntu |
... | ... |
@@ -201,13 +215,23 @@ packages for Vidalia that conform to Debian's packaging standards and |
201 | 215 |
making sure it works well with the existing Tor packages. We can also |
202 | 216 |
set up an apt repository to host the new Vidalia packages. |
203 | 217 |
<br /> |
218 |
+The next challenge would be to find an intuitive usable way for Vidalia |
|
219 |
+to be able to change Tor's configuration (torrc) even though it is |
|
220 |
+located in <code>/etc/tor/torrc</code> and thus immutable. The best |
|
221 |
+idea we've come up with so far is to feed Tor a new configuration via |
|
222 |
+the ControlSocket when Vidalia starts, but that's bad because Tor starts |
|
223 |
+with a different configuration than the user wants. The second best idea |
|
224 |
+we've come up with is for Vidalia to write out a temporary torrc file |
|
225 |
+and ask the user to manually move it to <code>/etc/tor/torrc</code>, |
|
226 |
+but that's bad because users shouldn't have to mess with files directly. |
|
227 |
+<br /> |
|
204 | 228 |
A student undertaking this project should have prior knowledge of |
205 | 229 |
Debian package management and some C++ development experience. Previous |
206 | 230 |
experience with Qt is helpful, but not required. |
207 | 231 |
</li> |
208 | 232 |
|
209 | 233 |
<li> |
210 |
-<b>Tor Status Event Interface</b> |
|
234 |
+<b>Tor Controller Status Event Interface</b> |
|
211 | 235 |
<br /> |
212 | 236 |
Priority: <i>Medium</i> |
213 | 237 |
<br /> |
... | ... |
@@ -215,13 +239,13 @@ Effort Level: <i>Medium</i> |
215 | 239 |
<br /> |
216 | 240 |
Skill Level: <i>Medium</i> |
217 | 241 |
<br /> |
218 |
-Likely Mentors: <i>Matt, others</i> |
|
242 |
+Likely Mentors: <i>Matt, Roger</i> |
|
219 | 243 |
<br /> |
220 |
-There are a number of status changes of which the user may need |
|
244 |
+There are a number of status changes inside Tor of which the user may need |
|
221 | 245 |
to be informed. For example, if the user is trying to set up a Tor |
222 | 246 |
relay and Tor decides the user's relay is not reachable from outside |
223 | 247 |
the user's network, we should alert the user. Currently, all the user |
224 |
-gets is a couple log messages in Vidalia's 'message log', which they |
|
248 |
+gets is a couple log messages in Vidalia's 'message log' window, which they |
|
225 | 249 |
likely never see since they don't receive a notification that something |
226 | 250 |
has gone wrong. Even if the user does actually look at the message log, |
227 | 251 |
most of the messages make little sense to the novice user. |
... | ... |
@@ -236,7 +260,7 @@ displaying Tor status events to the user. For example, we might put a |
236 | 260 |
little badge on Vidalia's tray icon that alerts the user to new status |
237 | 261 |
events they should look at. Double-clicking the icon could bring up a |
238 | 262 |
dialog that summarizes recent status events in simple terms and maybe |
239 |
-suggests a remedy for any negative statuses if they can be corrected by |
|
263 |
+suggests a remedy for any negative events if they can be corrected by |
|
240 | 264 |
the user. Of course, this is just an example and the student is free to |
241 | 265 |
suggest another approach. |
242 | 266 |
<br /> |
... | ... |
@@ -258,12 +282,12 @@ Effort Level: <i>Medium</i> |
258 | 282 |
<br /> |
259 | 283 |
Skill Level: <i>Medium</i> |
260 | 284 |
<br /> |
261 |
-Likely Mentors: <i>Jacob, others</i> |
|
285 |
+Likely Mentors: <i>Jacob</i> |
|
262 | 286 |
<br /> |
263 |
-We require a way to edit and translate sections of the website — |
|
287 |
+We need a way to edit and translate sections of the website — |
|
264 | 288 |
possibly resulting in a patch for the official svn tree. The current |
265 | 289 |
"cost" of publication of website changes is quite high even for English |
266 |
-language users. They need to check out our template files, translate them |
|
290 |
+language users. They need to check out our template files, translate them, |
|
267 | 291 |
and send us the translation. For a single word change or any type of |
268 | 292 |
minor change, the page may never be corrected or translated. It would |
269 | 293 |
be nice to have a wiki that was specifically geared towards translation |
... | ... |
@@ -285,7 +309,7 @@ Effort Level: <i>Low</i> |
285 | 309 |
<br /> |
286 | 310 |
Skill Level: <i>Low to Medium</i> |
287 | 311 |
<br /> |
288 |
-Likely Mentors: <i>Jacob, others</i> |
|
312 |
+Likely Mentors: <i>Jacob</i> |
|
289 | 313 |
<br /> |
290 | 314 |
We currently have a functional web page to detect if Tor is working. It |
291 | 315 |
is has a few places where it falls short. It requires improvements with |
... | ... |
@@ -310,7 +334,7 @@ Effort Level: <i>Low</i> |
310 | 334 |
<br /> |
311 | 335 |
Skill Level: <i>Low</i> |
312 | 336 |
<br /> |
313 |
-Likely Mentors: <i>Jacob, Tup, others</i> |
|
337 |
+Likely Mentors: <i>Jacob, Tup</i> |
|
314 | 338 |
<br /> |
315 | 339 |
The exitlist software is written by our fabulous anonymous |
316 | 340 |
contributer Tup. It's a DNS server written in Haskell that supports part of our <a |
... | ... |
@@ -337,7 +361,7 @@ Effort Level: <i>Medium</i> |
337 | 361 |
<br /> |
338 | 362 |
Skill Level: <i>Medium</i> |
339 | 363 |
<br /> |
340 |
-Likely Mentors: <i>Jacob, Mike, others</i> |
|
364 |
+Likely Mentors: <i>Jacob, Mike</i> |
|
341 | 365 |
<br /> |
342 | 366 |
The Tor project currently lacks a solid test to ensure that a |
343 | 367 |
user has a properly configured web browser. It should test for as |
... | ... |
@@ -366,7 +390,7 @@ Effort Level: <i>High</i> |
366 | 390 |
<br /> |
367 | 391 |
Skill Level: <i>Medium to High</i> |
368 | 392 |
<br /> |
369 |
-Likely Mentors: <i>Roger, others</i> |
|
393 |
+Likely Mentors: <i>Roger</i> |
|
370 | 394 |
<br /> |
371 | 395 |
Tor needs even better censorship resistance mechanisms. There are |
372 | 396 |
several mechanisms that can help. Tor should be able listen on multiple |
... | ... |
@@ -384,7 +408,7 @@ Effort Level: <i>High</i> |
384 | 408 |
<br /> |
385 | 409 |
Skill Level: <i>Medium to High</i> |
386 | 410 |
<br /> |
387 |
-Likely Mentors: <i>Nick, others</i> |
|
411 |
+Likely Mentors: <i>Nick</i> |
|
388 | 412 |
<br /> |
389 | 413 |
Tor should make better use of the more recent features of Niels Provos's |
390 | 414 |
Libevent library. Libevent already provides HTTP and socket buffers; |
... | ... |
@@ -402,7 +426,7 @@ Effort Level: <i>Medium</i> |
402 | 426 |
<br /> |
403 | 427 |
Skill Level: <i>Medium to High</i> |
404 | 428 |
<br /> |
405 |
-Likely Mentors: <i>Roger, others</i> |
|
429 |
+Likely Mentors: <i>Roger</i> |
|
406 | 430 |
<br /> |
407 | 431 |
Tor should possibly measure bandwidth in a distributed way, as in the |
408 | 432 |
<a href="http://freehaven.net/anonbib/">"A Tuneup for Tor"</a> paper |
... | ... |
@@ -422,7 +446,7 @@ Effort Level: <i>Medium</i> |
422 | 446 |
<br /> |
423 | 447 |
Skill Level: <i>Medium</i> |
424 | 448 |
<br /> |
425 |
-Likely Mentors: <i>Jacob, Phobos, others</i> |
|
449 |
+Likely Mentors: <i>Jacob, Andrew</i> |
|
426 | 450 |
<br /> |
427 | 451 |
It would be useful to have automated build processes for Windows and |
428 | 452 |
probably other platforms. The purpose of having a continuous integration |
... | ... |
@@ -458,7 +482,7 @@ Effort Level: <i>Medium</i> |
458 | 482 |
<br /> |
459 | 483 |
Skill Level: <i>Medium</i> |
460 | 484 |
<br /> |
461 |
-Likely Mentors: <i>Nick, others</i> |
|
485 |
+Likely Mentors: <i>Nick</i> |
|
462 | 486 |
<br /> |
463 | 487 |
Tor needs to be far more tested. This is a multi-part effort. To start |
464 | 488 |
with, our unit test coverage should rise substantially, especially in |
... | ... |
@@ -477,13 +501,13 @@ changes in performance on machines in different roles automatically.<br /> |
477 | 501 |
<li> |
478 | 502 |
<b>Help revive the Java community around Tor</b> |
479 | 503 |
<br /> |
480 |
-Priority: <i>High</i> |
|
504 |
+Priority: <i>Medium</i> |
|
481 | 505 |
<br /> |
482 | 506 |
Effort Level: <i>High</i> |
483 | 507 |
<br /> |
484 | 508 |
Skill Level: <i>Medium to High</i> |
485 | 509 |
<br /> |
486 |
-Likely Mentors: <i>Karsten, others</i> |
|
510 |
+Likely Mentors: <i>Karsten</i> |
|
487 | 511 |
<br /> |
488 | 512 |
Reanimate one of the approaches to implement a Tor client in Java, |
489 | 513 |
e.g. the <a href="http://onioncoffee.sourceforge.net/">OnionCoffee |
... | ... |
@@ -497,8 +521,8 @@ providing Tor hidden services would be neat, but not required. The |
497 | 521 |
student should be able to understand and write new Java code, including |
498 | 522 |
a Java cryptography API. Being able to read C code would be helpful, |
499 | 523 |
too. The student should be willing to read the existing documentation, |
500 |
-implement code based on it, and, if required, refine the documentation |
|
501 |
-if things are underdocumented. This project is mostly about coding and |
|
524 |
+implement code based on it, and refine the documentation |
|
525 |
+when things are underdocumented. This project is mostly about coding and |
|
502 | 526 |
to a small degree about design. |
503 | 527 |
</li> |
504 | 528 |
|
... | ... |
@@ -511,7 +535,7 @@ Effort Level: <i>Medium</i> |
511 | 535 |
<br /> |
512 | 536 |
Skill Level: <i>Medium</i> |
513 | 537 |
<br /> |
514 |
-Likely Mentors: <i>Roger, others</i> |
|
538 |
+Likely Mentors: <i>Karsten, Roger</i> |
|
515 | 539 |
<br /> |
516 | 540 |
Write a tool that runs automatic system tests in addition |
517 | 541 |
to the existing unit tests. The Java-based Tor simulator <a |
... | ... |
@@ -539,7 +563,7 @@ Effort Level: <i>Medium</i> |
539 | 563 |
<br /> |
540 | 564 |
Skill Level: <i>Low to Medium</i> |
541 | 565 |
<br /> |
542 |
-Likely Mentors: <i>Karsten, Jacob, others</i> |
|
566 |
+Likely Mentors: <i>Karsten, Jacob</i> |
|
543 | 567 |
<br /> |
544 | 568 |
Implement a <a href="http://www.ss64.com/bash/top.html">top-like</a> |
545 | 569 |
management tool for Tor relays. The purpose of such a tool would be |
... | ... |
@@ -705,7 +729,7 @@ Effort Level: <i>High</i> |
705 | 729 |
<br /> |
706 | 730 |
Skill Level: <i>Medium to High</i> |
707 | 731 |
<br /> |
708 |
-Likely Mentors: <i>Roger, others</i> |
|
732 |
+Likely Mentors: <i>Steven, Roger</i> |
|
709 | 733 |
<br /> |
710 | 734 |
Help port <a |
711 | 735 |
href="http://www.pps.jussieu.fr/~jch/software/polipo/">Polipo</a> to |
... | ... |
@@ -731,7 +755,7 @@ Effort Level: <i>Low</i> |
731 | 755 |
<br /> |
732 | 756 |
Skill Level: <i>Low</i> |
733 | 757 |
<br /> |
734 |
-Likely Mentors: <i>Roger, others</i> |
|
758 |
+Likely Mentors: <i>Andrew</i> |
|
735 | 759 |
<br /> |
736 | 760 |
a way to generate the website diagrams from source, so we can translate |
737 | 761 |
them as utf-8 text rather than with gimp. (svg? or imagemagick?) |
... | ... |
@@ -748,7 +772,7 @@ Effort Level: <i>Low</i> |
748 | 772 |
<br /> |
749 | 773 |
Skill Level: <i>Medium to High</i> |
750 | 774 |
<br /> |
751 |
-Likely Mentors: <i>Roger, others</i> |
|
775 |
+Likely Mentors: <i>Anonym, Jacob, Roger</i> |
|
752 | 776 |
<br /> |
753 | 777 |
How can we make the <a |
754 | 778 |
href="http://anonymityanywhere.com/incognito/">Incognito LiveCD</a> |
... | ... |
@@ -906,8 +930,10 @@ puzzles the right answer? What other practical approaches are there? Bonus |
906 | 930 |
if they're backward-compatible with the current Tor protocol.</li> |
907 | 931 |
</ol> |
908 | 932 |
|
933 |
+<p> |
|
909 | 934 |
<a href="<page contact>">Let us know</a> if you've made progress on any |
910 | 935 |
of these! |
936 |
+</p> |
|
911 | 937 |
|
912 | 938 |
</div><!-- #main --> |
913 | 939 |
|
914 | 940 |