[tor-dev] Arti report 8: October 14 through October 27

Nick Mathewson nickm at torproject.org
Wed Oct 27 17:48:26 UTC 2021


# Arti Report 7: October 14 through October 27

# Towards Arti 0.0.1

On Monday November 1, we're planning to put out Arti version 0.0.1.  Our goal
is to include all the features that are needed for reasonable security, and a
top-level API that isn't _so_ far from completely wrong.  Right now, it looks
like we're in good shape for that timeline.

Since the last update, we've fixed a lot of smaller issues, including:
* running out of files on OSX
* making it harder to accidentally leak DNS requests
* lots of API refactoring
* restored the ability for multiple Arti instances to share a single set of
local directories
* easier setup
* easier API for stream isolatoin
* more reliable tests for asynchronous timeout-based logic
* and more!

We're now working on documentation and usability.  There's now an example
program in
[`crates/arti-client/examples`](https://gitlab.torproject.org/tpo/core/arti/-/blob/main/crates/arti-client/examples/hyper.rs)
that uses [`hyper`](https://hyper.rs/) to download an HTTP document, and
we're adding examples elsewhere in our top-level API documentation.

# Followup from our guard implementation

Our work on guards (completed in the last round) has kicked off a new batch
of guard research.  As with other parts of the Tor protocols,
implementing our specification in Rust has exposed some weaknesses or
confusing points in our design.  In response to issues that we found,
we've opened a few issues and written a couple of proposals to improve
our code.

For example, see:
* [Proposal 336](https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/proposals/336-randomize-guard-retries.md),
  to randomize guard retry timing.
* [Proposal 337](https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/proposals/337-simpler-guard-usability.md),
  to describe a simpler formulation of our guard behavior.
* [torspec#67](https://gitlab.torproject.org/tpo/core/torspec/-/issues/67),
  to treat guards as usable more eagerly.
* [torspec#68](https://gitlab.torproject.org/tpo/core/torspec/-/issues/68),
  to improve our behavior when our primary guards are down.


# What's next

Once the next release is out, we'll turn our attention to Arti 0.1.0.
For that release, our priority target is beta testing and experimental
embedding.  We'll be working to improve performance and to stabilize a
set of stable APIs to provide a wider set of functionality for
applications that want to embed Arti in different scenarios.

We'll need your help, though: we will need feedback from everybody who's
interested in using our code, in order to make sure that we're providing
solid, usable interfaces that do what you need.  Please try it out, and
let us know what's bad or missing!

We're hoping to get Arti 0.1.0 released some time in March of 2022, with
multiple smaller update releases between now and then.  At our bi-weekly
meeting next Wednesday, we'll be prioritizing tasks for the next set of
releases, and refining our roadmap for the coming months.  Why not join
us?  Information is on the
[meeting pad](https://pad.riseup.net/p/arti-meeting-pad-keep).


# Thanks!

Thanks to Jani Monoses and Dimitris Apostolou for their patches in this
release!

And special thanks and welcome to eta, our new team member!  She's
started with Tor last Tuesday, and has hit the ground running, already
fixing substantial bugs and refactoring a bunch of tricky code.  It's
great to watch the pace and quality of our development improve as more
people join the team!


More information about the tor-dev mailing list