Round initializer incentive Smart-contract
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 155
- Forks
- 50
- PR merge metrics
- No merged PRs in 30d
Description
@marczeller commented on Mon Feb 18 2019
What's the problem? (required)
Sometime delegators don't call the function initializeRound() or do it quite late.
Currently it's a "tragedy of the common" game theory scenario. Everybody benefits from that function being called but no one have the direct incentive to pay gas to call it. the better individual scenario is to wait that another actor assume the cost himself and get the benefits without the cost.
Do you have any personal experiences dealing with this problem? (optional)
As a user i'd called the function 5 times, that's not my job.
Describe a possible solution you've considered (optional)
A bounty smart-contract monitoring the blockchain and granting a small reward to the address doing a successful call of initializeRound().
That will create a "winner take all" situation with probably front-running bots trying to collect the reward.
Those rewards can be founded by Livepeer Team + Transcorders.
Additional context (optional)
Objective :
- write a simple and dumb SC with following expected behaviour
- can collect reward in ETH/LPT/DAI
- can monitor
0x3984fc4ceeef1739135476f625d36d6c35c40dc3and check non-reverted; non-out of gas but validinitializeRound()call - Check Gaslimit and gas price of initializeRound() call (or just transaction fee paid) and address of the caller
- send
Transaction fee paid + reward amountto the caller ETH address or at least : have a function "collect reward" that can be called with input parameterscall address; round - have a Failsafe check in that function : "if Txfee > "threshold" then send only reward amount.
it's an open discussion we have to consider :
Do we pay in ETH ? In LPT ? in DAI ? a mix ?
What is the amount of the reward ? something fixed and hardcoded ? a ratio of the reserves of the smart contract ?
what should be the failsafe "threshold" ? if we don't have one, troll caller can use very high gasprice to dry out the smart contract reserves. if it's too high it's ineffective, if it's too low contract will be useless in high gas price market events.
when this issue will be mature enough, i'll issue a bounty on it.
@iameli commented on Mon Feb 18 2019
Thanks for this write-up, sounds like a good idea! I'm not sure that this repo is the best place for it, this one doesn't contain any of the smart contract logic — https://github.com/livepeer/protocol perhaps?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No repository files or tests are named. Start by reviewing the protocol's smart-contract logic and the initializeRound() call at 0x3984fc4ceeef1739135476f625d36d6c35c40dc3. Resolve the reward currency, amount, gas-fee threshold, funding, and claim flow before implementation; done means the agreed bounty contract behavior is specified and tested.
Written by the indexing model from the issue text.
Assessment
- Domain
- blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100