# ECP-0066: iroh-Gossip Control Protocol For Hybrid MoQ Discovery Status: Implemented ## Decision Add a first-party control protocol carried over iroh-gossip to advertise stream availability across multiple transport paths: - MoQ relay (WebTransport URL + broadcast name + track), - iroh direct (EndpointAddr + broadcast name + track). `ec-node` will expose: 1. `control-announce`: publish control announcements to an iroh gossip topic. 2. `control-listen`: subscribe to the topic and print announcements. 3. Optional integration in `wt-publish` to announce relay-published streams via the same control topic. ## Motivation We currently have two transport worlds: - relay-centric (`wt-publish`), - direct iroh (`moq-publish` / `moq-subscribe`). Discovery is fragmented. A shared iroh control channel makes transport selection explicit and allows consumers to discover either path (or both) from one substrate. ## Scope In scope: - New control protocol data types in `ec-core`. - New `ControlGossip` helper in `ec-iroh`. - New CLI surfaces in `ec-node` for announce/listen. - Optional relay announcement from `wt-publish`. Out of scope: - Policy engine for automatic best-path selection. - Security policy beyond existing iroh/gossip trust boundaries. - Replacing existing catalog gossip immediately (coexist first). ## Alternatives considered - Keep relay and direct discovery completely separate. Rejected because it forces duplicated consumer logic. - Replace existing catalog gossip in one cutover. Rejected because additive coexistence is safer for rollout. ## Rollout / Reversibility - Additive and reversible: removing control commands and topic does not affect existing media paths. - Existing MoQ publish/subscribe flows continue unchanged.