Comparación
nostrfy vs strfry
Ambos son relés Nostr de un solo binario, guardan los eventos en LMDB y hablan el mismo protocolo. Pero toman decisiones distintas: strfry es el relé C++ maduro con sistema de plugins write-policy, mientras que nostrfy es un motor escrito en Rust que reúne las funciones que necesita el operador — grupos, medios, REST, gestión — en un binario y un archivo de configuración.
De un vistazo
| nostrfy | strfry | |
|---|---|---|
| Lenguaje | Rust | C++ |
| Licencia | MIT o Apache-2.0 | GPL-3.0 |
| Almacenamiento | LMDB (sin base de datos externa) | LMDB (sin base de datos externa) |
| Configuración | Un solo nostrfy.toml, recarga en caliente (SIGHUP) | strfry.conf, recarga en caliente |
| NIP anunciados | 34 (36 implementados, incl. opcionales) | 11 NIP principales |
| Grupos NIP-29 + LiveKit | Integrado | — |
| Servidor de medios Blossom | Integrado (disco local o S3/R2) | — |
| REST API | /api/v1 integrado | — |
| API de gestión | NIP-86 JSON-RPC con administradores delegados | — |
| Negentropy (NIP-77) | Sí | Sí — strfry lo originó |
| Políticas de escritura / plugins | Listas allow/deny integradas + NIP-86 | Interfaz de plugins write-policy |
| Herramienta de migración | nostrfy migrate-strfry | strfry import / export / sync |
Licencia
strfry está bajo GPL-3.0, que exige que las obras derivadas se publiquen bajo los mismos términos. nostrfy tiene doble licencia MIT o Apache-2.0, por lo que puede integrarse en productos de código cerrado y relicenciarse libremente. Si tu relé forma parte de una pila comercial o con licencia, esto suele ser la diferencia decisiva.
Configuración y operación
- nostrfy se configura mediante un único
nostrfy.toml: identidad, límites, almacenamiento, control de acceso, Blossom y RPC en un solo lugar. La mayoría de los ajustes se recargan en caliente con SIGHUP. - Cada opción la valida
nostrfy checkantes de arrancar el relé — tipos erróneos, límites imposibles y combinaciones que bloquean el acceso se reportan con correcciones. - El demonio incluye rotación de registros, estadísticas en vivo, un endpoint de comprobación de estado y métricas Prometheus; la CLI gestiona listas de acceso, actualizaciones y migraciones.
Funciones integradas
En lugar de añadir servicios auxiliares, nostrfy incorpora lo que un relé público suele necesitar:
Grupos NIP-29 + LiveKit
Grupos impuestos por el relé, eventos de moderación y metadatos de grupo firmados por el relé, además de salas de audio/vídeo vía LiveKit.
Servidor de medios Blossom
Las subidas direccionadas por contenido se ejecutan en su propio nombre de host, en disco local o en un bucket compatible con S3 (AWS S3, Cloudflare R2).
REST API
API /api/v1 de solo lectura en su propio hilo de lectura: consulta eventos por npub, nevent o naddr, con recuentos, estadísticas y búsqueda.
Gestión NIP-86
API de gestión JSON-RPC con autenticación Bearer o NIP-98, concesiones de métodos delegadas y códigos de invitación.
Donde strfry destaca
strfry sigue siendo una excelente opción: originó el protocolo negentropy, admite reinicios sin tiempo de inactividad y compresión WebSocket opcional, y su interfaz de plugins write-policy permite ejecutar lógica arbitraria en cada publicación. Si necesitas un entorno aislado (sandbox) de plugins y nada más de esta lista, strfry es ideal. Si prefieres grupos, medios, REST y gestión integrados — o necesitas una licencia permisiva — nostrfy es el camino más corto.
Migrar desde strfry
No tienes que empezar de cero. nostrfy migrate-strfry lee el propio formato de exportación de strfry, verifica cada evento e importa toda la base de datos — incluidas las eliminaciones NIP-09, los efectos secundarios de moderación NIP-29 y las marcas de primera aparición. Es offline, admite dry-run y es seguro de repetir.