livepeer / livepeer/livepeer-python-gateway

Single-shot WebSocket support with on-chain payments

Offen
#43 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
Python
Sterne
1
Forks
7
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

What

Support single-shot WebSocket apps on-chain. A WS held-open session needs the same interval payment streamer as SSE, but the initial payment can't ride an inline 402 — you can't 402 a WS upgrade, and WS clients can't read the upgrade response headers.

Scope

  • get_payment_params() — preflight call that fetches the 402 challenge (manifest_id, payment_params, orchestrator, payment_interval) over a plain HTTP request, so the client can pay before the upgrade.
  • ws_connect helper — sets the initial payment headers (Livepeer-Payment / Livepeer-Segment / Livepeer-Payer-Address) on the upgrade request, opens the WS, starts the payment streamer, and stops it on close.
  • Reuse the session-scoped streamer from #42 (no new payment loop).
  • End-to-end paid-WS test: preflight → paid upgrade through the single-shot proxy → metering over the connection lifetime → release on close.

Notes / dependencies

  • Reuses the streamer and server metering from #42 — the only WS-specific additions are the preflight and the ws_connect helper.
  • Requires a go-livepeer preflight params affordance (a dedicated …/challenge endpoint is preferred over an implicit "GET returns 402"). Track on go-livepeer alongside #3955.
  • Offchain single-shot WS already works (see the ja/live-runner ping-pong example); this issue is the on-chain path.

Part of the Live Runner: Single-Shot Pipelines project.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Überprüfung des sitzungsbezogenen Streamers und des Server-Meterings aus #42 und vergleiche anschließend den bestehenden offchain Single-Shot-WebSocket-Flow im ja/live-runner-Ping-Pong-Beispiel. Bestätige vor der Implementierung die in #3955 erfasste go-livepeer-Unterstützung für preflight params und den Upgrade-Pfad. Erledigt ist die Aufgabe, wenn der paid-WS-End-to-End-Test preflight, paid upgrade, Metering und die Freigabe beim Schließen abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api, networking
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.