Arti 2.0: Cleans up your code, removes old configurations, improvements, and more

Key points:
  • The jump to 2.0.0 is due to the removal of obsolete code, not to massive new features.
  • proxy.socks_port is removed and the arti package APIs are marked as experimental.
  • New modular structure of circuit reactors and TLS server capabilities.
  • Improvements in the download and validation of authority certificates.
  • New inet-auto socket for automatic RPC port allocation.

Arti 2.0.0 is here and brings order to the chaos. The Rust-based Tor cleans up its code, removes old configurations, and paves the way for future relays. An analysis of why this "2.0" is vital for the network.

El Project Tor continues its methodical rewriting of internet privacy with the launch of Article 2.0Although seeing a jump to version "2.0" usually indicates major changes, improvements to revamped interfaces or revolutionary features, in the Rust ecosystem and under the discipline of Semantic Versioning (SemVer), this issue tells a different story: that of the project's maturity and the necessary cleanup.

The developers have made it clear that This release isn't about major visible improvements. for the end user, but rather to break with the past to ensure that the programming interfaces (API) keep them tidy and sustainable in the long term.

What's new in Arti 2.0?

As we mentioned at the beginning, Etiquette 2.0 is, in essence, the cleaning job which was done on the project. The development team mentions that they have taken advantage of this release to eliminate all the accumulated work. removing configuration options that had long been marked as obsoleteFor example, administrators who still relied on proxy.socks_port or proxy.dns_port will find their configurations no longer work, forcing them to migrate to the modern proxy.socks_listen and proxy.dns_listen. Similarly, the old syntax for defining directory authorities has been permanently retired.

However The most significant change for developers is the new status of the arti package in itself. All of its APIs, except for the main input function, have been marked as experimental.This move is a clear warning: the arti package should be treated as a final binary, not a development library. Those looking to build applications on the Tor network should look to arti-client or other lower-level packages, as direct use of Arti's internal tools is now outside the stability guarantees and subject to future changes or removal without prior notice.

Although "2.0" may sound like an exciting launch number, it is actually quite trivial.
Semver requires us to increment the major version number when making significant changes, and we had a couple of important changes we wanted to implement to keep our APIs organized. The only ones who should notice significant changes in this version are developers building applications using the articrate directly, instead of the recommended arti-client crate or other lower-level crates.

Beyond cleaning, the real engineering work in Arti 2.0 It has occurred between the lines of code, where the foundations are being laid so that Arti can finally act as a relay and directory authority. A new modular and generic circuit reactor architecture has been implemented. which promises to be the heart of future traffic management. Although the ability to function fully as a relay is not yet production-ready, the progress is tangible: it is now possible to launch relay channels, respond to connection handshakes, and act as a server in TLS connections.

On the board of directors' front, the Certificate management has been improved, since in this new version of Arti 2.0, It is now able to autonomously download, validate, and store authority certificates.In addition, there is a small but useful usability enhancement: support for the inet-auto socket type, which allows the RPC server to automatically choose a free TCP port, simplifying deployment in environments where manual port management is a hindrance.

Among the other notable changes, we can find:

  • Support for the previous syntax for specifying directory authorities has been removed. The new syntax can be seen in the example configuration.
  • A bug that prevented the registration speed limit from working correctly has been fixed.
  • It was updated to newer versions of several dependencies.
  • Updated to the latest Tor backup directory list.
  • The obsolete functions memquotay dialoguerde carga (which did nothing) were removed.
  • The functions "signal-hook cargo", which were aliases for " ", have been removed. The function should be used directly: signal-hook-async-stdasync-signal

Finally, if you are interested in learning more, you can find the details in the following link