You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(rpc): require the events ?topics= query parameter
Match the Beacon API eventstream, which makes `topics` mandatory: a missing
or empty parameter now returns 400 instead of defaulting to all topics. This
removes the divergence the endpoint previously documented.
Also drop the now-unused TopicSet::ALL sentinel.
Valid values are exactly the event names above: `head`, `block`, `justified_checkpoint`, `finalized_checkpoint`.
115
+
Valid values are exactly the event names above: `head`, `block`, `justified_checkpoint`, `finalized_checkpoint`. As in the Beacon API `eventstream` endpoint, `topics` is mandatory: there is no "subscribe to everything" default; list the topics you want.
116
116
117
117
| Status | Condition |
118
118
|--------|-----------|
119
-
|`200`| Stream opened (filtered, or unfiltered when the parameter is missing/empty) |
120
-
|`400`| Any listed name is not a known topic (body names the offending value) |
121
-
122
-
> **Divergence from the Beacon API:** the Beacon `eventstream` endpoint makes `topics` required; lean defaults a missing or empty parameter to all topics.
119
+
|`200`| Stream opened for the listed topics |
120
+
|`400`|`topics` is missing or empty, or any listed name is not a known topic (body names the offending value) |
123
121
124
122
Events are fanned out over a bounded broadcast channel. A client that reads too slowly skips past the events it missed: they are dropped for that subscriber rather than back-pressured onto the actor, so treat the stream as best-effort and re-sync via the blocks endpoints after a gap. A client that falls behind receives an SSE comment line `: error - dropped N messages` marking the gap (wire-compatible with Lighthouse) before the stream continues; re-sync via the blocks endpoints rather than trusting the skipped range. Keep-alive comments are sent periodically to hold idle connections open.
0 commit comments