NIP-31: Gestión de kinds de evento desconocidos
Advertencia de estado: La especificación NIP-31 actual se marca a sí misma como
unrecommendedpor ser “unnecessarily bloated” (innecesariamente sobrecargada), y su línea de estado dice draft, unrecommended y optional. Los relays ya contienen eventos que usan esta convención, así que esta página explica cómo los leen los clientes. No recomienda NIP-31 para protocolos nuevos.
NIP-31 define una etiqueta alt de nivel superior. La etiqueta contiene un breve resumen en texto plano para kinds de evento personalizados que no están pensados para leerse como notas de texto normales.
Cómo funciona
El autor de un evento de kind personalizado añade una etiqueta alt con un texto que una persona pueda leer. Los clientes construidos en torno a kind 1 no tienen que suscribirse a todos los kinds que no reconocen. Aun así, sus usuarios pueden encontrarse con uno de esos eventos cuando una nota lo referencia, y la etiqueta aporta algo de contexto aunque el cliente no implemente ese kind.
Fragmento de etiqueta, no un evento completo:
["alt", "<short plaintext summary>"]
Una etiqueta legible solo cubre la visualización. No puede emitir un voto, ejecutar una solicitud de monedero ni realizar ninguna otra acción nativa del kind. Para una interacción más rica, la especificación remite a NIP-89: Recommended Application Handlers.
Implementaciones
En la tarjeta de evento desconocido de noStrudel en el commit 7c68acf, la primera etiqueta alt se recorta y se convierte en la etiqueta principal, con una línea opcional Using <client>. Un valor ausente o en blanco produce Unknown event (kind ...), y hasta tres líneas de contenido se muestran por separado. El mismo componente resuelve la etiqueta client mediante plantillas de handlers NIP-89. Muestra un botón Open cuando existe una dirección compartible y Open in <client> cuando se resuelve un enlace de handler válido. La explicación y el envío a una app son controles separados.
UnknownEventDigest.kt de Amethyst en el commit 553f761 prefiere el contenido que clasifica como prosa y recurre a alt en su defecto. Su parser recorta los valores y toma el primer alt no vacío. Como resultado, un evento cuyo primer alt está en blanco puede recibir aquí una etiqueta distinta que en noStrudel. Ambas descripciones reflejan el código fuente en esos commits. Ninguna confirma cómo se comporta una versión publicada.
Límites
altes una etiqueta, así que el ID y la firma del evento definidos en NIP-01 la cubren. Una firma válida muestra que el autor publicó la etiqueta. No muestra que la etiqueta sea exacta, así que un resumen puede ser engañoso.- Las etiquetas son públicas. Un
alten un evento con contenido cifrado expone su resumen y puede revelar lo que el contenido oculta. - Las dos propiedades anteriores provienen del envoltorio de evento de NIP-01. El propio texto de NIP-31 no las establece como requisitos.
- Una etiqueta
altde nivel superior es distinta del campoaltde descripción de imagen dentro deimeta, y los renderizadores los analizan por separado.
Fuentes primarias:
- Especificación NIP-31
- embedded-unknown.tsx de noStrudel en el commit 7c68acf
- UnknownEventDigest.kt de Amethyst en el commit 553f761
Mencionado en:
Ver también: