Roger Dingledine commited on 2008-03-10 08:06:52
Zeige 1 geänderte Dateien mit 54 Einfügungen und 2 Löschungen.
| ... | ... |
@@ -87,11 +87,64 @@ guidelines</a> if you want to help out. We especially need Arabic or |
| 87 | 87 |
Farsi translations, for the many Tor users in censored areas.</li> |
| 88 | 88 |
</ol> |
| 89 | 89 |
|
| 90 |
+<a id="Coding"></a> |
|
| 90 | 91 |
<a id="Summer"></a> |
| 91 | 92 |
<a id="Projects"></a> |
| 92 |
-<h2><a class="anchor" href="#Projects">Good Summer Projects</a></h2> |
|
| 93 |
+<h2><a class="anchor" href="#Projects">Good Coding Projects</a></h2> |
|
| 93 | 94 |
<ol> |
| 94 | 95 |
|
| 96 |
+<li> |
|
| 97 |
+Reanimate one of the approaches to implement a Tor client in Java, |
|
| 98 |
+e.g. the <a href="http://onioncoffee.sourceforge.net/">OnionCoffee |
|
| 99 |
+project</a>, and make it run on <a |
|
| 100 |
+href="http://code.google.com/android/">Android</a>. The first step |
|
| 101 |
+would be to port the existing code and execute it in an Android |
|
| 102 |
+environment. Next, the code should be updated to support the newer Tor |
|
| 103 |
+protocol versions like the <a href="<svnsandbox>doc/spec/dir-spec.txt">v3 |
|
| 104 |
+directory protocol</a>. Further, support for requesting or even |
|
| 105 |
+providing Tor hidden services would be neat, but not required. The |
|
| 106 |
+student should be able to understand and write new Java code, including |
|
| 107 |
+a Java cryptography API. Being able to read C code would be helping, |
|
| 108 |
+too. The student should be willing to read the existing documentation, |
|
| 109 |
+implement code based on it, and, if required, refine the documentation |
|
| 110 |
+if things are underdocumented. This project is mostly about coding and |
|
| 111 |
+to a small degree about design. |
|
| 112 |
+</li> |
|
| 113 |
+ |
|
| 114 |
+<li> |
|
| 115 |
+Write a tool that runs automatic system tests in addition |
|
| 116 |
+to the existing unit tests. The Java-based Tor simulator <a |
|
| 117 |
+href="https://tor-svn.freehaven.net/svn/puppetor/trunk/">PuppeTor</a> |
|
| 118 |
+might be a good start for starting up a private Tor network, using it |
|
| 119 |
+for a while, and verifying that at least parts of it are working. This |
|
| 120 |
+project requires to conceive a blueprint for performing system tests |
|
| 121 |
+of private Tor networks, before starting to code. Typical types of |
|
| 122 |
+tests range from performing single requests over the private network to |
|
| 123 |
+manipulating exchanged messages and see if nodes handle corrupt messages |
|
| 124 |
+appropriately. The student should be able to obtain a good understanding |
|
| 125 |
+of how Tor works and what problems and bugs could arise to design good |
|
| 126 |
+test cases. Understanding the existing Tor code and documentation is |
|
| 127 |
+vital. If PuppeTor is used, the student should also be able to understand |
|
| 128 |
+and possibly extend an existing Java application. This project is partly |
|
| 129 |
+about design and partly about coding. |
|
| 130 |
+</li> |
|
| 131 |
+ |
|
| 132 |
+<li> |
|
| 133 |
+Implement a <a href="http://www.ss64.com/bash/top.html">top-like</a> |
|
| 134 |
+management tool for Tor relays. The purpose of such a tool would be |
|
| 135 |
+to monitor a local Tor relay via its control port and include useful |
|
| 136 |
+system information of the underlying machine. When running this tool, it |
|
| 137 |
+would dynamically update its content like top does for Linux processes. |
|
| 138 |
+<a href="http://archives.seul.org/or/dev/Jan-2008/msg00005.html">This |
|
| 139 |
+or-dev post</a> might be a good first read. The student should be familiar |
|
| 140 |
+with or willing to learn about administering a Tor relay and configuring |
|
| 141 |
+it via its control port. As an initial prototype is written in Python, |
|
| 142 |
+some knowledge about writing Python code would be helpful, too. This |
|
| 143 |
+project is for the one part about identifying requirements to such a |
|
| 144 |
+tool and designing its interface; but on the other part, the project |
|
| 145 |
+also requires a lot of coding. |
|
| 146 |
+</li> |
|
| 147 |
+ |
|
| 95 | 148 |
<li>Help Mike Perry on his <a |
| 96 | 149 |
href="https://www.torproject.org/svn/torflow/">TorFlow</a> |
| 97 | 150 |
library (<a href="https://www.torproject.org/svn/torflow/TODO">TODO</a>): |
| ... | ... |
@@ -121,7 +174,6 @@ roadmap</a> for more ideas.</li> |
| 121 | 174 |
us and find out.</li> |
| 122 | 175 |
</ol> |
| 123 | 176 |
|
| 124 |
-<a id="Coding"></a> |
|
| 125 | 177 |
<h2><a class="anchor" href="#Coding">Coding and Design</a></h2> |
| 126 | 178 |
<ol> |
| 127 | 179 |
<li>Tor relays don't work well on Windows XP. On |
| 128 | 180 |