Skip to content

Map gateway, Node, Go runner, payment, and management boundaries #99

Closed

Description

@j0sh

Outcome: The gateway, Node, runner, payment and management boundaries are mapped from pinned source, and the selected k3s/gVisor topology and remaining delivery questions have owners. The allocator owns orchestrator pod upgrades; ordinary HTTP app images need no Livepeer awareness.


Parent: #82. Reviewed source references: Node 7a75438ed94fa0472bb6c70efe5f81f5193ab728; Go runner 38b527c7e74b3801e5ddd67e51ad52d98576bfe0. These are evidence for the mapping, not sandbox release pins or a deployed-cluster test.

Current protocol boundaries

Boundary Implemented behavior
Discovery → client Node /discovery, standalone aggregation and signer discovery advertise orchestrator-owned app URLs, capacity, mode, pricing and optional GPU metadata. Discovery is inventory, not placement or hardware qualification.
Client → orchestrator Persistent mode reserves through POST /apps/{runner_id}/session and uses the returned app_url; single-shot mode uses /apps/{runner_id}/app. Node proxies HTTP/SSE/WebSocket and Trickle.
Orchestrator ↔ runner Dynamic Go SDK registration uses a bootstrap credential, then a runner-scoped heartbeat credential. Node injects session ID/token/control headers and sends reserved/released O2R events; callbacks authorize runner controls. Static runners are also supported but RunnerConfig loads at startup.
Payment/redemption Clients provide signed tickets. Node currently validates/credits/charges, durably stores winning tickets, and runs redemption with a keystore in the orchestrator process. Session and payment control state are process-local; winning tickets persist.
Management Registration, unregister and session stop are protocol controls. Neither reviewed repo implements allocator enrollment, Kubernetes reconciliation, arbitrary deployment, approved exec, host upgrades or delegated management authorization.

Evidence: Node route/auth contract, orchestrator HTTP/proxy implementation, Go registration/O2R, payment recovery/storage.

Selected target topology (decision recorded 2026-10-29; implementation pending)

Still to specify

Mapping completion (2026-10-30): The current protocol map, selected placement and credential split, and remaining design questions with owning tickets are recorded above. Concrete endpoints, identity and durable-state contracts, and tested recovery sequences are delivery work in #83/#85/#87/#92/#94/#95/#96 and livepeer/node #23/#24/#25. This source-mapping issue is complete; it does not claim deployed-cluster validation. Central allocator services and UI remain platform work.

Activity

  1. j0sh commented on Oct 30, 2026

    @j0sh
    Author

    Decision record from discussion (2026-10-29):

    The issue body now distinguishes the pinned current behavior from this selected target. The remaining transport, endpoint, identity, adapter and redemption-handoff details are listed there and in their delivery tickets.

  2. added this to the Milestone 6: Sandbox milestone on Oct 30, 2026
  3. j0sh commented on Oct 30, 2026

    @j0sh
    Author

    Closing this as a completed source-mapping and decision-handoff issue, consistent with #100 and #101. The current protocol/authority boundaries, selected orchestrator and app placement, direct adapter-to-Node heartbeat path, payment/redemption split, and unresolved design questions are recorded in the issue body.

    The remaining work has delivery owners: delegation and credential boundaries (#83/#85), machine and runner identity (#87/#92), app deployment and adapter lifecycle (#92), drain and upgrade recovery (#94 and livepeer/node #23), management/public endpoints (#95/#96), external redemption handoff (livepeer/node #24), and multi-capability registration before launch (livepeer/node #25). Those tickets retain the design and test gates. Closing #99 does not assert that the sandbox has been deployed or validated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions