# 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!