Skip to content

Expose orchestrators list on reserve_session() for direct multi-orch discovery #36

Description

@rickstaa

reserve_session() only accepts a single discovery_url, so selecting across a few orchestrators needs either a remote signer + /discover-orchestrators aggregator, or dropping to the low-level API.

The list support already exists one layer down: runner_selector() / discover_orchestrator_runners() / orchestrator_discovery_urls() all accept orchestrators: Sequence[str] | str (list or comma-delimited), fan out each /discovery, and select in parallel. reserve_session() just does not forward it.

Why

Test/select across a chosen set of orchs without standing up a signer + aggregator (funded wallet, container, and a capability filter that drops generic apps). Direct per-orch discovery, so it works with any app id.

Today

Possible only via runner_selector(orchestrators=[...]), which returns a RunnerSelectionCursor and forces re-implementing the cursor -> LiveRunnerSession extraction that reserve_session() already does. Or through a remote signer discovery endpoint through the OrchAddr flag. However this has been broken right now (see livepeer/go-livepeer#3938 (comment)).

Scope

Dev/testing ergonomics, not a new production path: direct discovery only (no registry, no price-capping), not a replacement for signer aggregation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions