Welcome to the second monthly update from Tor’s Network Team here on our shiny new Tor Project forum. You can read the first update from October here.
These updates will appear monthly and summarize what the team has worked on in the previous month.
The Network Team is responsible for writing the Tor network’s software and supporting tools to test and experiment with the network. In addition to the classic Tor implementation, the team has also recently started working on a Rust implementation of Tor named Arti.
This will be the last update this year. We will publish the shorter December update at some point in January 2022. The team will now go on vacation, and we will all be back with recharged energy on January 6th, 2022. Expect much slower responses on emails, tickets, and Merge Requests during this time
Enjoy the holiday, and see you all in 2022!
Tor
- Last followups after the big release week have landed into the Tor Git repository. These changes include David’s work for release pipelines (including documentation).
- Simon South fixed a sandbox issues for Tor on i386 in tor#40505.
- Bridge connectivity issue patches landed. Thanks to Roger and the Anti-censorship Team for this work. These patches should help with dysfunctional bridge connectivity for many users.
- Wrote patches to implement Proposal 275 (remove meaningful published time) in tor!489.
- Various small compilation fixes in tor!485, tor!486, and tor!487.
- Alex is working on figuring out why stable flags are missing by the current bridge authority in tor#40449.
- David worked on Congestion Control Negotiation for Onion Services.
Arti
- Started refactoring tor-proto to use a more pure reactor-driven model, with less locking in arti#217, arti!119, arti!121, arti!126 – this is now merged, as of 2021-11-15.
- Merged the start of an event reporting mechanism similar to Tor’s ControlPort in arti#203.
- Work on building circuits preemptively, like in C Tor. See arti#60.
- More testing: we’re now above 75% on circmgr and dirmgr and at 81.7% overall.
- Detect the “coming back online” condition and use it to mark primary guards retriable. See arti#216, and arti#179.
- Detect and forbid debugging prints in CI. See: arti#218, and arti!123.
- Jim debugging Arti Shadow Simulations, for arti#174.
- Fixed upstream bug in async-io, which was causing deadlock under Shadow.
- Traced another deadlock to spin loops in libblas when built with tgen support.
-
Found an upstream panic bug in
simple_asn1
and fixed it. - Started measuring binary sizes and tuned compiler options for better sizes. See: arti#172, and arti!124.
- Optimistic stream implementation from Yuan Lyu in arti!116.
- CI speed improvements from Trinity Pointard.
- David and Alex worked on some experiments related to Sponsor 101 for handling network packets with the Arti API. Nick and Alex are working on what data we have access to for building sensible isolation systems of streams in such a reality.
- Coverage script improvements thanks to Trinity Pointard.
- Large configuration refactoring as part of arti#85.
- Started running tor-proto tests with all runtimes again; exposed some bugs. See: arti#238.
- Basic event reporting backend in arti#230.
- Numerous cleanups.
- Improved configuration code and APIs in arti#84.
- Released Arti 0.0.2.
- Posted Forum Post about the Arti 0.0.2 release.
SBWS Load Balancing Work:
- Roger figured out that we can add a private exit to sbws tor
client, addingpurpose=controller
to thePostDescriptor
control command.
Thanks to that, it is now possible to create two-hop circuits with a private exit running in the same machine as the scanner as part of
sbws#40022. - It seems the gap between gabelmoo and the other bw-auths running sbws might not get smaller anymore. We should verify that suspicion and then resume figuring out what is going on as just waiting does not seem to resolve the problem in sbws#40112. It seems gabelmoo’s web server did not have IPv6 enabled, and some exits were not happy with that. We’ll verify that with additional logs from gabelmoo later this week and update the ticket accordingly.
Congestion Control project
- Mike has a negotiation branch in mikeperry/tor. It still has issues in Chutney (due to checks for handshake type strewn about codebase). Also need to chat about protover complexity – want to avoid two protover bumps, and only use at exits.
- Hiro worked on improving Shadow result graphs for baseline, sim, and live network splitting between DE/HK sources.
- Jim extended tornettools CI to compare against a previous baseline run. See: https://github.com/shadow/tornettools/pull/45.
- Jim worked with Hiro to merge “5th Mebibyte” goodput metric into tornettools. See: https://github.com/shadow/tornettools/pull/46.
- Fixed tornettools to plot Mega-bps instead of Mebi-bps. See: https://github.com/shadow/tornettools/pull/47.
- Mike has gone through all of the Vegas Queue param sims, and has updated the experiment doc with next steps (Sections 2 and 3) in SHADOW_EXPERIMENTS.txt.
- Exit negotiation is implemented and works in Chutney. MR in tor!495
Community
- Multiple team members presented Network Team-related works as part of the State of the Onion 2021.
- Worked with Network Health Team on getting a sponsored relay node. Thanks to Dotsrc.org and especially Anders from there for the help!
Misc
- We are trying to kick off a project to re-energize our design proposal process. Reviewing backlog, and looking into what other projects do.