livepeer / livepeer/go-livepeer

Bind transcoding options with transcoded results in orchestrator signature

Open
#1,091 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: blockchain area: broadcasting need: discussion
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.