Confronto
nostrfy vs strfry
Entrambi sono relay Nostr in un unico binario, memorizzano gli eventi in LMDB e parlano lo stesso protocollo. Ma fanno scelte diverse: strfry è il maturo relay C++ con sistema di plugin write-policy, mentre nostrfy è un motore scritto in Rust che raccoglie le funzioni necessarie all’operatore — gruppi, media, REST, gestione — in un unico binario e un unico file di configurazione.
A colpo d’occhio
| nostrfy | strfry | |
|---|---|---|
| Linguaggio | Rust | C++ |
| Licenza | MIT o Apache-2.0 | GPL-3.0 |
| Archiviazione | LMDB (nessun database esterno) | LMDB (nessun database esterno) |
| Configurazione | Un unico nostrfy.toml, ricaricamento a caldo (SIGHUP) | strfry.conf, ricaricamento a caldo |
| NIP annunciati | 34 (36 implementati, incl. opzionali) | 11 NIP principali |
| Gruppi NIP-29 + LiveKit | Integrato | — |
| Server multimediale Blossom | Integrato (disco locale o S3/R2) | — |
| REST API | /api/v1 integrato | — |
| API di gestione | NIP-86 JSON-RPC con amministratori delegati | — |
| Negentropy (NIP-77) | Sì | Sì — strfry lo ha creato |
| Politiche di scrittura / plugin | Liste allow/deny integrate + NIP-86 | Interfaccia di plugin write-policy |
| Strumento di migrazione | nostrfy migrate-strfry | strfry import / export / sync |
Licenza
strfry è sotto GPL-3.0, che impone che le opere derivate siano pubblicate con gli stessi termini. nostrfy ha la doppia licenza MIT o Apache-2.0, quindi può essere incorporato in prodotti closed-source e relicenziato liberamente. Se il tuo relay fa parte di uno stack commerciale o con licenza, spesso è la differenza decisiva.
Configurazione e gestione
- nostrfy si configura tramite un unico
nostrfy.toml: identità, limiti, archiviazione, controllo degli accessi, Blossom e RPC in un unico posto. La maggior parte delle impostazioni si ricarica a caldo con SIGHUP. - Ogni opzione è convalidata da
nostrfy checkprima dell’avvio del relay — tipi errati, limiti impossibili e combinazioni che bloccano l’accesso vengono segnalati con correzioni. - Il demone include rotazione dei log, statistiche in tempo reale, endpoint per il controllo dello stato e metriche Prometheus; la CLI gestisce liste di accesso, aggiornamenti e migrazioni.
Funzionalità integrate
Invece di aggiungere servizi esterni, nostrfy include ciò che un relay pubblico di solito richiede:
Gruppi NIP-29 + LiveKit
Gruppi imposti dal relay, eventi di moderazione e metadati di gruppo firmati dal relay, più stanze audio/video via LiveKit.
Server multimediale Blossom
Gli upload indirizzati per contenuto usano un hostname dedicato, su disco locale o in un bucket compatibile S3 (AWS S3, Cloudflare R2).
REST API
Un’API /api/v1 in sola lettura su un thread di lettura dedicato: interroga gli eventi per npub, nevent o naddr, con conteggi, statistiche e ricerca.
Gestione NIP-86
API di gestione JSON-RPC con autenticazione Bearer o NIP-98, concessioni di metodi delegate e codici di invito.
Dove strfry eccelle
strfry resta un’ottima scelta: ha creato il protocollo negentropy, supporta riavvii senza downtime e compressione WebSocket opzionale, e la sua interfaccia di plugin write-policy consente di eseguire logica arbitraria a ogni pubblicazione. Se ti serve una sandbox di plugin e nient’altro di questa lista, strfry è perfetto. Se preferisci gruppi, media, REST e gestione integrati — o ti serve una licenza permissiva — nostrfy è la strada più breve.
Migrazione da strfry
Non devi ricominciare da zero. nostrfy migrate-strfry legge il formato di export di strfry, verifica ogni evento e importa l’intero database — incluse eliminazioni NIP-09, effetti collaterali di moderazione NIP-29 e timestamp di prima apparizione. È offline, supporta il dry-run ed è sicuro da ripetere.