[tor-dev] Arti report 4: August 4 through August 18

Nick Mathewson nickm at torproject.org
Wed Aug 18 17:22:38 UTC 2021


# Arti Report 3: August 4 through August 18


At last we're done with circuit timeout inference!  See the last weeks
update for an overview of what this was, and why it was hard. As of last
Friday, we've finally got an Arti implementation that builds testing
circuits as appropriate, infers reasonable timeouts, and remembers those
timeouts across runs.

As a side-benefit to this work, we've found a number of points where we
need to clarify the Tor specification to be more precise about correct
behavior for a Tor client.  (For example, how to break ties when
deciding on the most populous histogram bins.) I'm taking some time to
circle back and fix those in the Tor specs.

Here is the first recorded persistent state from an Arti implementation,
lightly reformatted:

    version = 1
    histogram = [[415, 1], [495, 2], [515, 1], [535, 1], [545, 1],
        [555, 1], [625, 1], [655, 1], [665, 1], [785, 1], [835, 1],
        [865, 2], [885, 3], [955, 1], [965, 1], [975, 2], [985, 1],
        [1005, 2], [1025, 1], [1035, 2], [1055, 3], [1065, 1],
        [1075, 1], [1085, 2], [1095, 1], [1115, 2], [1135, 2],
        [1145, 2], [1175, 1], [1185, 1], [1195, 2], [1205, 3],
        [1215, 1], [1235, 2], [1245, 6], [1255, 1], [1265, 2],
        [1285, 2], [1295, 3], [1305, 1], [1315, 1], [1355, 2],
        [1375, 2], [1385, 2], [1405, 2], [1435, 1], [1455, 1],
        [1465, 1], [1495, 1], [1505, 1], [1525, 1], [1535, 1],
        [1555, 1], [1565, 1], [1605, 1], [1625, 1], [1665, 1],
        [1765, 1], [1785, 1], [1825, 1], [1965, 1], [2165, 1],
        [2495, 1], [3025, 1], [3855, 1], [4265, 1], [4795, 1],
        [4935, 1], [5435, 1], [6825, 1]]
    current_timeout = 1592
    abandoned_circs = 0
    successful_circs = 20

## Other work

We've continued to review and merge volunteer patches. Thanks,
everybody! In response to a patch documenting a number of possible
panics, I've taken a pass through the code to reduce the number of
functions that could panic.

I've also been spending some time improving test coverage: while doing
so, I found an incorrect behavior when checking whether two IPv6
addresses were on the same network.  (Tests are great and need to be
everywhere, apparently.)

## Coming up

Our current priorities are:

   * Starting API design work.  So far we've been feeling our way
     forward, and it's time to get more systematic.

   * Improving our APIs and internal functionality for stream isolation,
     to support a variety of usecases more like what can be done with
     current Tor.

   * Kicking off the work on a Guard implementation.  This is the last
     key feature we need for a basic level of privacy.

   * Lots more interviewing job candidates.

Let's see how far we get in the next two weeks!


More information about the tor-dev mailing list