Joystream / Joystream/joystream
Argus: content delivery authentication
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
Background
Right now, anyone can fetch any content from any distributor. This unconstrained form of service provisioning is not really workable, and leaves the economics of the system too vulnerable to parasitical uses. The long term goal is for scheme where gateways foot the bill for clients, however, some basic form of authentication makes sense even before we get that far. A separate problem is that it means that unlisted videos basically are accessible to the world, despite being hidden from the interface of compliant UIs.
Proposal
Distributors authenticate requests to fetch data, and require that there is some sort of Gateway specific authorization. This will require changes to Orion, and possibly also the runtime - at least to represent gateways as actors, and their endpoints. The main design challenge here will be how to make this authentication be efficient, in terms of how often it must be done, despite the fact all distributors and orion instances do not have any shared state. Certainly doing some sort of interactive challenge response step for every client request would not work. We should also be sensitive to the problem of requiring any sort of signing by the client, as that will create horrible UX if they had to sign with a wallet account. Clients should instead be able to be gateway users without a wallet, $JOY or a membership.
Note that, to support blocking access to unlisted media files, you have to be able to discern who the viewer is. The owner still wants to be able to view the video from the infra most likely, its just not supposed to be available to everyone else. Perhaps also content working group actors? Unsure.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The proposal names Orion and the runtime but does not identify files, tests, or specific entry points. Start by mapping how distributors, gateways, and content-fetch requests are represented across those components; done requires an agreed authentication design that covers gateway authorization, viewer identity, and access to unlisted media.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- authentication, distributed-systems, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100