[tor-dev] [TSoP] stem.client - introductions

Dave Rolek dmr-x at riseup.net
Mon Apr 23 20:10:30 UTC 2018


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=dmr&or&owner=dmr&or&reviewer=~dmr&group=component
^ 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#MeetingsSchedule
[6] https://github.com/dmr-x/talks


More information about the tor-dev mailing list