Updates, insights, and community posts from 1st Amendment Encrypted Openness.
26 posts
We recorded 3.62 billion directory stream starts across 775 Tor relays in a 48-hour October window. Our measurements show per-relay peaks, a year of traffic, and how long elevated rates lasted. Read more
Two diagrams trace Tor's traffic paths and map reported pressure on TCP queues, circuits, directories, introductions and exits. Follow the numbered markers to the 2026 reports and historical exit examples. Read more
AI-assisted reports are driving Tor security fixes. Our 2017–2026 reconstruction finds a 2026 YTD average of 1,465 Running relays on obsolete versions, with two reproducible charts and official guidance for updates and automation. Read more
Two doors open, SSH for you and the ORPort for Tor, and no password that ever works over SSH. Five steps for a new Ubuntu 24.04 or 26.04 VM, about 30 minutes: prepare, lock SSH to keys, open two ports, install Tor from the Tor Project, then prove it and check monthly, with a quick Ebury check and what to do if a relay is compromised. Read more
Every additional exact prefix character requires 32 times more search work on average. Learn why average time is not a deadline, what a 95% chance means, and how to compare realistic estimates. Read more
The HSDir-flagged population fell substantially in June–July. The revised count ratio describes population changes, not actual descriptor demand or bandwidth capacity. Read more
Retained daily rejection counters show recurrent activity from July 2025 through July 2026, with reporting gaps visible. The revised figures distinguish defense actions, daily overload reports and late-July memory pressure. Read more
Daily report prevalence and cumulative fixed-cohort coverage describe different populations. The reanalysis uses declared trigger and publication windows; reports do not identify confirmed attack victims. Read more
A retained process trace reached about 94 GiB RSS. Tor’s accounted-memory limit is not an RSS cap; its removed-byte counters also do not count invocations or identify one memory pool. Read more
Five weight-matched relay pairs, same flood, opposite endings: every glibc relay held its memory balloon until the kernel terminated it; every mimalloc twin drained itself and survived. What the allocator decides, what swap decides, and the paging data showing swap held only idle memory — the active relays never thrashed. Read more
Public descriptors and consensuses show higher overload-report prevalence among Guard-flagged groups and changes in Running membership during June–July. Flags do not identify observed circuit position. Read more
Four observed signals in the June–July telemetry: introduction rejections, circuit-handshake activity and retained circuits, protocol violations, and outbound traffic. Their timing does not establish a common actor or target-selection mechanism. Read more
The historical reanalysis records CPU and memory pressure, a higher circuit inventory, and queue drops concentrated on one monitored host. The rebuilt public comparison uses matching flag cohorts and includes maintenance explicitly. Read more
Historical metrics show about 1.28 billion estimated TCP listener-drop events over June 26–July 11. These events are not unique completed connections, and the kernel and Tor counters do not form a connection-loss fraction. Read more
Monitoring lessons and proposals grounded in counter scope: introduction limits, queue drops, channel classification and memory accounting. Proposed relay-circuit PoW is separate from existing onion-service PoW. Read more
5-Way Deployment Blog: Testing 5 allocators on 100 relays (20 per group) with Debian 13.2 for 6-10 days showed mimalloc 2.0.9 (1.41 GB) used 7.4× less memory than 3.0.1 (10.44 GB), so we migrated all 200 production relays to 2.0.9. Read more
Earlier tests across 100+ relays compared allocators, configuration changes and restarts. Allocator changes reduced RSS in that workload; they do not impose a general memory cap. Read more
In an earlier 90-relay Ubuntu 24.04 experiment, mimalloc and jemalloc reduced observed memory use by 79% and 71%. Those workload-specific results do not guarantee a peak RSS limit. Read more
Disabling DirCache cuts memory by 94%, but it also removes your Guard flag—making it a diagnostic proof point rather than a viable solution for production Guard relays. Read more
MaxMemInQueues limits selected accounted allocations, not total process RSS. In this earlier experiment, lowering it did not prevent the observed memory growth. Read more
Scheduled restarts can reduce memory by up to 19%, but they disrupt circuits and still leave you at 4.5 GB—use them only as a stopgap while migrating to a better allocator. Read more
Limiting how long Tor keeps consensus diffs had zero impact on memory—all test groups ended at 5.6–5.8 GB, proving the fragmentation problem lies in glibc, not cache retention. Read more
A straightforward guide to the leading Tor relay dashboards—compare their bandwidth stats, update frequency, map views, and detailed features to monitor your nodes and network with ease. Read more
Supercharge your Tor relay deployments with turnkey BGP configs that take you from zero to announced in minutes. Read more
Running a 10 Gbps Tor relay at maximum capacity reveals lessons every operator should know before scaling up. Read more
A recent thread on the Tor-relays list raises a fundamental question for operators: is it better to deploy a single high-capacity server, or several smaller ones distributed across locations and providers? Read more