every.channel/evolution/proposals/ECP-0013-stream-catalog-gossip.md
2026-02-15 16:17:27 -05:00

1.1 KiB

ECP-0013: stream catalog gossip for discovery

Status: Draft

Problem

We need a decentralized way to discover live streams and their MoQ endpoints without a central registry.

Constraints

  • Must work over iroh transports (QUIC, relays).
  • Should be encrypted at the transport layer and signed by endpoint identities.
  • Lightweight enough to broadcast frequently.

Decision

  • Introduce a StreamCatalogEntry structure that pairs a StreamDescriptor with MoQ transport metadata and optional encryption parameters.
  • Publish catalog entries over iroh-gossip on a well-known topic derived from every.channel/catalog/v1.
  • ec-node can optionally announce entries when publishing a stream.

Alternatives considered

  • Centralized HTTP registry: rejected due to resilience and governance risks.
  • Static peer lists only: rejected due to poor discoverability.

Rollout / teardown

  • Add catalog types to ec-core and gossip helpers to ec-iroh.
  • Add CLI flags to ec-node to announce catalog entries.
  • Defer full catalog sync/merge semantics until initial interoperability is validated.