livepeer / livepeer/go-livepeer
Bind transcoding options with transcoded results in orchestrator signature
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 586
- Forks
- 226
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 19
Description
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
At the moment, an orchestrator in on-chain mode will sign the following payload:
H(H(res_1) + H(res_2) + ... + H(res_n))
where res_1, res_2, ..., res_n is the set of transcoded results for a source segment. The signature over this hash can be used by the broadcaster to authenticate the set of transcoded results received from an orchestrator. However, the signature does not bind a specific set of transcoding options with each result.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Bind a set of transcoding options with each result with the orchestrator's signature. We can change the payload signed by the orchestrator to:
H(H(res_1 + t_opts_1) + H(res_2 + t_opts_2) + ... + H(res_n + t_opts_n))
where t_opts_1, t_opts_2, ..., t_opts_n is the set of transcoding options associated with the set of transcoded results where t_opts_i corresponds to res_i.
Each t_opt_i can be the 4 byte identifier associated with the video profile associated with the result.
This will require:
- Updating the orchestrator signing logic
- Updating the broadcaster's verification logic
Contributor guide
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
Start in core/orchestrator.go at the linked signing logic, then review common/videoprofile_ids.go for the video profile identifiers and locate the broadcaster's verification logic. Done means the orchestrator signature binds each transcoded result to its corresponding transcoding option and the broadcaster verifies that binding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend-api-design, cryptography
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100