NIP 28 - Chat Publico (explicación en español)
Vengo algo atrasado revisando la documentación de los últimos NIPs asi que voy a tratar de ir escribiendo sobre alguno que otro cada tanto.
Hoy encaro uno que es el NIP-28 - “Public Chat”
Con este NIP se establecen las condiciones basicas para que Nostr de soporte a apps de chat grupal, como un grupo abierto de telegram.
Este NIP (28) no es el que se mete en el mundo de mensajes directos entre usuarios cifrados que es el 04
El NIP-28 define 5 nuevos tipos de eventos 40 a 44. (Un evento en Nostr es cualquier interaccion con el protocolo como creacion de usuario, posteo, follow, block, dm)
• 40: channel create • 41: channel metadata • 42: channel message • 43: hide message • 44: mute user
Evento 40 - Creacion del canal Al momento de crear un canal el evento tiene que soportar nombre, about y foto. Abajo un evento de ejemplo, cambiando el kind y el content pasamos de usar ese json para postear o mandar un dm a crear un canal.
Evento 41 - Editar el canal El evento 41 es la evolucion logica del 40, si se puede crear un canal y un dia le queremos cambiar la foto, nombre o descripcion se deberia poder pisar ese evento. Como sabe que canal edita? en el tag de tipo e referenciamos el evento 40 previo.
En las instrucciones del evento 41 dice:
“Clients SHOULD ignore kind 41s from pubkeys other than the kind 40 pubkey.”
Por eso y por los eventos que se reservan vemos que nostr aun no soporta el rol de un editor o admin del canal que no sea su creador.
Evento tipo 42 - mandar un mensaje
A la hora de mandar un mensaje, en el content va el mensaje. En el tag de tipo e indicamos en que canal lo estamos mandando y si es un mensaje suelto o un reply a un mensaje previo. Si es una respuesta usamos el tag p para marcar el original
Evento tipo 43 - Ocultar un mensaje ❌
No queres ver mas un mensaje y ocultarlo, disparas un evento 43. Podes opcionalmente poner la razon. El cliente puede decidir si ocultarselo al resto (por ejemplo si al menos x cantidad de personas lo oculta)
Evento tipo 44 - Mutear a un usuario
Te cansaste de alguien del chat, disparas un evento tipo 44 y el cliente te deberia ocultar todos sus mensajes, como el 43 pero en bulk.
El cliente decide si lo oculta al resto de los usuarios o no.
Por ahora no hay muchos clients que esten usando esta nip, pero si quieren probarlo pueden jugar con la beta de Arc
Tambien coracle.social tiene una buena implementacion. Aca por ejemplo su formulario para el evento de tipo 40