Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Arti Arti
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 145
    • Issues 145
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 7
    • Merge requests 7
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Core
  • ArtiArti
  • Issues
  • #268
Closed
Open
Created Dec 20, 2021 by wouter lueks@wouterGuest

"Manual" blocking/removing of Tor nodes

We've been looking into using Arti as a Tor library for mobile apps. In our settings, the amount of daily data sent (kilobytes) is very small compared to retrieving the consensus (megabytes). To reduce mobile bandwidth load, we made some modifications to Arti to run with a smaller consensus that is updated less frequently. See LightArti and Issue #267 (closed).

As a result of using a smaller long-term consensus, it sometimes contains nodes that are no longer reachable. To limit the number of nodes that will go offline, LightArti aims to pick stable nodes. This is not always enough to ensure reliable path establishment when the consensus is older than a few days. Therefore LightArti also has functionality to provide an additional blocklist of nodes that should not be used.

To facilitate this, we modified our forked Arti to allow access to the list of nodes in the (side-loaded) consensus/directory and to remove unavailable nodes from it. We achieved this by modifying the module tor-netdoc in the following manner:

  • The field consensus of the structure UnvalidatedConsensus and the field routers of the structure Consensus are set as public to be able to remove churned routers appearing over time.

You can find a (rough) diff wrt an older version of arti here.

Ideally we would prefer to extend stock Arti to provided by Arti that enables making these modifications. For example:

  • Adding the ability to retrieve, modify and set the list of nodes in netdir; or
  • Adding the ability to directly remove nodes from the consensus
Assignee
Assign to
Time tracking