Module extra_info

Module extra_info 

Source
Expand description

Extra-info descriptor parsing for Tor relay and bridge extra-info documents.

Extra-info descriptors contain non-vital but interesting information about Tor relays such as usage statistics, bandwidth history, and directory request statistics. Unlike server descriptors, these are not required for Tor clients to function and are not fetched by default.

§Overview

Extra-info descriptors are published by relays whenever their server descriptor is published. They contain detailed statistics about:

  • Bandwidth history - Read/write traffic over time
  • Directory statistics - Request counts, response types, download speeds
  • Cell statistics - Circuit cell processing metrics
  • Exit statistics - Traffic per port for exit relays
  • Bridge statistics - Client connection data for bridges
  • Hidden service statistics - Onion service activity metrics

§Descriptor Types

TypeDescriptionSignature
RelayStandard relay extra-infoRSA signature
BridgeBridge relay extra-infoNo signature (has router-digest)

§Sources

Extra-info descriptors are available from:

  • Control port - Via GETINFO extra-info/digest/* (requires DownloadExtraInfo 1)
  • Data directory - The cached-extrainfo file
  • CollecTor - Archived descriptors from metrics.torproject.org
  • Directory authorities - Via DirPort requests

§Example

use stem_rs::descriptor::extra_info::ExtraInfoDescriptor;
use stem_rs::descriptor::Descriptor;

let content = r#"extra-info example B2289C3EAB83ECD6EB916A2F481A02E6B76A0A48
published 2024-01-15 12:00:00
write-history 2024-01-15 12:00:00 (900 s) 1000000,2000000,3000000
read-history 2024-01-15 12:00:00 (900 s) 500000,1000000,1500000
"#;

let desc = ExtraInfoDescriptor::parse(content).unwrap();
assert_eq!(desc.nickname, "example");
assert!(desc.write_history.is_some());

§Statistics Categories

§Bandwidth History

The read-history and write-history lines record bytes transferred over time intervals (typically 900 seconds = 15 minutes).

§Directory Statistics

Directory mirrors report request statistics including:

  • Client IP counts by country (dirreq-v3-ips)
  • Request counts by country (dirreq-v3-reqs)
  • Response status counts (dirreq-v3-resp)
  • Download speed statistics (dirreq-v3-direct-dl, dirreq-v3-tunneled-dl)

§Exit Statistics

Exit relays report traffic per destination port:

  • exit-kibibytes-written - Outbound traffic
  • exit-kibibytes-read - Inbound traffic
  • exit-streams-opened - Connection counts

§Bridge Statistics

Bridges report client connection data:

  • bridge-ips - Client counts by country
  • bridge-ip-versions - IPv4 vs IPv6 client counts
  • bridge-ip-transports - Pluggable transport usage

§See Also

§See Also

Structs§

BandwidthHistory
Bandwidth history data for a time period.
ExtraInfoDescriptor
Extra-info descriptor containing relay statistics and metadata.
Transport
Pluggable transport information.

Enums§

DirResponse
Response status for directory requests.
DirStat
Download statistics for directory requests.
PortKey
Key for port-based statistics in exit traffic data.