bigbrotr
bigbrotr
¶
BigBrotr -- Modular Nostr network observatory.
Eight independent async services discover relays, validate connectivity, perform NIP-11/NIP-66 health checks, archive events, refresh analytics views, and expose data via REST API and NIP-90 Data Vending Machine — across clearnet, Tor, I2P, and Lokinet. All services communicate exclusively through a shared PostgreSQL database.
Architecture follows a diamond DAG dependency structure where imports flow strictly downward:
services Business logic and orchestration
/ | \
core nips utils Infrastructure, protocol, and helpers
\ | /
models Pure frozen dataclasses (zero I/O)
Attributes:
-
models–Pure frozen dataclasses. Zero I/O, depends only on stdlib.
-
core–Connection pool, database facade, base service, exceptions, logging, metrics.
-
nips–NIP-11 relay information, NIP-66 relay monitoring. Has I/O.
-
utils–DNS resolution, Nostr key management, WebSocket/HTTP transport.
-
services–Business logic. Eight independent services.
Note
For lightweight usage, import directly from subpackages::
from bigbrotr.models import Relay
from bigbrotr.core import Brotr
Top-level imports (from bigbrotr import Relay) use lazy loading
and resolve on first access.