Verification Population Observatory

BSAHI — what is observable about Bitcoin's verification population, and what is not. Captured 2026-09-16 · Instrument: tools/research/verification_population.py

The question, reframed

Not "how many Bitcoin nodes are there?" — the total population is not observable — but "how large is the independently reachable verification population, and what can we observe about it?"

Four quantities are reported separately and never conflated:

quantitylayergradevalue
A. Gossip-observed addresses (addrman)observedC≥32,000 (request ceiling, returned in full)
B. Reachable nodesobservedB26,586
C. Non-listening / private nodesunobservableD— (evidence only via inbound peers)
D. Total populationunobservable

A is not a node count. getnodeaddresses 32000 returns addresses from one node's address manager (learned via addr gossip); the set includes stale/unreachable entries and its size depends on peer count and uptime. The measured reachable-node count is B.

Composition of the reachable set (26,577 nodes)

Software — Bitcoin Core is 97.7% of reachable nodes (self-declared user agents):

user agentnodes
/Satoshi:31.1.0/6,129
/Satoshi:31.0.0/2,162
/Satoshi:29.3.0/1,656
/Satoshi:29.3.0/Knots:20260507/1,342
/Satoshi:27.0.0/1,286
/Satoshi:29.2.0/1,170
/Satoshi:28.1.0/1,119
/Satoshi:26.0.0/892

Networks — a large share of the "reachable" set is anonymity networks, which is why IP geography is unresolved for 64% of nodes:

organisationnodes
Tor network12,733
I2P network4,231
Akamai Connected Cloud898
Hetzner Online GmbH889
PONYNET468
OVH SAS389
GOOGLE-CLOUD-PLATFORM340
AMAZON-02286

Service bits (raw) — published as a raw histogram; the archival/pruned mapping is unvalidated:

services bitmasknodes
30818,690
31456,429
30801,740
10331,715
10371,439
30851,263
3077859
0540
GRADE C / UNVALIDATED — the mapping of NODE_NETWORK vs NODE_NETWORK_LIMITED to archival/pruned must be checked against the installed Core release before this is treated as a measured split

Persistence — NOT measured. connected_since in this capture is effectively the CRAWLER's session time (all values cluster under ~0.25 days), not node uptime. Node uptime/persistence is therefore NOT measured here and must not be published as such; it requires repeated per-node snapshots over time (same address observed across crawls).

Sync state — 25,571 nodes reported a plausible height; 1,006 reported an implausible one (self-reported height is frequently stale). Chain tip at capture: 967176.

The headline

At least 26,586 independently reachable Bitcoin nodes were measured (2026-09-16); the address manager of one small node knew ≥32,000 gossiped addresses. The total node population — including non-listening and private nodes — is not observable. BSAHI measures the observable part and states the gap rather than filling it with an estimate.

Grades: B for the reachable count; C for the address sample; D/unobservable for everything beyond..

Method and limits

Data: `/data/verification_population.json` · Method: Methodology · Replicate: Replication invite

Data source: data/verification_population.json — deterministic, frozen-input instrument; re-runnable offline.

← All research · ← Back to Learn