Greetings fellow onion enthusiasts! Like the rest of the summer August has been less tor-ry than usual. This month went toward eviscerating my home in an act of utter apartment seppuku.
Truly it’s amazing how much stuff closets accumulate. Dumped my every worldly possession in a pile and now dealing with the mess. I’ll be at this through September as well but so far so good. Eight full grocery bags of stuff to rid myself of and counting. Fun project!
Stem 1.7 Release Prep
As for the technical front… *sigh*. I told Matt I would release Stem 1.7 when he asked for it but six weeks later and still no release. Dealing with several pre-release issues…
Tor Summer of Privacy
This month Dave concluded his Tor SoP project. Honestly we didn’t get too far. I’ll probably advertise this project again in next year’s GSoC/SoP. That said, Dave sent quite a bit of code at the end so much of August went toward reviewing that.
PS. Already half way through September? Yikes. Between the tardiness of this report and spring cleaning I’m gonna skip my September update. I won’t be in Mexico but hope you all have fun!
Oh oops! Just realized I completely forgot last month’s status report. Probably just as well. Festivals and fun crowd tor out during the summer.
Strawberry Festival, Fremont Fair, Underground Tour, and spring cleaning aside honestly not much to report.
- Lots of code reviewing. I might not be writing code but Dave is.
- Membership and website adjustments. Rote work aside, rewrote our ‘welcome’ emails and worked with Tom on adding people page pronouns.
- Revamped Stem’s equality checks and hashing. Hashes now account for attribute types, are consistent between interpreter runs, and cached by immutable classes.
- Python 3.5 bundled a buggy lru_cache implementation. Stem now works around this.
- Python 3.6’s new ‘async’ keyword broke Stem’s testing tools.
Hope everyone else is having a similarly great summer!
Driver trained his whole life for this moment.
Decorated space marine marooned with his fellow starving colonists, the microfusion rifle in his hands hummed with unearthly firepower. Enough to vaporize a mountain. But tonight Driver stalked pray of a different kind. His nemesis. His dinner. A sleeping, injured turtle with dementia.
Just two feet from his quarry Driver raised his weapon and… missed. He missed eighty times in a row.
Ya know, I didn’t feel bad that night when Driver starved. Clearly I’m playing too much Rimworld.
Courtesy of teor Tor authority and fallback information now reside in their own files. This is great, as it allows Stem to provide fresh directory information through our stem.directory module…
COLUMN_FORMAT = '%-17s%-20s%-10s%-10s'
authorities = stem.directory.Authority.from_remote()
except IOError as exc:
print('%s\n' % exc)
authorities = stem.directory.Authority.from_cache()
print(COLUMN_FORMAT % ('Name', 'Address', 'ORPort', 'DirPort'))
for authority in authorities.values():
print(COLUMN_FORMAT % (authority.nickname, authority.address, authority.or_port, authority.dir_port))
% python demo.py
Name Address ORPort DirPort
maatuska 126.96.36.199 80 443
tor26 188.8.131.52 443 80
Bifroest 184.108.40.206 443 80
longclaw 220.127.116.11 443 80
dizum 18.104.22.168 443 80
bastet 22.214.171.124 443 80
gabelmoo 126.96.36.199 443 80
moria1 188.8.131.52 9101 9131
dannenberg 184.108.40.206 443 80
Faravahar 220.127.116.11 443 80
May’s been quite a juggling act. Smaller things this month include…
"Mission accomplished!" I said. No aircraft carrier, but none the less you’d think I would learn from transnational snafus.
Much of March was still out of commission, but I’ve felt better a few weeks now so maybe this time it’ll hold? We didn’t get to a root cause so likely that whatever nailed me will crop back up someday. But we’ll cross that bridge when we come to it. After all, there’s only so many orifices a doctor can probe… right? (he says hopefully)
What could be funner than that, you ask? Taxes! And dentists! And paperwork! Kidding aside, last couple months had some great tor stuff too.
ORPort Descriptor Downloads
Stem can now download descriptors through ORPorts just like Tor!
reply = stem.descriptor.remote.get_server_descriptors(
endpoint = stem.ORPort('18.104.22.168', 90),
This came from a desire to health check my relay, but dovetails nicely with the ORPort capabilities that will be the big feature of Stem’s 1.7 release.
Recently Tor added ZSTD and LZMA support and Stem now supports them too. ZSTD and LZMA’s higher compression ratio comes at a CPU cost and are less available, so when using these to save bandwidth you should provide a fallback…
reply = stem.descriptor.remote.get_server_descriptors(
compression = (
Compression.LZMA, # higher compression but often unavailable
Compression.GZIP, # decent compression and always available
Summer of Privacy
A very, very warm welcome to Dave Rolek! Dave will be expanding Stem’s ORPort and hidden service v3 capabilities this summer as part of Tor Summer of Privacy.
Smaller things these last couple months include…
- Expanded Nyx’s FAQ to clarify how to get started and explain why apt-get often doesn’t work.
- Further expunged Nyx’s old name. Thanks to Homebrew for deprecating its old port. One of these days I should reach out to the Wikipedia editors as well…
- Stem now supplies a user agent when downloading descriptors, so relays can distinguish Tor and Stem clients from others.
- Formalized the procedure we use when checking membership activity to better avoid surprises and encourage past volunteers to get back involved.
- Finally got around to swapping this blog to https. Yeah, yeah, I know…
Hi all! Nasty stomach bug left me sleeping and running between doctors most of the month so sadly not much to report. That said, feeling much better now so picking steam back up on tasty, tasty code.
On the fun-things front this month I wrote my second build for Path of Exile, but less than usual for Tor.
Tor Summer of Privacy
This year Google declined our GSoC application to make room for budding open source projects. Personally I think asking us to take a break every so often is applaudable (small projects need the boost!), but this left us asking: what next?
In 2015 when this happened we ran a smaller program of our own called Tor Summer of Privacy. Colin is now organizing a similar program for this year (thanks Colin!).
Stay tuned on Tor’s blog for the official announcement. Tim and I wrote a joint proposal, so if you wanna get involved with Tor this summer then check it out!
This February the only other tidbit that comes to mind are a couple initiatives as our membership secretary. Kicked off the selection process for our next Community Council and began our bi-annual checkup for membership activity.
Hi all. Changes at work have me stressed so I’ll be skipping Rome this year, but none the less Tor has been a welcome anchor. Work may suck, but Tor? Well…
ORPort Protocol Support
As discussed yesterday Stem can now communicate over the ORPort protocol. Still lots of follow-up work to do, but thanks to Tim’s wonderful work prototyping how this is done with Endosome Stem can now download descriptors via the ORPort protocol!
with stem.client.Relay.connect('127.0.0.1', 12345, ) as relay:
circ = relay.create_circuit()
circ.send('RELAY_BEGIN_DIR', stream_id = 1)
desc = circ.send('RELAY_DATA', 'GET /tor/server/authority
HTTP/1.0\r\n\r\n', stream_id = 1).data
Which then provides…
% python demo.py
HTTP/1.0 200 OK
Date: Wed, 07 Feb 2018 18:42:41 GMT
Expires: Fri, 09 Feb 2018 18:42:41 GMT
router Unnamed 22.214.171.124 12345 0 23456
-----BEGIN ED25519 CERT-----
-----END ED25519 CERT-----
Fallback Directory v2
Tim and I also worked together on a second iteration for our Fallback Directories. Expanded with additional data and a specification, Stem now supports the new format.
Happy New Years! Hope everyone’s holidays were delightful. Between candy canes and sugarplumbs December had some neat stuff…
Filled gaps within our tutorials, in particular multiprocessing and terminal styling…
Also worked with toralf on a demo for summarizing relay connections…
To help us keep our various platforms up to date last month I put together a packages wiki. Sadly, the trouble with hand-edited wikis is that they get out of date.
To help with this we now have a daemon that notifies me when platforms have a new package available…
Hi wonderful world. Post-release followup and recent interview with Ben Collier has kept me pretty busy, but have a couple other fun things to report…
Commonly major releases are followed by followup packaging work and Nyx’s recent release was no exception. But rather than simply work with our delightful packaging community as I usually do I decided instead to bring order to the chaos.
I’m delighted to say we now have a tor-packagers@ list where Tor developers can reach our packaging community, and packagers can subscribe to be notified of new releases. To go along with this I also made a wiki that gives an overview of our packages…
Tor Relay: Caer Sidi
In folklore Caer Sidi was an otherworldly fortress, unsuccessfully assailed by the Prydwin in Arthur’s quest for the holy grail. It’s a name I’ve always wanted to use for a relay.
Flavor text aside, while ago I got permission from Dreamhost to run a non-exit relay on their cloud infrastructure so I’d have a busy relay on which to test Nyx. I haven’t tried pushing the envelope, but I can say it’s been a nice low-cost ($6/month) hosting experience thus far. It’s now listed as a good experience on our ISP wiki.
Seems I fail at sending these reports on time. Oh well, on with the show!
Nyx and Stem Release
As you may have guessed from last week’s announcement been busy with the launch of Nyx and Stem 1.6!
Very special thanks to…
- Tommy and Stephanie for their delightful blog post.
- All the relay operators that helped beta test Nyx.
- George, Attila, and pascal for our new Stem and Nyx OpenBSD ports.
- Derek, Juan, Anthony, Sjon, Alex, Markus, and Carlo for updating Stem and packaging Nyx for all our existing platforms. Damn you guys are fast!
Again, thanks all! Each of these made me do a little happy dance.
Montreal Developer Meeting
It’s the sign of a busy month if this isn’t my top highlight. As always Jon, Gunner, and Alison orchestrated a great meeting. Between discussions hit the sights and tried poutine for the first time.
As a final note the Tor office moved this month. Sadly this means we’re losing an absolutely fantastic mural done for us by Henry. However, we took some high definition photos. Here’s one I’ve rescaled to be usable as a wallpaper or poster…
Oh how I love Sol Duc. Hundreds of miles of trails, white birch groves, and of course sulfuric hotsprings. Rainforest moss lends the woods an unearthly charm that’s truly just delightful.
Highlight of this month for me was a vacation with my dad, first to Port Townsend then Sol Duc. But this has been an interesting month on other fronts too.
This month my chief focus has been tuning Nyx. CPU usage is now 20% lower, and far more responsive under verbose logging due to constant time log deduplication. Overall Nyx finally looks ready for release. I’ll probably move forward with a call for beta testers after the dev meeting.
This month tor ratified a policy for internal list membership. Much of it just formalizes procedures we’ve used for a while, but it also adds a requirement on continued involvement to stay subscribed. Naturally volunteers move on to other projects over time and this perfectly fine, but eventually their membership will be suspended with re-addition fast tracked if they return.
I’m now facilitating discussions with the Vegas leads and Council on how best to determine this. To give us a starting point I put together some fun stats, but numbers alone don’t come anywhere close to answering the question of “how has this person been involved in making tor better in the last six months?”. Discussions ongoing.