Currently the orchestrator pool consists of 100 orchestrators based on their stake. In case a new orchestrator wants to join the pool, they must possess stake greater than the orchestrator with the lowest amount of stake in the pool. While doing so the old orchestrator gets evicted from the pool and the new orchestrator takes it’s place.
The issue with the current approach which I feel are:
- Only 100 orchestrators can participate in video encoding at any time
- Only the top few orchestrators get attention by the delegators as well as broadcasters
Going over each issue one by one
Only 100 orchestrators can participate in video encoding at any time
Given the most recent data from Livepeer explorer, it looks to me that this limit of 100 orchestrators isn’t much of an issue immediately.
This can be observed by the fact that the orchestrators with the lowest amount of stakes aren’t participating in the network anyway. Their reward calling ratio is much lower. In the lowest 20 orchestrators by stake, only a handful of them are calling reward. This is likely due to the fact that these orchestrators are not receiving enough jobs such that it is not profitable to call reward.
Moreover, a sizeable chunk of orchestrators have a performance score of 0 which directly means that they had not been performing any work. This is independent of the amount of stake that the orchestrator owns.
These points are indicators that there is a need to promote and incentivize users to actually come and perform transcoding and that each and every orchestrator in the pool should get a fair opportunity to compete.
In short, despite having a pool size of 100, many active orchestrators are not able to participate in the network. Once we get to a place where all 100 orchestrators are participating to their maximum potential only then it makes sense to think about making space for more than 100 orchestrators.
This brings us to the the second point
Only the top few orchestrators get attention by the broadcasters and delegators
There is huge gap (about 2.5 ETH) between the fees earned by the number 1 orchestrator in terms of fees and number 2 orchestrator in terms of fees. This difference is even larger between the top earners and the others.
This is a clear indication that almost all the work is being sent to these few whales and others are having a hard time competing. This has been a frequent pain point in the community chat.
This also creates a negative loop wherein the new delegators prefer staking towards the orchestrator already on top of the table thereby pushing the lower end even lower.
Thus the idea should be to provide a ‘fairer’ ground for all the orchestrators.
Solutions
I suggest approaching this in 2 phases
- Increasing the network output by providing more job opportunities to orchestrators with lesser stake
- Once this optimum is reached, more orchestrators will want to join the video mining pool. Then increase the capacity of active orchestrator pool
One approach I was thinking of goes like this
- We decrease the pool size
- Then decide who remains in the pool for that round based on lottery influenced by the total stake
The impact of these steps would be several folds
- On decreasing the pool size, the reserve requirements for the broadcaster will decrease
- In a smaller pool size, the probability of getting picked for transcoding will increase
- Since stake requirement will influence the probability of getting selected per round, whales will still have a higher chance of getting picked but will also allow smaller orchestrators to compete and earn fees
- This eliminates the minimum stake requirement for participation since any orchestrator will have a chance to be in the active set and will attract new orchestrators
- This will also pave way for multi-delegation where in a delegator will want to stake towards multiple orchs in order to increase returns per round.
- Thus the entirety of the stake will not be stagnant towards a single large orchestrator and also increase transaction frequency with the protocol
Issues
The biggest issue will be developing an algorithm to pick orchestrators for each new round.
- This transaction will not only be costlier than the current round initialization transaction as the entire orchestrator pool needs to be evaluated for selecting a sub-pool
- It will be more complex as the calculation of stake eligible for rewards per round will change.
- This will rely on pseudo-random number generation which is a complicated topic.
- Also, for multi-delegation support, there needs to be earnings accounting modifications which already complex today.
* I am still thinking about the selection algorithm and trying to find similar implementations used in other protocols. Will do a followup in this thread.
Summary
This post talks about modification to the orchestrator pool such that the participation of smaller orchestrators in the transcoding activity increases. This will not only benefit smaller orchestrators in terms of rewards and fees but also attract other new orchestrators (with low stake) to join the network.
Moreover, it also talks about modifying the pool such that an unlimited number of orchestrators can join and contribute to the video mining infrastructure!
Happy to get feedback and ideas!