The Tor Project / Core / Team · GitLab
Project information
Meta for non-specific project tickets, projects management and general information in the wiki.
Created on
July 09, 2020
Network Team
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
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
Brussels Meeting 2019
Mexico Meeting 2018
Amsterdam Meeting 2017
Valencia Meeting 2016
Berlin Meeting 2015
Resources
Network Team Products
Processes and Policies
Policies:
Merge Policy
Security Policy
Support Policy
Supported platforms
Guidelines:
Merge Process
Gitlab Review Process
Arti Development Process
Security Issues:
NetworkTeam/TROVE
Plans
General Priorities
security fixes for medium/high severity bugs
Regular releases - Alex & David
sbws - Alex with support from GeKo & Juga
Supporting anticensorship work - Alex
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 2024
Get Arti to a production level for clients and prepare Arti for relay support. (in progress with S119)
Build the network engine for the VPN solution. (work on Onionmasq, S101)
Interaction between censorship resistance and Tor should become better.
Support mobile applications, especially with transitioning to Arti for client usage.
A lot of interaction with Network Health and Metrics team, especially around DoS
Deploy UDP in the Network
Anti-tagging cryptography deployment.
By project
Project 101
- ends in September 30th, 2025
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.
Project 112
- ends in January 31st, 2025
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 (closed)
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.
Project 119
- ends on April 1st, 2024
Allocations: nick, gabi, 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)
Project 141
- ends in August 2026
Allocations: the whole team
Commitment: implements relays in Arti and transition the network to Arti.
"Onion Services Support" - whole year
Allocations: micah, rhatto, dgoulet, ahf
Commitments:
Tags: "Onion Services" + ("Performance", "Performance Impact", "DoS")
Working in C and Arti.
Roadmaps
Lived work-board of what is happening right now at the team
Previous Roadmaps
Q1 (January to March) 2023
TBD
Active Sponsors and Contracts
The projects from sponsors/contracts that are making this work possible are:
Making the Tor network faster & more reliable for users in Internet-repressive places
Empowering Communities in the Global South to Bypass Censorship
Bug Smash Fund Description
->
Bug Smash Fund Tickets
A rust tor implementation
Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibet
Tor VPN Client for Android
Other Projects
SBWS
Bandwidth Authority
PrivCount in Tor