Einführung in nostrfy
Was nostrfy ist, was es ab Werk kann und welche Ideen hinter der All-in-One-Nostr-Relay-Server-Engine in Rust stehen.
nostrfy ist ein Relay-Server für das Nostr-Protokoll. Er speichert von Clients gesendete Events (Beiträge, Reaktionen, Profile …) und liefert sie auf Abonnementanfragen hin aus.
Hauptfunktionen
- Einfach und stabil — in Rust geschrieben; ein Binary erledigt alles.
- Schneller Speicher und Suche — LMDB-Datenbank mit Volltext-Index (NIP-50).
- Breite NIP-Unterstützung — 36 NIPs implementiert, plus der Blossom-Dateiserver: Löschung, Proof-of-Work, Delegierung, Gruppen, Suche und eine Verwaltungs-API.
- Einfach zu betreiben — Daemon-Modus, Log-Rotation, Hot-Reload der Konfiguration (SIGHUP), Live-Statistiken, REST-API und Prometheus-Metriken.
- Einfache Migration — ein Befehl importiert eine vorhandene strfry Datenbank: Dry-Run, Zusammenführen der Einstellungen und sichere Wiederholungen (Migrationsanleitung).
Was Sie ab Werk erhalten
Ein einzelnes nostrfy-Binary stellt an einem Port bereit:
- WebSocket-Relay und das NIP-11-Informationsdokument.
- Ein schreibgeschütztes REST-API unter
/api/v1/...— ein eigener Reader-Thread sorgt dafür, dass REST-Verkehr WebSocket-Abonnenten nie blockiert. - Blossom-Dateiserver (Medien-Hosting) unter eigenem Hostnamen.
- NIP-86-Verwaltungs-RPC, Health-Check und Prometheus-
/metrics.
Ressourcenprofil
nostrfy läuft nachweislich auf einem 0,25 vCPU / 512 MB VPS. Die LMDB-Speicherzuordnung ist eine dünne virtuelle Reservierung von 1 TiB — die physische Festplatte wächst nur mit echten Daten — und der Prozessspeicher bleibt konstant: Ein Relay mit 252 MB Datenbank belegte 7,9 MB privates RSS.
Ein schneller Eindruck
Drei Befehle für Installation, Initialisierung und Start:
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
nostrfy --config nostrfy.toml init
nostrfy --config nostrfy.toml startPrüfen Sie dann, ob das Relay läuft:
curl http://127.0.0.1:8080/healthUnd rufen Sie das NIP-11-Dokument ab:
curl -H "Accept: application/nostr+json" http://127.0.0.1:8080/