Around the Tor world: core Tor

Today Tor is less confusing than it was before.
Nearly every important modules calls the other modules directly or indirectly – and this makes it very difficult for newcomers to understand the code.

Separating things by modules, improve documentation are some of our big goals for the next couple of years.

New features: e.g. new hidden services design, and more.

A challenge we are facing: our review processes have not scaled with the growth of the team. Nick is spending half of his time reviewing code. This is something we look forward to talking about during this meeting.

so - set out with tor to write a program that would confuse traffic analysis. we have had some modest success in this area. unfortunately we have had some success in confusing programmers
250,000 lines of c tomaintain.
call graph is less complex that ever before, now down to 12 instead of 400
module call-graph is still that most c-file is reachable by every other c-file
testing rate is up, but not really respectable
not happy unless coverage rate is > 95%
tors unit test coverage is still in the 30-40%, integration tests in 60%
 - doesnt measure how much of our code is measured to do what it should, as opposed to not just crash
 - documentation is better than before, but not greatg
 - features - lots of good new stuff landed
 - declaring feature freeze on 0.2.8 this week
 - support for fallback directories, better DoS resistance, replacing a lot of crypto, replacing a lto more, hidden service stronger, cleaning up spaghetti & improve the flavor
 - formal proposal reviews - having discussion meetings - talking about each pending proposal - 1 or 2 a week for last month and a half - still have backlog - gone through a lot of improtant ones
 - not as happy with status of code review - 1/3 1/2 time spent reviewing code over and over.. means less time programming - needs ways to divide that

what about implementing directory authority in another language?

no one else has done a directory authority implementation
making tor more modular - making easier to do rewrites
mostly compatible with c, function at a time rewrite, but benefit of time is not that high
module at a time, and tors modules are not presently well seperated, big goal of next 3 to 12 months is to separate modules better, so it is possible to contemplate rewriting just the dirauth module in rust, haskell, python, etc
will not ever see a day when tor core is written in a free-for-all of javascript, forth, caml, oo, lua, jython, and objective c - but 3 languages, might be a good target for long-term-support 'this counts as tor', by allowing more implementations - the more unkind you are to maintainers, to have every maintainer understand each language
- main problem with core tor is having N daemons, for applications that all want to control their own tor, how to make applications better share tor

Last modified 18 months ago Last modified on Mar 18, 2016, 10:15:59 PM