La pagina que te enseña como funciona Nostr. Parte VIII

Pedir cosas a un relay: suscripciones y filtros

La página es la primera sección de la columna sobre relays en la demo educativa de Nostr. Se explica cómo funciona una suscripción: una petición con nombre que devuelve la historia coincidente, marca el final de esa historia y después se convierte en un canal de eventos nuevos en vivo.

Funcionalidades principales

  • Suscripción interactiva: el visitante construye una petición REQ con filtros (kinds y limit), la envía al relay y observa el tráfico resultante.

  • Visualización del ciclo completo: muestra las tres fases de una suscripción: la historia almacenada, el mensaje EOSE y los eventos nuevos a medida que aparecen.

  • Doble filtro: permite enviar dos filtros en el mismo REQ para demostrar que funcionan como alternativas, no como condiciones acumulativas.

  • Publicación para capturar eventos: se puede publicar un evento tras suscribirse y ver cómo llega por el canal en vivo, después del EOSE.

Idea central

Dentro de un filtro, todas las condiciones deben cumplirse a la vez. Entre filtros distintos, basta con que se cumpla cualquiera.

Esta lógica es la base de todas las consultas en Nostr, y los clientes la usan para saber exactamente qué están pidiendo y qué están recibiendo.

El ciclo de una suscripción

  1. REQ: se envía la petición con un identificador elegido por el cliente y uno o más filtros.
  2. Historia: el relay envía todo lo coincidente que ya tiene almacenado.
  3. EOSE: llega el mensaje de fin de eventos guardados, que marca la frontera entre historia y actualidad.
  4. Noticias: a partir de ese momento el relay sigue enviando solo los eventos nuevos que vayan llegando.

Los clientes usan la frontera del EOSE para decidir cuándo dejar de mostrar el indicador de carga: antes de él se está recibiendo historia, después de él se está recibiendo noticias.

Estructura de la petición de la demo

json
["REQ","explore",{"kinds":[1],"limit":10}]
  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr