You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#669 establishes the NIP-66 relay-monitor foundation: shared DNS/TLS/WebSocket/NIP-11 probes, a monitor worker, standard Nostr event publishing, and an admin Network Health view.
This follow-up extends that foundation into an operator platform: deeper NIP-66 measurements, mirror and worker visibility, NIP-05 and storage operations, auditability, diagnostics, and alerting.
Important constraint
Probing a relay’s public URL from its own process verifies public URL configuration, DNS, TLS, and routing from that network location. It does not prove reachability from an independent external network.
NIP-66 events and the admin UI must identify the monitor location/identity clearly and must not treat one monitor as authoritative. Clients should aggregate results from multiple monitors, as required by NIP-66’s trust model.
Goals
Give relay operators actionable health data without SSH, SQL, or manual DNS/TLS commands.
Hot-reload safe monitor settings where possible; clearly mark restart-required values.
Phase 3 — Mirror, worker, and data operations
Monitor relay URLs in mirroring.static[].
Add Mirror Health panel:
connection state, last successful connection, reconnect count, last received event, and lag where measurable.
Add Worker Operations panel:
maintenance, mirroring, relay-monitor status, last run, failures, and restart metadata.
Add NIP-05 Verification panel using existing verification records:
search/filter, verification age, failure count, and manual re-verification.
Add Storage dashboard using existing NIP-45 COUNT support:
event counts by kind and time range, retention impact, and approximate-count indication when applicable.
Add Tor/I2P status in Network Health, including explicit DNS-skip behavior for .onion targets.
Add delivery retry/backoff, signed payloads, redacted error logs, and test-delivery support.
Export OpenTelemetry metrics for probe duration, probe result, TLS-expiry horizon, and mirror connectivity.
Add a redacted diagnostics bundle containing version, sanitized configuration, worker state, recent health results, and relevant logs.
Stretch goals
Public read-only status page with explicitly sanitized data.
Onboarding wizard that validates relay URL, TLS, NIP-11, admin setup, and monitor configuration.
Alert rules UI with thresholds, suppression windows, and notification routing.
NIP-86 relay-management API slice authenticated with NIP-98:
start with supportedmethods, read-only list methods, and carefully scoped moderation methods.
Compare local monitor results with selected external NIP-66 monitor events.
Relevant NIPs
NIP
Purpose
NIP-66
Relay liveness monitoring; kinds 30166 and 10166
NIP-33
Parameterized replaceable storage for kind 30166
NIP-11
Relay information document and advertised capabilities
Summary
#669 establishes the NIP-66 relay-monitor foundation: shared DNS/TLS/WebSocket/NIP-11 probes, a monitor worker, standard Nostr event publishing, and an admin Network Health view.
This follow-up extends that foundation into an operator platform: deeper NIP-66 measurements, mirror and worker visibility, NIP-05 and storage operations, auditability, diagnostics, and alerting.
Important constraint
Probing a relay’s public URL from its own process verifies public URL configuration, DNS, TLS, and routing from that network location. It does not prove reachability from an independent external network.
NIP-66 events and the admin UI must identify the monitor location/identity clearly and must not treat one monitor as authoritative. Clients should aggregate results from multiple monitors, as required by NIP-66’s trust model.
Goals
Proposed work
Phase 1 — Full NIP-66 monitoring
rtt-readprobe: measure subscription/request response latency.rtt-writeprobe: measure accepted write latency using a dedicated monitor identity.30166events:dnormalized relay URLrtt-open,rtt-read,rtt-writennetwork type (clearnet,tor,i2p)N,R,k, and relay metadata where reliableggeohash for monitor location, only when explicitly configured10166monitor announcements with frequency, check types, and per-check timeouts.0profile and kind10002relay list, as recommended by NIP-66.Phase 2 — Admin Network Health operations
GET /admin/network-health/history.POST /admin/network-health/probe.nip66.*settings-editor support:enabled state, targets, interval, timeout values, monitor identity reference, cache TTL, and retention.
Phase 3 — Mirror, worker, and data operations
mirroring.static[].connection state, last successful connection, reconnect count, last received event, and lag where measurable.
maintenance, mirroring, relay-monitor status, last run, failures, and restart metadata.
search/filter, verification age, failure count, and manual re-verification.
event counts by kind and time range, retention impact, and approximate-count indication when applicable.
.oniontargets.Phase 4 — Operational trust and automation
login/logout, settings changes, manual probes, webhook configuration, and future moderation actions.
probe.failed,probe.recovered,ssl.expiring,mirror.disconnected, andworker.failed.Stretch goals
start with
supportedmethods, read-only list methods, and carefully scoped moderation methods.Relevant NIPs
30166and1016630166gtag)10002)Dependencies
Success criteria