Damian Johnson commited on 2012-02-26 23:01:45
Zeige 1 geänderte Dateien mit 62 Einfügungen und 0 Löschungen.
Adding a project that I'd really like to mentor this GSoC: a stem port for TorCtl's PathSupport module. Hopefully this idea will get a few interested students...
... | ... |
@@ -524,6 +524,11 @@ meetings around the world.</li> |
524 | 524 |
testing, documentation, and API. This project is not yet feature complete. |
525 | 525 |
</p> |
526 | 526 |
|
527 |
+ <p> |
|
528 |
+ <b>Project Ideas:</b><br /> |
|
529 |
+ <i><a href="#stemPathsupport">Stem PathSupport Capabilities</a></i> |
|
530 |
+ </p> |
|
531 |
+ |
|
527 | 532 |
<a id="project-metrics"></a> |
528 | 533 |
<h3><a href="https://metrics.torproject.org/">Metrics</a> (code: <a |
529 | 534 |
href="https://gitweb.torproject.org/metrics-db.git">db</a>, <a |
... | ... |
@@ -820,6 +825,63 @@ meetings around the world.</li> |
820 | 825 |
robustness.</p> |
821 | 826 |
</li> |
822 | 827 |
|
828 |
+ <a id="stemPathsupport"></a> |
|
829 |
+ <li> |
|
830 |
+ <b>Stem PathSupport Capabilities</b> |
|
831 |
+ <br> |
|
832 |
+ Priority: <i>Medium</i> |
|
833 |
+ <br> |
|
834 |
+ Effort Level: <i>High</i> |
|
835 |
+ <br> |
|
836 |
+ Skill Level: <i>Medium</i> |
|
837 |
+ <br> |
|
838 |
+ Likely Mentors: <i>Damian (atagar)</i> |
|
839 |
+ <p><a |
|
840 |
+ href="https://trac.torproject.org/projects/tor/wiki/doc/stem">Stem</a> is a |
|
841 |
+ python controller library for tor. Like it's predecessor, <a |
|
842 |
+ href="#project-torctl">TorCtl</a>, it uses tor's <a |
|
843 |
+ href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt">control |
|
844 |
+ protocol</a> to help developers program against the tor process, enabling |
|
845 |
+ them to build things similar to <a href="#project-vidalia">Vidalia</a> and |
|
846 |
+ <a href="#project-arm">arm</a>.</p> |
|
847 |
+ |
|
848 |
+ <p>While TorCtl provided a fine first draft for this sort of functionality, |
|
849 |
+ it has not proved to be extensible nor maintainable. Stem is a rewrite of |
|
850 |
+ TorCtl with a heavy focus on testing, documentation, and providing a |
|
851 |
+ developer friendly API.</p> |
|
852 |
+ |
|
853 |
+ <p>At the moment stem is still very much incomplete, missing several pieces |
|
854 |
+ of functionality that TorCtl provides. This is a project to fix that by |
|
855 |
+ porting TorCtl's <a |
|
856 |
+ href="https://gitweb.torproject.org/pytorctl.git/blob/HEAD:/PathSupport.py">PathSupport |
|
857 |
+ module</a> to stem, writing tests for it, and migrate a couple clients to |
|
858 |
+ use it.</p> |
|
859 |
+ |
|
860 |
+ <p>PathSupport provides applications with programmatic control over how |
|
861 |
+ tor's circuits are built, for instance letting you exit from particular |
|
862 |
+ relays. This is used by projects like <a href="#project-torbel">TorBEL</a>, |
|
863 |
+ <a href="#project-torflow">the Bandwidth Scanners, and SoaT</a>.</p> |
|
864 |
+ |
|
865 |
+ <p>This project can be broken into three parts...</p> |
|
866 |
+ |
|
867 |
+ <ol style="list-style-type: decimal"> |
|
868 |
+ <li><p>Look at PathSupport's clients to figure out how it is used and |
|
869 |
+ come up with the API that we will use for stem. Note that the goal if |
|
870 |
+ this project is <b>not</b> to simply copy PathSupport, but to make it |
|
871 |
+ better. This task would ideally be done as part of writing the GSoC |
|
872 |
+ application.</p></li> |
|
873 |
+ <li><p>Implement the PathSupport counterpart for stem. This should be |
|
874 |
+ done in an incremental fashion, writing the feature, tests, and going |
|
875 |
+ through a code review before moving on. I'll be pretty anal about making |
|
876 |
+ it as good as we can during these code reviews so plan for this to take a |
|
877 |
+ while. ;)</p></li> |
|
878 |
+ <li><p>The real test of the API that you've developed will come when we |
|
879 |
+ use it in some real applications. Try to migrate a TorCtl client or two |
|
880 |
+ to stem, filling in functionality that we're missing and improving our |
|
881 |
+ API as we discover issues. A particularly good client to start with would |
|
882 |
+ be TorBEL.</p></li> |
|
883 |
+ </ol> |
|
884 |
+ |
|
823 | 885 |
<a id="geoIPUpgrade"></a> |
824 | 886 |
<li> |
825 | 887 |
<b>Improve our GeoIP file format</b> |
826 | 888 |