Transcoder Megathread - Start here to learn about playing the role of transcoder on Livepeer


#1

This thread is meant to contain all the resources that one needs in order to understand what it means to be a transcoder on the Livepeer Network, and how to successfully operate as a transcoder.

Quick Links

Transcoder Election Dashboard - https://explorer.livepeer.org/transcoders

Transcoder campaign thread - https://forum.livepeer.org/c/transcoders/transcoder-campaign

Livepeer Whitepaper - https://github.com/livepeer/wiki/blob/master/WHITEPAPER.md

Transcoder chat - https://discord.gg/cBfD23u

Setting up Transcoder Node Tutorial: https://drive.google.com/file/d/10odUsJSY6-bOIMajDi3wc95-jOw8iR4a/view?usp=sharing

What is a transcoder on Livepeer?

Video transcoding is the process of converting video from one format to another. For background on why video transcoding is necessary see this link from DaCast. On Livepeer, transcoders run the Livepeer Media Server software in order to provide video transcoding, but they also have special responsibilities to the network in terms of generating new Livepeer Token (LPT), and helping to settle payments from broadcasters across all network participants.

In the medium term, Transcoders will run significant scaled hardware and have significant bandwidth to handle many parallel streams of video. Their setups may be akin to cryptocurrency mining operations. But in the short term, while Livepeer is in alpha and the network is rolling out, the primary responsibilities of a transcoder are:

  1. Keep your node running 24/7.
  2. Conduct all the required protocol interactions for performing a transcoding job, minting new Livepeer Token, and claiming your fees + rewards.
  3. Pay attention to the network economics and respond to your incentives accordingly. This could be fixing bugs, adjusting your prices, or sharing feedback and bug reports to the community.
  4. Secure your node so that no one can access your Ethereum private key.

You can see that being a transcoder at this stage is just as much about understanding and interacting with the Livepeer protocol running on the Ethereum blockchain, as it is about actually transcoding video. A great transcoder may be 1/4th DevOps professional, 1/4th economics and protocol enthusiast, 1/4th developer, and 1/4th community builder.

Keep your node running 24/7

The Livepeer node is a command line process that runs on OS X or Linux. It’s started in transcode mode quite simply by passing the --transcoder flag.

At this point, if Livepeer was perfect software, it would run 24/7 indefinitely. However Livepeer is very much in alpha. The process may crash. Or even worse, the process may continue running but get into a state where it’s lost connectivity with its peers on the network, or won’t continue taking all the protocol actions.

Your job is to keep this process running, observe and test that it’s doing what it’s supposed to be doing, and potentially even improve the software as you find bugs that is causing it to act incorrectly.

Conduct all required protocol interactions

Note that, again, the node should do all of this for you, if it is running correctly. But if it is not running, or you discover a bug, the effects will be on lost opportunity for you as a transcoder, so best to be aware of what is expected of you.

  1. Initialize the round. (only one transcoder has to do this once per day, so you may not have to).
  2. Call reward() once per round. This is how you get your LPT token rewards.
  3. For transcode jobs that you get assigned and perform, claimWork(), verify(), and distributeFees(). This is all handled for you by the software and would be difficult to compose manually. See details in the Spec.

Pay attention to network economics

To get work you have to set your prices accordingly and attract delegators. The best way to do this is to pay close attention to the network parameters in the livepeer_cli and at https://explorer.livepeer.org.

In your campaign to be elected as a transcoder, and in your ongoing communications to the community, you can promote your pricing, your fee shares and reward cuts, and your history of reliability in calling reward() and distributing fees.

Secure your node

A transcoder node must be online 24/7 constantly signing (and paying gas for) Ethereum transactions. This means that the private key for a funded account is likely sitting on the node in an unlocked state.

  1. This is a risky situation in any circumstance.
  2. The Livepeer software is in alpha and certainly may contain bugs or opportunities for exploits.

It is up to you to run your node responsibly using solid security practices, to manage any associated ETH or LPT responsibly, and to be on the lookout for and fix bugs before they cause any harm to your node.

How to become a transcoder

The Livepeer protocol elects active transcoders according to their total delegated stake. This is a complex topic which is covered in An overview of bonding, How to stake and delegate in order to participate in the network, and The Livepeer Whitepaper. To actually declare yourself a transcoder candidate, you fund your node with ETH and LPT, and you bond to yourself. The CLI makes it easy to do this.

livepeer_cli --transcoder

57%20PM

Setting your reward cut, fee share, and price/segment

These are the levers that you have as a transcoder to compete for delegated stake and work on the network against other transcoders.

Each round Livepeer mints new LPT, and distributes them to everyone in proportion to how much they stake. Reward Cut is the % of your delegators LPT that you will keep for yourself. Delegators -> paying you because you’re doing great work for the network and routing fees and rewards towards them.

As a transcoder you charge fees to transcode video. Fee share is the % of these fees you will share back to your delegators. You -> rewarding your delegators for providing great QA to the network and routing work towards you.

Price/segment is what you charge per 4 second segment of video that you transcode. (Note that this will be adjusted in the future to take into account what type of transcoding you performed). If you’d like to charge $0.50/hr/output stream, then at $500/ETH you would set your price/segment to 1,111,111,111,111 wei.

What are the most important things you can do as a transcoder today?

  • Call reward() every round. This is how you get your earned LPT and keep your delegators happy.

  • Keep that node running and pay attention to whether it’s claiming work, verifying work, and distributing fees. If not, participate in the discussion in transcoder chat and even consider filing or fixing issues on the node itself. We’re all in this together!


Setup to test transcoding remotely
So, you've got some Livepeer Tokens... what next?
#2

Note this update from @j0sh: Transcoders will now be required to set a serviceURI when starting nodes to aid in networking between broadcasters and transcoders:


#3

Hi @dob,

Really love the broadcasting quality on iPhone, it’s amazing!
As for being a transcoder, I have two questions:

  1. What’s “Enter bond amount” mean? Why it’s 80000000000000 in your example image? Is that meaning “bond to yourself”? (I can’t find the way to “bond to yourself” in any document)
  2. Can I have my single machine/node do broadcasting and transcoder at the same time?

Again, thanks for such amazing project.
Best,

JC (dAb) KO @ NTUT


#4

Yep, bond amount means “bond to yourself.” The reason it is 8000000000000 in the image is arbitrary…but the reason it is a big number is because Livepeer Token (LPT) is divisible by 10^18, just like Ethereum is. So

1 LPT actually equals 1000000000000000000 base unit LPT. So that’s why you see big numbers being passed around for transcoder price and bond amounts…because you need a lot of zeroes to actually represent a single ETH or LPT.

As far as broadcasting and transcoding at the same time…I believe yes, that is possible. Though keep in mind that as network usage scales, actual transcoding work would quickly overwhelm a single machine so trying to also broadcast to the same machine may lead to degraded performance.


#5

hi @JCKO can you explain a bit more what you meant by broadcasting ability on iPhone? I wasn’t aware this was possible.


#6

Here’s a great writeup on how to securely operate a transcoder node on Ubuntu on AWS. It’s very detailed: https://github.com/alexlines/livepeer-transcoder-ops