T

Team

Meta for non-specific project tickets, projects management and general information in the wiki.

Network Team

About us

Welcome to the Network Team page. The Network Team is a group of Tor people who are working on Tor back-end: the program called tor, the network simulators, the scripts that supports directory authorities, onion services, etc. Basically, everything that sends and receives bytes from the network. It used to maintain the pluggable transports and the bridge distribution but now we have the anti-censorship team doing it.

One of the reasons we are not listing the names of the team members here is because we want to keep the team open to everyone. You're on the team if you're participating in discussions and development, and you're not part of the team anymore if you decide you want to move on (which we hope won't happen).

Excited about joining the team? Here is more information on how to get started.

Meetings Schedule

We use IRC for our meetings, we meet on the OFTC network. (See detailed schedule for which channel; it varies by day.)

Team Meetings UTC
Primary team meeting
(in #tor-meeting)
Monday 17:00

If you want to participate, try to show up to the team meeting or patch party. Either one should be fine, though the primary meeting will be more attended. Or just stop by the #tor-dev IRC channel and see who is around!

Also note that these meeting times are not permanent. We sometimes need to reconfigure them from time to time as developers join, as people's schedules change, and as the global daylight savings slouches across the face of the earth. See the tor-dev mailing list for updates.

How we work

Besides meeting every week on IRC for status update and team discussions, our team also uses the following mechanisms to organize our work:

  • Core Tor Releases: Here is more information about tor release schedules, guidelines for release planning, and ideas of how we can improve this process.

New features starts with proposals—normally we discuss them on tor-dev@ mailing list.

How to find us

If you want to reach someone from the team between these meetings to ask a development-related question, just go to #tor-dev IRC channel, and somebody from the team might either be around or appear later and get back to you.

Our asynchronous medium of communication is the tor-dev@ mailing list. This list is public, in the sense that anyone can subscribe, send emails and read archives. Feel free to subscribe and just listen if you want, and feel free to post if you have a question that you think is on topic.

Becoming a volunteer

Thanks for volunteering with us! This part of our wiki is a collection of information we believe might be useful for you who wants to help us develop our tools.

Getting started

You could start by submitting a patch! Patches can help you learn our code and how our team work.

Tips on finding a patch to work on

Have a look at the First Contribution label on gitlab; it has things that we thought, at some point, would be a good place to begin.

Tips on finding your way around our code

For the past couple years we spent great amount of our time documenting our code to help people understand it. Here are some links for documentation that will help you get started with our code!

HACKING/

The HACKING/ folder has helpful information about what you need to know to hack on Tor!

Doxygen

We use doxygen to generate documentation in html out of our comments on the code. We keep an up-to-date version of the generated documentation online at https://src-ref.docs.torproject.org.

This documentation should cover the overall code structure, data structures, and individual functions. It's a work in progress, but we hope it'll be useful to you.

More on Network Team

Past Tor Meetings

Resources

Processes and Policies

Policies:

Guidelines:

Security Issues:

Plans

General Priorities

  1. security fixes for medium/high severity bugs
  2. Regular releases - Alex & David
  3. sbws - Alex with support from GeKo & Juga
  4. Supporting anticensorship work - Alex
  5. Supporting network health wrok - David

Other priorities (everybody):

  • Community handling:
    • volunteers
    • relay operators
    • answering email lists (tor-dev@, tor-relays@)
    • do support on irc? (#tor-dev, #tor, etc.)
  • Fixing bugs for each release
    • Release blockers
  • What else does other teams ask us for?
    • Liaison with network health team (usually 1-2 hours a week for dgoulet)
  • Fixing bugs for android and iOS for the guardian project [see #33522 and #33837 for ios issues]
  • Ongoing tech-debt reduction
  • Fixing windows bugs (ahf / ... others?):
    • [UTF-8/16 names in filepaths makes Tor unable to start: #10416]
    • Issues with mmap on some platform
    • issues with mmap leading to relays spinning on consdiffcache [#24857 #24857]
    • Condition variable issue with 100% cpu [#30187 #30187]
    • Windows DLL load order (possibly a Tor Browser packaging bug) reproducible in CI [#33702, #33643]
  • Writing more grant proposals
  • Miscellaneous onion service tasks that require our attention
    • Onionbalance. Standardizing Onion-Location with the IETF. HTTPS-E
    • Ricochet Refresh support
  • Gitlab transition stuff for network-team related projects (ahf / gaba):
    • CI?
    • Code base movements: chutney, tor.git, fallback-scripts.git on Github and git.torproject.org, torsocks, trunnel
    • Code base movements (archive?): torflow, pytorctl, leekspin (+ dependencies), rpm-packaging
    • DirAuth and sbws to network health, TorDNSEL to metrics

Priorities 2023

  • Get Arti to a place where we can start deprecating C-tor.
    • Catch arti up on recent/new C tor work:
      • conflux
      • flow control, congestion control
      • UDP
      • prop340 (fragmented/packed cells)
      • circuit padding machines
      • ntor3 negotiation
  • Build the network engine for the VPN solution.
  • Make the Tor network faster for users.
  • Support mobile applications
  • Improve network simulation, aka Shadow.
  • Implement defenses and mitigations agains DoS attacks
  • Improve Onion Services support

By Sponsored project

Sponsor 61 - ending in March 31st
  • Allocations: mike, ahf, dgoulet
  • Commitments: finish the project and track indicators.
    • conflux
Sponsor 101 - ends in September 30th
  • Allocations: ahf, eta, mike, dgoulet, nick
    • UDP support will require mike and dgoulet
    • Some prop340 design will require nick
  • Commitments:
    • UDP support
    • Will require prop340/fragmented cells
    • UDP client in arti -- probably needed, yeah?
    • Objective 3 : Implement needed tor sides for the vpn
      • O3.1: Address challenges in the Tor client’s consumption of resources.
      • O3.2: Enhance Tor to act as a VPN service, rather than an opt-in proxy as it does today.
      • O3.3: Make the Tor client library smaller to minimize impact on bandwidth for downloads and upgrades.
      • O3.4: Ensure Tor VPN client works well on popular Android apps, and develop optimizations, bug fixes, and improvements where needed.
Sponsor 112 - starting in April 1st
  • Allocations: mike, dgoulet, ahf
    • Nickm for some design on crypto, dos?
    • Arti implementation for circuit padding machines, needs arti people
  • Commitments:
    • Objective 3: Make the Tor network more able to resist relay attacks. The goal with this Objective is simple: make it harder for people who want to run malicious relays to succeed in their goals of conducting a variety of attacks. Our approach involves implementing specific fixes to the Tor protocol to resist relay, traffic analysis, cryptographic tagging, and traffic manipulation attacks.
      • Improved relay cryptography (Counter Galois Onion?)
      • O3.1: Audit the Tor protocol for dropped cell and other relay side channel attacks, and fix them in Rust for Arti. (arti#724)
      • O3.2: Implement tagging resistant ciphers to reduce the ability of relays to perform route manipulation attacks. (CGO above, prop#308)
      • O3.3: Implement DoS defenses to reduce overall DoS overload risk to directory authorities and the network.
      • O3.4: Implement mechanisms to support TrafficSliver and Interspace traffic analysis defenses in Arti, the Rust re-write of Tor code.
      • O3.5: Implement formal mechanisms for detecting relays lying about their bandwidth capacity. 
Sponsor 119 - whole year
  • Allocations: nick, eta, ian, ahf, jim, technical writer
    • (also mike for the guard-discovery-related portion?)
  • Commitments: 
    • Onion service and client support
    • Some kind of vanguard support
    • Feature parity with C client
    • Reasonably supported FFI
    • Improved arti documentation
    • Research on guard discovery resistence (at the end of 2023)
Sponsor 67 - ends Sep 30
  • Allocations: jnewsome
  • Commitments:
    • Rust migration
    • Fork+exec (shell scripts; pluggable transports)
    • tcp/ip tuning
    • udp? probably not so used as of today
      • Perf clients+servers that run QUIC/HTTP3 instead of HTTP might be a good start here
"Onion Services Support" - whole year
  • Allocations:
    • 2 new engineers for 2 years focus on onion services support
    • rhatto
    • dgoulet, ahf
  • Commitments:
    • Tags: "Onion Services" + ("Performance", "Performance Impact", "DoS")
    • No working plan yet.
    • Working in C and Arti.

Roadmaps

Q1 (January to March) 2023

TBD

Active Sponsors and Contracts

The projects from sponsors/contracts that are making this work possible are:

Other Projects