{"id":6178,"date":"2026-09-05T10:01:10","date_gmt":"2026-09-05T01:01:10","guid":{"rendered":"https:\/\/eternalsphere.net\/echoes\/?p=6178"},"modified":"2026-09-12T14:03:16","modified_gmt":"2026-09-12T05:03:16","slug":"po47p4qlgorwr67","status":"publish","type":"post","link":"https:\/\/blog.eternalsphere.net\/index.php\/2026\/09\/05\/po47p4qlgorwr67\/","title":{"rendered":"How the Tor Directory System Automatically Evaluates Relays"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A Tor relay does not join the network through a conventional account-registration or manual approval process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Tor directory system continuously discovers, evaluates, measures, and publishes relay information through a distributed protocol operated by Directory Authorities and supporting measurement infrastructure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. There Is No Central Relay Registration Database<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A new relay does not submit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>name\nIP\napplication form\nidentity documents\napproval request<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">to a central Tor administrator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, the relay generates its own cryptographic identity and publishes signed network information.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Server Descriptors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each relay periodically publishes a signed server descriptor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A descriptor contains information needed by the Tor network, including:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>relay identity\nOR addresses\nsupported protocols\nexit policy\nbandwidth information\nsoftware information\noptional nickname\noptional operator contact<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Because the descriptor is signed, the directory system can verify that updates come from the same relay identity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Directory Authorities<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tor relies on a small set of trusted Directory Authorities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They do not forward ordinary Tor user traffic as a centralized router.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Their primary role is to maintain a shared view of which relays exist and what status those relays should have.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each Authority independently receives descriptors and maintains its own view of the relay network.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Automatic Reachability Checks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Directory Authorities automatically test relay reachability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This allows an Authority to determine whether a relay&#8217;s advertised ORPort is actually usable from the Internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A relay cannot simply claim:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Running<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">for itself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The network must independently observe its availability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Automatic Flag Assignment<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most relay flags are calculated according to protocol rules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examples include:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Running\nValid\nFast\nStable\nGuard\nHSDir<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Each Authority creates its own view according to observed relay behavior, bandwidth data, and network-wide thresholds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Bandwidth Measurement Infrastructure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Independent bandwidth scanners test relay capacity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simplified workflow is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scanner discovers relay\n       \u2193\nmeasurement traffic generated\n       \u2193\nthroughput estimated\n       \u2193\nbandwidth result produced\n       \u2193\nDirectory Authority receives result<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This prevents operators from obtaining excessive path-selection weight merely by claiming unrealistic bandwidth.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Voting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tor&#8217;s Directory Authorities periodically generate signed votes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each vote contains that Authority&#8217;s current view of the network:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Relay A Running Valid Fast\nRelay B Running Valid\nRelay C Running Valid Stable Guard\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The votes also contain bandwidth-related information and network parameters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No human needs to trigger this process every hour.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is part of the directory protocol&#8217;s automatic schedule.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Consensus Formation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Authorities exchange their votes and compute a common network consensus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The consensus becomes a compact, signed description of the active Tor relay network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It includes information such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>relay identity<\/li>\n\n\n\n<li>address<\/li>\n\n\n\n<li>ORPort<\/li>\n\n\n\n<li>flags<\/li>\n\n\n\n<li>bandwidth value<\/li>\n\n\n\n<li>protocol capabilities<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Multiple authorities sign the resulting document.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Why Consensus Exists<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Without a consensus, different clients could have radically different ideas about which relays exist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The consensus provides a common reference:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tor Client A \u2500\u2510\nTor Client B \u2500\u253c\u2500\u2192 shared consensus\nTor Client C \u2500\u2518<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This greatly reduces opportunities for arbitrary or isolated directory manipulation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Clients Download the Consensus<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tor clients and relays periodically obtain the current network consensus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They use it to determine:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>available Guards<\/li>\n\n\n\n<li>eligible Middle relays<\/li>\n\n\n\n<li>suitable Exits<\/li>\n\n\n\n<li>relay weights<\/li>\n\n\n\n<li>network parameters<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Path selection therefore occurs locally on the client according to the shared consensus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">11. Onionoo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Onionoo is a Tor Metrics service that transforms relay and bridge data into a convenient queryable format.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is not the system that decides whether a relay is Running or Fast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Directory data\n     \u2193\nOnionoo\n     \u2193\nAPI-friendly relay information<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">12. Relay Search<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Relay Search is a human-facing interface built on this public information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It provides convenient views of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>flags<\/li>\n\n\n\n<li>addresses<\/li>\n\n\n\n<li>bandwidth<\/li>\n\n\n\n<li>uptime<\/li>\n\n\n\n<li>history<\/li>\n\n\n\n<li>family relationships<\/li>\n\n\n\n<li>consensus weight<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Its data may lag behind the relay&#8217;s current local state because several processing stages exist between the running daemon and the public website.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">13. What Is Automated?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Normal relay operation is overwhelmingly automatic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Descriptor publication          automatic\nReachability testing            automatic\nBandwidth measurement           automatic\nAuthority voting                automatic\nConsensus generation            automatic\nClient consensus downloads      automatic\nPath selection                  automatic\nOnionoo processing              automatic<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">14. Where Humans Still Matter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Human operators remain essential for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>maintaining Directory Authority infrastructure<\/li>\n\n\n\n<li>deploying Tor software updates<\/li>\n\n\n\n<li>maintaining bandwidth scanners<\/li>\n\n\n\n<li>reviewing suspected Sybil attacks<\/li>\n\n\n\n<li>investigating malicious relays<\/li>\n\n\n\n<li>assigning administrative exclusions<\/li>\n\n\n\n<li>responding to serious security incidents<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Normal honest relays, however, generally require no individual manual review.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tor&#8217;s directory system functions like an automated distributed control plane:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Relay publishes\n     \u2193\nAuthorities observe\n     \u2193\nScanners measure\n     \u2193\nAuthorities vote\n     \u2193\nConsensus is produced\n     \u2193\nClients download it\n     \u2193\nPaths are selected automatically<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This design allows thousands of independently operated relays to participate without requiring a central administrator to approve or manage each machine individually.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Tor relay does not join the network through a conventional account-registration or manual approval process. The Tor directory system continuously discovers, evaluates, measures, and publishes relay information through a distributed protocol operated by Directory Authorities and supporting measurement infrastructure. 1. There Is No Central Relay Registration Database A new &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[120],"tags":[245],"class_list":["post-6178","post","type-post","status-publish","format-standard","hentry","category-1s3b6h7r2zay02x","tag-tor"],"_links":{"self":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts\/6178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/comments?post=6178"}],"version-history":[{"count":1,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts\/6178\/revisions"}],"predecessor-version":[{"id":6179,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/posts\/6178\/revisions\/6179"}],"wp:attachment":[{"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/media?parent=6178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/categories?post=6178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.eternalsphere.net\/index.php\/wp-json\/wp\/v2\/tags?post=6178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}