About the Protocol Internals category

The VideoCoin protocol is implemented by two smart contracts: StreamManager and Stream . The StreamManager is unique, i.e. deployed once, while one Stream contract is deployed for each streaming job.


In the system we have different roles which have different purposes.

  1. Manager : an account owning the StreamManager contract. It is responsible for approving stream creation requests, providing ids for input chunks and for maintaining the validator list.

  2. Client : regular account; can request and create streams.

  3. Miner/Transcoder : responsible for video transcoding work; register proofs and transcoded video chunks ids.

  4. Validator : validates the proofs submitted by miners.

Smart Contracts

StreamManager smart contract is responsible for managing validator list, manages Stream approval and creation and manages refund permissions.

Stream smart contract represents a video transcode job which is created by a client.The video is split in chunks; miners submit proofs for each chunk for each profile and validators approve miner proofs.