Hi everyone!
I'm really excited to announce I'll be working on stem for the 2018 Tor Summer of Privacy! The news is still sinking in.
This is going to be my first major chunk of contributing code back to the Tor community. :)
In particular, I'll be working on expanding stem's support to act as a Tor client, aka stem.client, speaking with Tor's ORPort. You can see more about stem in general [1], and read concepts for stem.client [2], but at the end of this email I list my high-level plan for the summer project.
There's definitely more to a Tor client than one can write in a summer, so my focus is on getting basic client functionality and on fetching v2/v3 Onion Service descriptors. The official project period is May 14th through August 21.
My existing work on stem is available by querying through Trac [3] (easier for context) and browsing patches on GitHub [4].
I've been pretty active on IRC recently, but I wanted to broaden this. Anyone is welcome to reach out to me with questions/comments!
On OFTC and Trac, I'm dmr. I plan to attend the network team meetings [5] (at least lurk) to get a sense of Tor's protocol development and to be around for any littlet-tor/stem syncing discussions.
I'll also be sending updates biweekly to the tor-dev mailing list and writing "/me status: [...]" posts in #tor-dev.
Lastly, my mentors for the project are atagar and teor.
Really looking forward to this!
Cheers! Dave
-- My high-level plan is the following in this rough order: * continue prework with stem and the tor specs * get a stronger feel for / strengthen the CI testing for stem * better understand the ecosystem of projects that use stem * begin official coding by tackling minor stem.client improvements and implementing classes for a few more Cell types * continue developing stem.client.Relay and adding further testing using more of the Cell classes already defined * work on relay authentication * move onto fetching relay descriptors from the ORPort * work on the RELAY_EXTEN[sion] cells, to build multi-hop circuits * build upon this to allow actual exit traffic, including implementing RELAY_RESOLVE[D] * work on fetching v2 Onion Service descriptors, since I already have familiarity [6] with that spec, and v2 Onion Services probably will be around for a while yet * work on fetching v3 Onion Service descriptors * work on other stem.client improvements, if time allows * culminate the project with tutorials and a blog post introducing the new user-facing features of stem
[1] https://stem.torproject.org/ [2] https://www.torproject.org/getinvolved/volunteer.html.en#pythonTorClient [3] https://trac.torproject.org/projects/tor/query?cc=~dmr&or&reporter=d... ^ a bit noisy, sorry; look at "Core Tor" [4] https://github.com/dmr-x/stem [5] https://trac.torproject.org/projects/tor/wiki/org/teams/NetworkTeam#Meetings... [6] https://github.com/dmr-x/talks