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

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!

3 Likes

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:

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

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.

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

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

2 Likes

Here’s the tutorial you filmed also, maybe to add to megathread? https://drive.google.com/file/d/10odUsJSY6-bOIMajDi3wc95-jOw8iR4a/view?ts=5b214d63

Hello

I am trying to become a transcoder but I am finding some difficulties, maybe I am misunderstanding something something or skipping some steps. I tried with version 0.4.0 and 0.3.3

I am using mac osx Mojave 10.14 (18A391)

If more info is needed please let me know

So lets describe my issues:

v0.3.3

I start my node

with

livepeer -transcoder -rinkeby -v 6

The following logs appear

I0327 17:56:03.530948   38882 livepeer.go:96] ***Livepeer is running on the Rinkeby test network: 0x37dc71366ec655093b9930bc816e16e6b587f968***
I0327 17:56:03.533007   38882 db.go:387] Initialized DB node
I0327 17:56:04.168313   38882 accountmanager.go:49] Found existing ETH account
I0327 17:56:04.168360   38882 accountmanager.go:157] Defaulting to first ETH account in keystore 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
I0327 17:56:04.168378   38882 accountmanager.go:58] Using ETH account: 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
I0327 17:56:05.054404   38882 accountmanager.go:76] Passphrase required to unlock ETH account 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
Passphrase:
I0327 17:56:34.177803   38882 accountmanager.go:87] Unlocked ETH account: 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
I0327 17:56:34.178157   38882 client.go:229] Controller: 0x37dC71366Ec655093b9930bc816E16e6b587F968
I0327 17:56:34.302156   38882 client.go:250] LivepeerToken: 0x24f56eF2fED379421BEE64Ecafc2bC744f72522b
I0327 17:56:34.413164   38882 client.go:271] ServiceRegistry: 0x21b1E9dcFf801f71C3e5c7385FD16d0742cb64D1
I0327 17:56:34.528866   38882 client.go:292] BondingManager: 0xF6b0Ceb5e3f25b6FBecf8186F8A68B4E42A96a17
I0327 17:56:34.642483   38882 client.go:313] JobsManager: 0x0A209545bb10bC2F78713a2699795ECfEa76762D
I0327 17:56:34.757719   38882 client.go:334] RoundsManager: 0xEB0EF46B5771D523402234FF0d7596d2C62411dE
I0327 17:56:34.869246   38882 client.go:355] Minter: 0xbbce46C5C018497f13197024171Fd442d9EF5a25
I0327 17:56:34.989136   38882 client.go:376] Verifier: 0x17c492D2b555d54bD3EE826fB49d6c1ECD378d27
I0327 17:56:35.121725   38882 client.go:397] LivepeerTokenFaucet: 0xD69A2eC8f2F83267CE82A6d01837045BaE0EB9Bc
I0327 17:56:35.350660   38882 livepeer.go:326] Transcoder 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4 is inactive
E0327 17:56:35.874989   38882 livepeer.go:356] Could not parse service URI; transcoder may be unreachable
E0327 17:56:35.875026   38882 livepeer.go:360] Service address http://127.0.0.1:8935 did not match discovered address https://217.18.40.5:8935; set the correct address in livepeer_cli or use -serviceAddr
I0327 17:56:37.491104   38882 claimmanager.go:115] Initialized DB node
I0327 17:56:37.491131   38882 db.go:581] db: Querying unclaimed receipts
I0327 17:56:38.143795   38882 eventmonitor.go:189] SubscribeNewHead successful.
I0327 17:56:38.143883   38882 livepeer.go:291] ***Livepeer Running in Transcoder Mode***
I0327 17:56:38.144028   38882 webserver.go:1223] CLI server listening on 127.0.0.1:7935
I0327 17:56:38.143961   38882 mediaserver.go:100] Transcode Job Price: 1, Transcode Job Type: [{P240p30fps16x9 600k 30 426x240 16:9} {P360p30fps16x9 1200k 30 640x360 16:9}]
I0327 17:56:38.144125   38882 cert.go:83] Private key and cert not found. Generating
I0327 17:56:38.145097   38882 cert.go:22] Generating cert for 127.0.0.1
I0327 17:56:38.146212   38882 rpc.go:345] Listening for RPC on :8935
I0327 17:56:51.136887   38882 db.go:456] db: Setting LastSeenBlock to 4105100
I0327 17:57:06.189534   38882 db.go:456] db: Setting LastSeenBlock to 4105101

I launch the cli with

livepeer_cli

Giving me the following output

+-----------------------------------------------------------+
| Welcome to livepeer-cli, your Livepeer command line tool  |
|                                                           |
| This tool lets you interact with a local Livepeer node    |
| and participate in the Livepeer protocol without the	    |
| hassle that it would normally entail.                     |
|                                                           |
+-----------------------------------------------------------+

+-----------+
|NODE STATS|
+-----------+
*-----------------------------*--------------------------------------------*
|                   HTTP Port |                                       7935 |
*-----------------------------*--------------------------------------------*
|          Controller Address | 0x37dC71366Ec655093b9930bc816E16e6b587F968 |
*-----------------------------*--------------------------------------------*
|       LivepeerToken Address | 0x24f56eF2fED379421BEE64Ecafc2bC744f72522b |
*-----------------------------*--------------------------------------------*
| LivepeerTokenFaucet Address | 0xD69A2eC8f2F83267CE82A6d01837045BaE0EB9Bc |
*-----------------------------*--------------------------------------------*
|                 ETH Account | 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4 |
*-----------------------------*--------------------------------------------*
|                 LPT Balance |                       10000000000000000000 |
*-----------------------------*--------------------------------------------*
|                 ETH Balance |                        2999798279000000000 |
*-----------------------------*--------------------------------------------*
+----------------+
|TRANSCODER STATS|
+----------------+
*---------------------------*----------------*
|                    Status | Not Registered |
*---------------------------*----------------*
|                    Active |          false |
*---------------------------*----------------*
|               Service URI |                |
*---------------------------*----------------*
|           Delegated Stake |         0 LPTU |
*---------------------------*----------------*
|            Reward Cut (%) |              0 |
*---------------------------*----------------*
|             Fee Share (%) |              0 |
*---------------------------*----------------*
|         Price Per Segment |          0 WEI |
*---------------------------*----------------*
|    Pending Reward Cut (%) |              0 |
*---------------------------*----------------*
|     Pending Fee Share (%) |              0 |
*---------------------------*----------------*
| Pending Price Per Segment |          0 WEI |
*---------------------------*----------------*
|         Last Reward Round |              0 |
*---------------------------*----------------*
+------------------------------+
|TRANSCODER EVENT SUBSCRIPTIONS|
+------------------------------+
*--------------------------------*-------*
|     Watching for new rounds to | false |
|                     initialize |       |
*--------------------------------*-------*
|       Watching for initialized |  true |
|          rounds to call reward |       |
*--------------------------------*-------*
|          Watching for new jobs | false |
*--------------------------------*-------*
+---------------+
|DELEGATOR STATS|
+---------------+
*------------------*--------------------------------------------*
|           Status |                                   Unbonded |
*------------------*--------------------------------------------*
|            Stake |                                          0 |
*------------------*--------------------------------------------*
|   Collected Fees |                                          0 |
*------------------*--------------------------------------------*
|    Pending Stake |                 Please fetch pending stake |
|                  |                                 separately |
*------------------*--------------------------------------------*
|     Pending Fees |                  Please fetch pending fees |
|                  |                                 separately |
*------------------*--------------------------------------------*
|  Delegated Stake |                                          0 |
*------------------*--------------------------------------------*
| Delegate Address | 0x0000000000000000000000000000000000000000 |
*------------------*--------------------------------------------*
| Last Claim Round |                                          0 |
*------------------*--------------------------------------------*
|      Start Round |                                          0 |
*------------------*--------------------------------------------*
CURRENT ROUND: 82102

What would you like to do? (default = stats)
1. Get node status
2. View protocol parameters
3. List registered transcoders
4. Print latest jobs
5. Invoke "initialize round"
6. Invoke "bond"
7. Invoke "unbond"
8. Invoke "rebond"
9. Invoke "withdraw stake" (LPT)
10. Invoke "withdraw fees" (ETH)
11. Invoke "claim" (for rewards and fees)
12. Invoke "transfer" (LPT)
13. Invoke "reward"
14. Invoke multi-step "become a transcoder"
15. Set transcoder config
16. Set Eth gas price
17. Get test LPT
18. Get test ETH

I choose 14. Invoke multi-step "become a transcoder"
I leave all default values and 8000000000000 as bound amount

In the node logs the following appear

******************************Eth Transaction******************************

Invoking transaction: "bond".  Params: [8000000000000 [171 26 65 215 187 55 53 31 191 166 92 155 198 112 143 189 145 37 61 164]]
Transaction Failed: failed to estimate gas needed: gas required exceeds allowance or always failing transaction

***************************************************************************
E0327 17:59:40.615879   38882 webserver.go:249] failed to estimate gas needed: gas required exceeds allowance or always failing transaction
I0327 17:59:51.133084   38882 db.go:456] db: Setting LastSeenBlock to 4105112

Doing some research I found

This is because the gas estimator is giving incorrect estimates. To fix it, you can manually pass in a gas limit using -gasLimit. For example, $ livepeer -transcoder -gasLimit 400000.

So I start with the following command

livepeer -transcoder -rinkeby -gasLimit 400000 -v 6

Giving me the following output

I0328 09:20:32.185672   42354 livepeer.go:96] ***Livepeer is running on the Rinkeby test network: 0x37dc71366ec655093b9930bc816e16e6b587f968***
I0328 09:20:32.197392   42354 db.go:387] Initialized DB node
I0328 09:20:32.874139   42354 accountmanager.go:49] Found existing ETH account
I0328 09:20:32.874238   42354 accountmanager.go:157] Defaulting to first ETH account in keystore 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
I0328 09:20:32.874268   42354 accountmanager.go:58] Using ETH account: 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
I0328 09:20:33.826190   42354 accountmanager.go:76] Passphrase required to unlock ETH account 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
Passphrase:
I0328 09:20:52.252856   42354 accountmanager.go:87] Unlocked ETH account: 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4
I0328 09:20:52.256687   42354 client.go:229] Controller: 0x37dC71366Ec655093b9930bc816E16e6b587F968
I0328 09:20:52.382890   42354 client.go:250] LivepeerToken: 0x24f56eF2fED379421BEE64Ecafc2bC744f72522b
I0328 09:20:52.498808   42354 client.go:271] ServiceRegistry: 0x21b1E9dcFf801f71C3e5c7385FD16d0742cb64D1
I0328 09:20:52.624866   42354 client.go:292] BondingManager: 0xF6b0Ceb5e3f25b6FBecf8186F8A68B4E42A96a17
I0328 09:20:52.805809   42354 client.go:313] JobsManager: 0x0A209545bb10bC2F78713a2699795ECfEa76762D
I0328 09:20:52.926959   42354 client.go:334] RoundsManager: 0xEB0EF46B5771D523402234FF0d7596d2C62411dE
I0328 09:20:53.046369   42354 client.go:355] Minter: 0xbbce46C5C018497f13197024171Fd442d9EF5a25
I0328 09:20:53.169043   42354 client.go:376] Verifier: 0x17c492D2b555d54bD3EE826fB49d6c1ECD378d27
I0328 09:20:53.285759   42354 client.go:397] LivepeerTokenFaucet: 0xD69A2eC8f2F83267CE82A6d01837045BaE0EB9Bc
I0328 09:20:53.557226   42354 livepeer.go:326] Transcoder 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4 is inactive
E0328 09:20:54.097844   42354 livepeer.go:356] Could not parse service URI; transcoder may be unreachable
E0328 09:20:54.097914   42354 livepeer.go:360] Service address http://127.0.0.1:8935 did not match discovered address https://217.18.40.5:8935; set the correct address in livepeer_cli or use -serviceAddr
I0328 09:20:55.776067   42354 claimmanager.go:115] Initialized DB node
I0328 09:20:55.776445   42354 db.go:581] db: Querying unclaimed receipts
I0328 09:20:56.465073   42354 eventmonitor.go:189] SubscribeNewHead successful.
I0328 09:20:56.467304   42354 livepeer.go:291] ***Livepeer Running in Transcoder Mode***
I0328 09:20:56.468258   42354 webserver.go:1223] CLI server listening on 127.0.0.1:7935
I0328 09:20:56.467863   42354 mediaserver.go:100] Transcode Job Price: 1, Transcode Job Type: [{P240p30fps16x9 600k 30 426x240 16:9} {P360p30fps16x9 1200k 30 640x360 16:9}]
I0328 09:20:56.468919   42354 cert.go:83] Private key and cert not found. Generating
I0328 09:20:56.470230   42354 cert.go:22] Generating cert for 127.0.0.1
I0328 09:20:56.472047   42354 rpc.go:345] Listening for RPC on :8935
I0328 09:21:09.154310   42354 db.go:456] db: Setting LastSeenBlock to 4108797
I0328 09:21:24.106527   42354 db.go:456] db: Setting LastSeenBlock to 4108798
I0328 09:21:39.145460   42354 db.go:456] db: Setting LastSeenBlock to 4108799

I run again livepeer_cli and gives me the following output

+-----------------------------------------------------------+
| Welcome to livepeer-cli, your Livepeer command line tool  |
|                                                           |
| This tool lets you interact with a local Livepeer node    |
| and participate in the Livepeer protocol without the	    |
| hassle that it would normally entail.                     |
|                                                           |
+-----------------------------------------------------------+

+-----------+
|NODE STATS|
+-----------+
*-----------------------------*--------------------------------------------*
|                   HTTP Port |                                       7935 |
*-----------------------------*--------------------------------------------*
|          Controller Address | 0x37dC71366Ec655093b9930bc816E16e6b587F968 |
*-----------------------------*--------------------------------------------*
|       LivepeerToken Address | 0x24f56eF2fED379421BEE64Ecafc2bC744f72522b |
*-----------------------------*--------------------------------------------*
| LivepeerTokenFaucet Address | 0xD69A2eC8f2F83267CE82A6d01837045BaE0EB9Bc |
*-----------------------------*--------------------------------------------*
|                 ETH Account | 0xAB1a41D7bb37351fbfa65c9bC6708fBD91253dA4 |
*-----------------------------*--------------------------------------------*
|                 LPT Balance |                       10000000000000000000 |
*-----------------------------*--------------------------------------------*
|                 ETH Balance |                        2999798279000000000 |
*-----------------------------*--------------------------------------------*
+----------------+
|TRANSCODER STATS|
+----------------+
*---------------------------*----------------*
|                    Status | Not Registered |
*---------------------------*----------------*
|                    Active |          false |
*---------------------------*----------------*
|               Service URI |                |
*---------------------------*----------------*
|           Delegated Stake |         0 LPTU |
*---------------------------*----------------*
|            Reward Cut (%) |              0 |
*---------------------------*----------------*
|             Fee Share (%) |              0 |
*---------------------------*----------------*
|         Price Per Segment |          0 WEI |
*---------------------------*----------------*
|    Pending Reward Cut (%) |              0 |
*---------------------------*----------------*
|     Pending Fee Share (%) |              0 |
*---------------------------*----------------*
| Pending Price Per Segment |          0 WEI |
*---------------------------*----------------*
|         Last Reward Round |              0 |
*---------------------------*----------------*
+------------------------------+
|TRANSCODER EVENT SUBSCRIPTIONS|
+------------------------------+
*--------------------------------*-------*
|     Watching for new rounds to | false |
|                     initialize |       |
*--------------------------------*-------*
|       Watching for initialized |  true |
|          rounds to call reward |       |
*--------------------------------*-------*
|          Watching for new jobs | false |
*--------------------------------*-------*
+---------------+
|DELEGATOR STATS|
+---------------+
*------------------*--------------------------------------------*
|           Status |                                   Unbonded |
*------------------*--------------------------------------------*
|            Stake |                                          0 |
*------------------*--------------------------------------------*
|   Collected Fees |                                          0 |
*------------------*--------------------------------------------*
|    Pending Stake |                 Please fetch pending stake |
|                  |                                 separately |
*------------------*--------------------------------------------*
|     Pending Fees |                  Please fetch pending fees |
|                  |                                 separately |
*------------------*--------------------------------------------*
|  Delegated Stake |                                          0 |
*------------------*--------------------------------------------*
| Delegate Address | 0x0000000000000000000000000000000000000000 |
*------------------*--------------------------------------------*
| Last Claim Round |                                          0 |
*------------------*--------------------------------------------*
|      Start Round |                                          0 |
*------------------*--------------------------------------------*
CURRENT ROUND: 82176

What would you like to do? (default = stats)
1. Get node status
2. View protocol parameters
3. List registered transcoders
4. Print latest jobs
5. Invoke "initialize round"
6. Invoke "bond"
7. Invoke "unbond"
8. Invoke "rebond"
9. Invoke "withdraw stake" (LPT)
10. Invoke "withdraw fees" (ETH)
11. Invoke "claim" (for rewards and fees)
12. Invoke "transfer" (LPT)
13. Invoke "reward"
14. Invoke multi-step "become a transcoder"
15. Set transcoder config
16. Set Eth gas price
17. Get test LPT
18. Get test ETH

Again all default values and bond amount - > 8000000000000

It is giving me the following error:

******************************Eth Transaction******************************

Invoking transaction: "bond".  Hash: "0xb29c961f84330da05d396af980c03f5e98931c24fb6862dc6bcb919db3e56f5c".  Params: [8000000000000 [171 26 65 215 187 55 53 31 191 166 92 155 198 112 143 189 145 37 61 164]]

***************************************************************************
I0328 09:43:39.142415   42354 db.go:456] db: Setting LastSeenBlock to 4108887
E0328 09:43:39.792994   42354 webserver.go:255] tx 0xb29c961f84330da05d396af980c03f5e98931c24fb6862dc6bcb919db3e56f5c failed

This has been happening for two days trying some times, so I am not able to become a transcoder. At this point I am not sure if it is the network, I am doing something wrong or I am missing something.

0.4.0

When I launch livepeer --rinkeby --transcoder

I got the following error

I0328 15:15:33.084297   66992 livepeer.go:141] ***Livepeer is running on the Rinkeby test network: 0x37dc71366ec655093b9930bc816e16e6b587f968***
I0328 15:15:33.084456   66992 livepeer.go:177] Creating data dir: /Users/dcortes/.lpData/rinkeby
E0328 15:15:33.084481   66992 livepeer.go:179] Error creating datadir: mkdir /Users/dcortes/.lpData/rinkeby: no such file or directory
E0328 15:15:33.088274   66992 db.go:115] Error initializing schema unable to open database file
E0328 15:15:33.088343   66992 livepeer.go:186] Error opening DB%!(EXTRA sqlite3.Error=unable to open database file)

I can fix that with mkdir -p /Users/dcortes/.lpData/rinkeby

Now I can run the cli with livepeer_cli

+-----------------------------------------------------------+
| Welcome to livepeer-cli, your Livepeer command line tool  |
|                                                           |
| This tool lets you interact with a local Livepeer node    |
| and participate in the Livepeer protocol without the	    |
| hassle that it would normally entail.                     |
|                                                           |
+-----------------------------------------------------------+

+-----------+
|NODE STATS|
+-----------+
*-----------------------------*--------------------------------------------*
|                   HTTP Port |                                       7935 |
*-----------------------------*--------------------------------------------*
|          Controller Address | 0x37dC71366Ec655093b9930bc816E16e6b587F968 |
*-----------------------------*--------------------------------------------*
|       LivepeerToken Address | 0x24f56eF2fED379421BEE64Ecafc2bC744f72522b |
*-----------------------------*--------------------------------------------*
| LivepeerTokenFaucet Address | 0xD69A2eC8f2F83267CE82A6d01837045BaE0EB9Bc |
*-----------------------------*--------------------------------------------*
|                 ETH Account | 0xD9d9f111BD18eDE64167D39eAaD9D16fB9E6D8C1 |
*-----------------------------*--------------------------------------------*
|                 LPT Balance |                       10000000000000000000 |
*-----------------------------*--------------------------------------------*
|                 ETH Balance |                        2999924232000000000 |
*-----------------------------*--------------------------------------------*
+------------------+
|ORCHESTRATOR STATS|
+------------------+
*---------------------------*----------------*
|                    Status | Not Registered |
*---------------------------*----------------*
|                    Active |          false |
*---------------------------*----------------*
|               Service URI |                |
*---------------------------*----------------*
|           Delegated Stake |         0 LPTU |
*---------------------------*----------------*
|            Reward Cut (%) |              0 |
*---------------------------*----------------*
|             Fee Share (%) |              0 |
*---------------------------*----------------*
|         Price Per Segment |          0 WEI |
*---------------------------*----------------*
|    Pending Reward Cut (%) |              0 |
*---------------------------*----------------*
|     Pending Fee Share (%) |              0 |
*---------------------------*----------------*
| Pending Price Per Segment |          0 WEI |
*---------------------------*----------------*
|         Last Reward Round |              0 |
*---------------------------*----------------*
+--------------------------------+
|ORCHESTRATOR EVENT SUBSCRIPTIONS|
+--------------------------------+
*--------------------------------*-------*
|     Watching for new rounds to | false |
|                     initialize |       |
*--------------------------------*-------*
|       Watching for initialized |  true |
|          rounds to call reward |       |
*--------------------------------*-------*
+---------------+
|DELEGATOR STATS|
+---------------+
*------------------*--------------------------------------------*
|           Status |                                   Unbonded |
*------------------*--------------------------------------------*
|            Stake |                                          0 |
*------------------*--------------------------------------------*
|   Collected Fees |                                          0 |
*------------------*--------------------------------------------*
|    Pending Stake |                 Please fetch pending stake |
|                  |                                 separately |
*------------------*--------------------------------------------*
|     Pending Fees |                  Please fetch pending fees |
|                  |                                 separately |
*------------------*--------------------------------------------*
|  Delegated Stake |                                          0 |
*------------------*--------------------------------------------*
| Delegate Address | 0x0000000000000000000000000000000000000000 |
*------------------*--------------------------------------------*
| Last Claim Round |                                          0 |
*------------------*--------------------------------------------*
|      Start Round |                                          0 |
*------------------*--------------------------------------------*
CURRENT ROUND: 82207

What would you like to do? (default = stats)
1. Get node status
2. View protocol parameters
3. List registered orchestrators
4. Invoke "initialize round"
5. Invoke "bond"
6. Invoke "unbond"
7. Invoke "rebond"
8. Invoke "withdraw stake" (LPT)
9. Invoke "withdraw fees" (ETH)
10. Invoke "claim" (for rewards and fees)
11. Invoke "transfer" (LPT)
12. Invoke "reward"
13. Invoke multi-step "become an orchestrator"
14. Set orchestrator config
15. Set Eth gas price
16. Get test LPT
17. Get test ETH

Just in case I tried livepeer_cli -transcoder as I see here but it is not a valid parameter

Incorrect Usage. flag provided but not defined: -transcoder

NAME:
   livepeer-cli - interact with local Livepeer node

USAGE:
   livepeer_cli [global options] command [command options] [arguments...]

VERSION:
   undefined

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --http value      local cli port (default: "7935")
   --host value      host for the Livepeer node (default: "localhost")
   --loglevel value  log level to emit to the screen (default: 4)
   --help, -h        show help
   --version, -v     print the version