Skip to content

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.