Skip to content

Upgrade to Arti 0.29 & Refactor Circuit Logic

Solved Issue: erpc#58

Merge Request: Upgrade to Arti 0.29 & Refactor Circuit Logic

Summary

This merge request upgrades core arti-* dependencies to 0.29 across the project and adapts internal circuit-building logic to align with new APIs introduced in tor-circmgr, tor-linkspec, and related crates. It also includes necessary refactors and improvements across erpc-scanner, erpc-workers, and configuration files.


Commits Breakdown

1. Upgrade Arti & Tor Dependencies to v0.29

  • Updated versions in all Cargo.toml files:
    • arti-client, tor-circmgr, tor-rtcompat, tor-netdir, tor-netdoc, tor-config, tor-hscrypto, tor-chanmgr, tor-linkspec, and others.
  • Updated Cargo.lock accordingly.
  • Ensured workspace compatibility and dependency resolution.

2. Adapt Circuit Building Logic to New API

  • Replaced deprecated two-hop building logic using TorPath and manual CircBuilder usage with the new get_or_launch_dir API from tor-circmgr 0.29.0.
  • Introduced:
    • build_circuit_to_relay
    • build_circuits_between_relays
  • Modified client.rs logic to reflect new timeout-based circuit building.

3. Replace in_same_subnet with Custom Subnet Check

  • Implemented is_in_same_subnet() in tor_network.rs (as tor-netdir removed in_same_subnet()).
  • Applies subnet check using /16 for IPv4 and /32 for IPv6.
  • Ensures backward compatibility with the relay selection strategy used in PrimaryWorker.

4. Cleanup, Refactor & Config Adaptation

  • Removed unused override_net_params for cbtmintimeout.
  • Refactored primary_main.rs and secondary_main.rs accordingly.
  • Updated workspace configs to include tor-linkspec.

Affected Modules

  • erpc-scanner/src/client.rs
  • erpc-workers/src/primary_main.rs
  • erpc-workers/src/secondary_main.rs
  • erpc-workers/src/primary/tor_network.rs
  • Cargo.toml, Cargo.lock, and subproject manifests
Edited by thedivyanshupabia

Merge request reports

Loading