This is the beginning of a thread to collect thoughts and feedback on a protocol improvement proposal. This informal discussion can be used to formalize it into an LIP if it is an idea that someone wants to champion.
Abstracting the Livepeer Protocol To Support More Capabilities
Currently, the Livepeer protocol defines a workflow for nodes to register on chain in order to be discovered to perform video transcoding. There is also a verification mechanism on chain, which can be enabled to ensure they performed this transcoding correctly. Because there is only one on chain verification function baked into the protocol, the only work which can be secured via on chain stake is a single capability - Livepeer Media Server specific transcoding.
The proposed idea here is to abstract the protocol a bit to allow nodes to register with a <capability, verificationFunction()> pair, such that the network can open up a bit to allow more video-specific capabilities secured by whatever verificationFunctions researchers and the market propose.
What are some example capabilities that could be registered on the network, enabling Livepeer’s extensibility into the world’s open video infrastructure?
- Value-add video-processing services, such as object detection and scene classification.
- Multiple types of transcoding and video filters.
- P2P CDN Peer Orchestration
- Validation and verification services
- Storage gateways
- Etc…the list goes on
The two main benefits I see of abstracting the protocol at this stage are:
- More extensible platform with more capabilities beyond just transcoding.
- The verification problem for each of these capabilities gets moved into the open market rather than being protocol determined. This is helpful for non-deterministic types of tasks. Those who develop verification functions that give the users economic security will benefit from more work, relative to those who offer capabilities with weak or non existent verification functions.
There is likely much research to be done in order to open up the protocol a bit in this way. Here are a couple open questions.
Would slashing percentages also have to be offered by the nodes so that users can understand the economic security offered in the case of the provider failing verification? Currently this is set in the protocol for the single verification function, but if there are multiple capabilities and verification functions, they may have to be set by the market.
Would there need to be a registry of available capabilities that nodes can register with? How do these get added to the protocol? Via governance I presume. But another option is that the capabilities could just live as conventions, and all clients could adhere to these conventions. An on chain registry is probably a better idea. Perhaps it could be open and write-only though, such that anyone could add a capability by just writing a new key into the registry.
Overall, I’m excited about taking the first steps to extend the Livepeer protocol in ways that will allow it to truly be the basis for the world’s open video infrastructure. Looking forward to feedback and discussion here, so that we can formalize this into an LIP.