Two weeks ago I posted the list of live seeders and crawler datasets above. Since then I have been archiving all of them daily in bitcoin-seeder-data: DNS answers from the eight Core seeds plus fish.foo every 6 hours, and every published dump once a day. Here is what the first two weeks show.
All population and overlap numbers below are clearnet only (IPv4 + IPv6). Onion, I2P and CJDNS are left out of those comparisons.
Clearnet population sizes
Raw totals are not comparable across sites, each operator uses a different reachability rule:
| source | clearnet | reachability rule |
|---|---|---|
| KIT dossier | 9,669 | all entries in the public dossier |
| bitnod.es | 9,319 | last seen within 1 day of the newest export |
| btcnodes | 8,793 | completed handshake in one crawl round |
| sipa seeds.txt (frozen since 2025-11) | 8,947 | seeder good flag |
| fish.foo seeds.txt | 5,899 | seeder good flag |
| achow101 seeds.txt | 4,250 | seeder good flag |
With the address family fixed, KIT / bitnod.es / btcnodes sit near 9k. The seeder good sets are smaller: they require uptime scores over windows from 2h to 30d, not only a recent sighting.
KIT’s dossier accumulates over months. Cutting on “lastConnect” changes the count: 3,271 within 1d, 5,129 within 7d, 9,669 for all entries.
bitnod.es moves day to day inside the 9k band (export timing and uneven daily buckets I think). A 7-day rolling mean removes most of that movement, but the level sits a few hundred hosts above btcnodes, consistent with the wider 1-day last-seen window.
Pairwise overlap
bitnod.es vs btcnodes (both forks from ayeowch/bitnodes). On 2026-07-21 the two agree on 8,166 clearnet hosts: 88% of the bitnod.es set (9,319) and 93% of the btcnodes set (8,793). Of the 1,153 bitnod.es-only hosts that day, 783 (68%) appear in at least one archived btcnodes snapshot from the previous week; 370 (32%) do not. Part of the gap is the 1-day last-seen window versus a single crawl round I guess.
achow101 vs fish.foo (both run dnsseedrs; willcl-ark’s fish.foo is a fork of achow’s). fish.foo’s good clearnet set (5,899) contains 96% of achow’s (4,250); the shared hosts make up 69% of fish.foo’s set, so fish.foo has about 1,800 hosts that achow does not. I think the remaining gap is vantage, uptime history and probe timing. Also fish.foo is some commits ahead, mostly packaging, performance and crawl scheduling.
DNS responses vs a full crawl
I also checked whether pooling DNS answers over time can stand in for a full dump in a clearnet census. Over 14 days (6h cadence, all nine seeds), against the btcnodes clearnet set of 2026-07-21, with recall[1] and precision[2]:
| window | unique clearnet IPs | recall | precision |
|---|---|---|---|
| 1d | 2,996 | 23% | 67% |
| 3d | 6,565 | 47% | 62% |
| 7d | 9,693 | 61% | 56% |
| 14d | 12,394 | 68% | 48% |
The pooled set grows into the thousands, but precision falls as older answers stay in the union. Size-dependent metrics (groups-to-50%, bucketing ratios) also change with sample size, so a DNS pool and a full crawl are different inputs. But maybe for the seeder-side full view, the published seeds.txt files (like from fish.foo, achow101) could be used.
DNS seed coverage
Also here is the share of IPv4 addresses each seed served on 2026-07-20 that appear in the crawlers’ clearnet sets from 2026-07-21, plus a reachability check from octavio.xyz.
| seed | unique A | bitnod.es | btcnodes | octavio |
|---|---|---|---|---|
| sipa.be | 440 | 95% | 92% | 100% |
| fish.foo | 177 | 95% | 94% | - |
| emzy.de | 456 | 93% | 89% | 88% |
| achownodes.xyz | 831 | 89% | 86% | - |
| petertodd.net | 430 | 79% | 77% | 96% |
| bluematt.me | 127 | 75% | 89% | 86% |
| sprovoost.nl | 433 | 65% | 64% | 57% |
| wiz.biz | 207 | 59% | 66% | 76% |
| jonasschnelli.ch | 423 | 50% | 49% | 50% |
What I take from this
The point of the archive was to put one clearnet basis under the sources in the list above. With that in hand, two things stand out for me.
First, raw “node counts” across sites are different objects. KIT / bitnod.es / btcnodes land near 9k clearnet hosts under their own rules. Seeder good sets are smaller because they score uptime over 2h…30d. For a population series I would pick one rule and keep it: a btcnodes snapshot, or bitnod.es last-seen with a fixed window and a 7-day mean.
Second, sharing a software line still leaves a measurable gap. bitnod.es and btcnodes agree on 88% and 93% of their respective sets, and of the bitnod.es-only hosts that day, about a third never show up in a week of btcnodes snapshots. For achow101 and fish.foo, 96% of achow’s good hosts are in fish.foo’s set, but fish.foo carries about 1,800 hosts achow does not.
Everything regenerates from the raw archives with two scripts in analysis/ of the bitcoin-seeder-data repo. If a number looks wrong from your side, I would like to know.