Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tor Tor
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 315
    • Issues 315
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 34
    • Merge requests 34
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Core
  • TorTor
  • Issues
  • #24731
Closed
Open
Created Dec 24, 2017 by teor@teor

Stop checking routerinfos for addresses when we use microdescs for circuits

Directory mirrors and clients that FetchUselessDescriptors check for IPv4 and IPv6 addresses in the following order:

  • routerinfos (descriptors)
  • routerstatus (consensus)
  • microdescriptors

But they should check using the following order:

  • bridge routerinfos (descriptors)
  • routerstatus (consensus) If using microdescriptors for circuits:
  • microdescriptors Otherwise:
  • routerinfos (descriptors)

There is code that implements this algorithm in commits decb0636e2, 1d1c927b9a, and 4979ec3c17 of my bug23975_tree branch.

But this adds overhead to every address lookup when building circuits.

Maybe we can make it faster by:

  • not parsing routerinfos or microdescs if we aren't using them for circuits, or
  • putting a canonical address in node_t, updating it whenever ri, rs, or md change, and always using it
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking