Skip to content

Delegating

vires-in-numeris edited this page Jun 3, 2019 · 17 revisions

Delegating

What is delegating?

Think of delegating as committing to the network long term. Delegating and Bonding can be used interchangeably. When you bond, your tokens are locked in for at least as long as the UnbondingPeriod, which is currently set at 7 days. It’s like putting down a security deposit.

Your responsibility as a token holder is to either do the work (transcoder), or stake towards someone to do the work for you (delegator).

In exchange, you earn newly minted token and fees from the network, growing your total ownership in the network. People who do not bond will have easy access to their tokens and liquidity, but their ownership in the network will decrease as new tokens are released that they won’t receive. While people who bond will give up immediate liquidity in exchange for growing their ownership in the network, and helping to make the network high quality and secure.

What is Stake?

Bonded tokens are “at stake” or at risk. Often times bonded tokens are called stake. If you cheat as a transcoder, or you elect transcoders who try to cheat, then you can lose some or all of your stake. Cheating in this case consists of not behaving according to the rules of the protocol, and maliciously trying to steal token out of the system in ways that can be cryptographically proven. If you delegate your stake towards a transcoder who acts in the best interest of the network and plays by the rules, you should not lose any stake.

What is a delegator?

The term “Delegator” refers to token holders who participate in the network by staking their LPT towards a transcoder candidate. Your job as a delegator is to ensure quality, cost efficiency of network. You do this by staking LPT each round, you can earn further fees and LPT rewards as the network becomes more valuable. Everyone who holds LPT wants the network to be as useful as possible and are incentivized to delegate towards registered transcoders by potential rewards.

Why You Should Delegate

There are several reasons why it is beneficial for you to choose to delegate:

  1. Participation in delegating towards effective transcoders who will provide great service to the network, ensuring its value to broadcasters
  2. Earn token rewards in proportion to stake.
  3. Earn fees generated from transcoders.
  4. They may wish to be a Transcoder.

How To Delegate

Where to start

The easiest way to stake token is to visit explorer.livepeer.org/transcoders. This will display a list of active and candidate transcoders on the network, along with the prices they are charging, and some useful stats.

Assessing Transcoders

It is your job as a token holder to research transcoders based upon their past performance, statistics, rates they are charging, and any social campaigns that they’ve posted indicating why they believe they will do a good job for the network. Click on any transcoder to view their on chain statistics. Visit this forum thread to view campaigns that certain transcoders may have posted.

There are three spectrums you should assess transcoders on: Performance, Fees, and Social Campaigns.

Social Campaigns

  • View each Transcoder’s profile on the Transcoder Campaign forum. Here, you can learn about who the Transcoder is and why they think you should stake towards them.

Performance and Fee Statistics

  • Click on any transcoder to view their on chain statistics.
  • Price: This is the amount the Transcoder will charge broadcasters per segment. Wei is the base unit of ethereum, which is 10^18 Wei = 1 ETH. The price illustrated is based on a segment of video, which is 4 seconds
  • Reward Cut: Reward Cut is the percent of the newly minted token that the Transcoder keeps from the round’s inflation distribution. The remainder gets distributed across all bonded nodes in proportion to how much you bond relative to others. For example if this is 20%, that means that if a Transcoder were to receive 100 LPT in block reward and their “reward Cut” were 20%, they would keep 20 LPT and distribute remaining 80%, or 80 LPT
  • Fee share: Fee share is how much the delegator receives of the Price/segment. For example if Fee Share is 25%, If a transcoder were to charge 100WEI in fees per segment, they would pay 25WEI to the bonded nodes
  • Total Stake: Total amount of LPT staked towards this node, including the transcoders own stake

Rewards vs Fees

Rewards are credited towards your bonded stake. If you have 100 bonded stake, when you credit yourself with rewards, that is automatically in bonded stake. So if you get 10 reward token its 110. If you get fees, since fees in denominated in ETH, it is a separate “Collected Fees”. Those are not restricted from unbonding / bonding period. You are allowed to cash out. Idea behind this is because right now this is a long unbonding period to ensure capital is locked up so that people can be incentivized and punished properly, to make people more entrenched. If you are a transcoder, you need to pay service bills. On the flip side if you have number of jobs and fees, you can sell this ETH to pay for service cost.

How to Bond

When you have selected the transcoder you would like to delegate your stake towards, return to the explorer and click the “bond” button using your Ethereum enabled browser (Metamask, Parity, Mist, Toshi, Cipher, Status.im, etc). It will ask you how many token you would like to bond, and have you confirm an Ethereum transaction.

  • Each row is a different transcoder
  • The transcoder page shows a select number of stats. Clicking on a transcocder dives deeper into their profile, where you can explore stats across four tabs

Remember that you can always change who you are bonded to or unbound if you don’t believe the transcoder is doing a good job. When you are bonded, you have to wait for the one week unbonding period before you can withdraw your token. But if you just want to change to a different transcoder, you re-bond instantly without having to wait for the unbonding period.

Applying these Methods: Examples

Lets use this example set of transcoders:

  • Transcoder 1: 20% Reward Cut, 10% Fee Share, 150 WEI Price Per Segment. Total Stake: 1,338,907 LPT
  • Transcoder 2: 10% Reward Cut, 5% Fee Share, 10,000 WEI Price Per Segment. Total Stake: 78,751 LPT

Lets say after this round, the reward is 100,000 LPT, so that is how many new tokens are minted.

Scenario One: Delegate towards the top transcoder

Price Per Segment - This transcoder is charging 150 WEI per 4 second segment of video

Fee Share - This transcoder is sharing 10% of their fees from transcoding with their delegators. So of 150WEI, this Transcoder is sharing 10%, or 15 WEI across all delegators

Reward Share

  • First, you want to calculate how much of that reward a specific Transcoder will get. The tokens get distributed by how much each transcoder has staked relative to transcoders. So you can add up all stake in the network using the “Total Stake” numbers, and see that as a percentage, T1 (Transcoder 1) has contributed 94.4% of the total stake. So the protocol will distribute 94.4% of the 100,000 reward, or 94,400 LPT to that transcoder.

  • Now how much of that is the transcoder taking? If the reward cut is 20%, which means they are keeping 20% (18,880 LPT) of the 94,400 and sharing the remaining 80% with everyone staked towards them.

  • How much will you get? You receive a portion of that LPT in proportion to how much you have staked relative to every other delegator staked toward that transcoder.

  • Calculating your share. So lets say you staked 1,000 LPT of the 1,338,907 that is staked towards T1 (as it says in Total Stake). You get (1000/1,338,907) * (94,400-18,880), or 56.4 LPT additional that day.

Scenario 2: You delegate towards Transcoder 2 instead

Price Per Segment - This transcoder is charging 10,000 WEI per 4 second segment of video

Fee Share - This transcoder is sharing 5% of their fees from transcoding with their delegators. Fee share is **how much the transcoder shares ** with Delegators of the Price/segment. So a broadcaster is paying 10,000 WEI per segment for a service, and 95% goes to that transcoder, while 5%, or 500 WEI, gets shared back across all delegators staked towards them.

Reward Cut Reward cut is the amount of LPT the Transcoder will keep from the round’s inflation distribution. The transcoder will distribute the remainder in proportion to stake. So in the case of staking towards Transcoder 2, if 100,000 token are minted and distributed, this transcoder gets 5.6%, since its total stake, 78,751, is 5.6% of the total amount staked in the entire network (calculated by adding up all stakes). So of the 5,600, this Transcoder’s Reward cut is 10%. This means they are keeping 560 LPT and distributing the remaining 5,040 in proportion to the amount staked. So if you have staked 1000 of the 78751, that is 1.3%, or 64 LPT additional that day.

Getting your tokens and rewards

Unbonding

Delegators who want to unbound can do so after the unbonding period which is initialized from the moment of calling "Unbond". You can unbond by visiting explorer.livepeer.org/transcoders.

If you have bonded your token, and you would like to withdraw, then you can do so. From the time you Unbond(), you have to wait the UnbondingPeriod length of time before you can access your token, which is currently set to 7 days.

Claiming Fees

The transcoder pool is reset each round (every 5760 blocks or approx every 22-24h) based on who's got the most stake, and that's when new token is generated for claiming. But you need to claim the token yourself. Because of Ethereum gas limits, you can claim token for up to 100 rounds at a time. Claim() is necessary once in awhile, but only 1x/every 100 rounds (or just batch multipel txns later to claim for more). So it's not something you have to show up to do every day or anything if you're just delegating. Our explorer UI attempts to mask this issue by submitting multiple transactions if you're more than 20 rounds behind, but it still requires a manual confirmation for each tx with Metamask. The CLI does this automatically.

Claim here: https://explorer.livepeer.org/me/delegating

The challenge that is addressed through claiming fees is from a computation power perspective. Its hard to distribute all the proceeds accordingly after each time transcoder accumulates fees or rewards. For example, during a round, a transcoder accumulates 1,000 tokens fees and rewards, from a smart contract Point of View, if you have 10,000 delegators, it can't properly distribute all proportional rewards shares because there are so many delegators, as a smart contract only has a limited amount of computational capacity, so it's just not feasible. This claim fees workaround tries to get around that, but we know, it creates quirky UX features. Each time the transcoder accumulates rewards, instead of them actively distributing for a given round to all delegators, the transcoder will pool rewards into a pool. Now there is a pool of reward tokens from all rounds that have occurred. Any time a delegator is able to claim his or her reward share for a specific round that has occurred from that pool, so now instead of transcoder distributing shares, each delegator is responsible for claiming their own reward share after it has been distributed. That is a workaround to put the computation for your own reward and fees on yourself. Now each person triggers a function in the smart contract that triggers a reward share for a given round. We don't run into computational capacity issue where you have to distribute 1,000 reward shares to 10,000 different people in one single transaction. Instead you have each delegator after the rewards have been distributed run their individual transaction to calculate their own reward share in that given round.

Current set up is that whenever you bond to someone else, say you have been bonded to T2 for a couple of rounds and now you want to bond to someone else. You must claim your rewards and fees before bonding to another Transcoder. If you have not, when you try to bond to transcoder 3, when you submit the transaction, it will claim all rewards and fees since last time you claimed since delegating to transcoder. Only once you have claimed all rewards and fees associated with the current transcoder can you delegate towards another Transcoder. This is because we want to make sure the values are in sync, such that when you move tokens to a separate transcoder you want to credit yourself with all reward and fee shares that you have been owed for however much time you have been delegated toward transcoder. Now you are up to date information wise and it can be used to delegate towards someone else.

FAQ

How much token will I earn from bonding? That depends on how much total bonded stake there is, and what the inflation rate is set at. If the network is going to issue 10% more token this year, and 50% of all the token on the network is bonded, and you bond all year, then you will earn 20% more token. At the beginning of the year 50% of the network was bonded and 50% of the network was not bonded. The additional 10% of tokens all went to the portion that was bonded. So at the end of the year the bonded holders now hold 54.5% of the network token. Their network ownership increased in exchange for making the network useful, secure, and high quality.

Why would I delegate my bond towards another transcoder? You likely don’t want to be a transcoder on the Livepeer network yourself unless you’re running reliable always-on hardware, have a lot of bandwidth, and can do the DevOps work to keep the Livepeer processes running around the clock. Instead you should delegate towards other users who have proven that they can do this and create a high quality network. In exchange for doing so, you’ll receive newly minted tokens from the network’s inflation, and you’ll receive a share of the fees the transcoder earns.

Is it ok not to bond? Yes. It is okay not to bond. However if you’re holding token for a long time without bonding it, then your relative power to do work on the network will decrease if you do not bond. The protocol assigns new token to those who bond, increasing their ability to do work in the future.

Can I bond more stake later? Yes, you can always add more bond. In addition, the newly minted tokens from inflation will be added to your bonded balance so it will grow over time. The fees that transcoders who you delegate towards pay out to you will be added to your unbonded token balance in the current design?

Why do I have some fees in ETH and some in LPT? Rewards are credited towards your bonded stake. If you have 100 bonded stake, when you credit yourself with rewards, that is automatically in bonded stake. So if you get 10 reward token it's 110. If you get fees, since fees are denominated in ETH, it is a separate “Collected Fees”. Those are not restricted from unbonding / bonding period. You are allowed to cash out. Idea behind this is because right now this is a long unbonding period to ensure capital is locked up so that people can be incentivized and punished properly, to make people more entrenched. If you are a transcoder, you need to pay service bills. On the flip side if you have number of jobs and efes, you can sell this ETH to pay for service cost.

You can’t perform that action at this time.