Show HN: Merge to earn – reward system for open source development
github.com
github.com
And I say it both as a contributor, but also a consumer. Sometimes I'd be happy to throw $100 on top of some specific issue of a lib/app I use regularly to incentivize its resolution.
I wish this service didn't require repo owners to do anything before they see some actual bounty assigned to one of the issues. So, theoretically, I could go and assign a bounty to any repo on Github right now, and the owner (and maybe the public) would see it right away.
But the bounty system you mention is interesting. This is already implementable in the current system (ie open an issue and commit to give $ to those who fix it), but you'd need to peek at the PR solving the issue and manually send $ to those who fixed it.
We can easily automate that.
The problem with this approach is that while that's a lot for you to throw on a bounty, it's not much compared to the going rate of a software engineer. Even as a full-time employee you're probably making north of $90/hour and a good bug that gets a bounty certainly takes longer than an hour to fix.
Often I want to fix the issue myself, but something prevents me from doing so. I might not be familiar enough with the programming language, or I might not have enough time right now
Bug 1 (25% pledge): XXX set a pledge of $100. $300 more needed to fix the bug.
Assuming everyone is making 180k is maybe a bit naive, no?
Imagine putting money into a vault that gets released to contributors on PR merge.
-Define a CI-like pipeline that runs tests that will fail if the bug persists and succeed if the bug is fixed.
-Allow bounty seekers to pass links to branches/repo forks that try to pass the tests.
-The first one to pass the tests get the bounty released to them
-As a courtesy, the system should probably offer the patched code as a PR to the original repo, even if they don't accept it.I'm not sure it works for end-user software; the set of people who can write working tests is usually smaller than the set of end users.
I'd be more interested to hear opinions that go beyond the crypto = scam argument.
If the permissionless part isnt attractive to someone, then they can add an issue on the repo and say "trust me i'll pay you".
- This sounds like spec work, where someone writes up a PR and submits hoping that they will be picked and/or paid the amount they request
- What happens if there is a disagreement about the payment amount? If the submitter withdraws their PR, are the maintainers then limited in their ability to code up their own fix since they've already seen the PR?
- If someone submits a PR and gets paid, then a bug is found in their code, do they have to pay from their share to fix the bug? What if the payment amount requested for the fix is higher than their share?
- It sounds like payment amount is determined through negotiation between the maintainer and submitter, or through discretion of the maintainer. Any clear metric on amount is likely to be gamed.
- Maintainers could theoretically steal the code in a PR, but since everything is public they would lose reputations with contributors and the community. Future contributors will be wary of opening new PR in case maintainers act in bad faith.
- MTE doesn't impose any restriction or rules when it comes to how contributions should be managed, so it's up to project owners to come up with their own rules.
- I'd expect projects to specify objective rules to quantify rewards, for example based on effort required, task difficulty and impact on the project. I would also expect that estimates would naturally become more accurate as the project and number of maintainers grow
- quadratic voting for issues to be fixed,
- buy votes by putting money into escrow / promissory fund
- openly available like patreon
The only problem is amazingly, how do you agree that the job has been done, to a quality standard you agree with.
I think this is the very core and essence of Coase's theory of the firm. It is management of a firm that decides on quality. To this extent Maintainers are management.
It's worth pointing out that as software eats the world the majority of management must come from judging quality of software produced - something current management structures are not setup for.
Ultimately you cannot contract for specific work in a market - you have to wait for the market to provide speculative development that you then "purchase".
Weirdly Open Source Software is a market failure ...
(I suspect there might be a future market of standard contracts between (business defined) micro-services - you could use an open source piece of software that fulfills a micro-service requirement - and because the contracts are standardised the market would be huge, swappable and vibrant.
It basically says "here's a pointer to a pot of money, smash up this git repo to get it". What's more likely to happen, contributors spend a tonne of effort contributing to open source for a tiny share of the money in the wallet? Or hackers break into your github account, open an issue, allocating all the money in the wallet to it, merge the PR and sign off on draining the wallet?
I know what I'd bet on.
Apart from that, you are practically saying "hey there are hackers out there, stop building tools".
- satisfying multiple hard requirements,
- yields low rewards, and
- can be easily and quickly mitigated by project owners.
Full answer:
---
What you describe is actually not possible for a number of reasons.
In order for an attack on a Merge to earn project to have success, an attacker needs to obtain:
- Access as owner / maintainer to the Github repo, and
- The private keys of the wallets of enough safe owners to autonomously execute transactions. The general rule for multisigs is, the higher the quorum, the higher the safety.
In absence of both conditions, project maintainers have plenty of time to get control of the situation, and the attacker couldn't do anything. In fact, even if a Github account is compromised and fake PRs are merged to give themselves fat rewards, nothing happens until multisig owners actually execute the malicious transactions.
But, even though extremely improbable, let's assume an attacker manages to do that and the worst possible scenario happens. What then?
Due to how slicers are designed, the attacker wouldn't be able to get money received until that point out of the slicer, but only what has been received after he gained control. The Slice protocol has been designed to safeguard against these kind of attacks and malicious usage.
On the contrary, to mitigate an attack, project owners just need to reinitialize MTE for their repo with a new slicer and multisig, distribute ownership to contributors as it was before the attack, and redirect any new income and donations to the new slicer. This is technically trivial and can be done in minutes.
>Due to how slicers are designed, the attacker wouldn't be able to get money received until that point out of the slicer,
How does a normal person get money out of a slicer? That's how the hacker will.
>On the contrary, to mitigate an attack, project owners just need to reinitialize MTE for their repo with a new slicer and multisig,
You're saying that you foresee people starting a new pot of money to be stolen in the immediate aftermath of their old MTE money being stolen?
While this project tries to solve the money aspect (not sure benefit of it vs other sponsor distribution platforms...), it doesn't solve the biggest issue: how do you figure out who gets what. I can't imagine the kind of vitriol it would generate in the face of CoEs and modern meritocracy controversies for open source projects. Money corrupts everything.
We definitely plan to contribute to this, and even propose flexible guidelines for projects to base their estimates on.
Adding money to the mix or automating rewards is asking for abuse and would decrease the quality of the software.
Also, which open source project is awash with money that could afford to pay out?
I think this (monetisation/crypto) is a solution looking for a problem and open source isn’t it…
However this should be limited to maintainers as rewards in merge to earn are related to actual ownership of the project and its future earnings.
But anyone could open an issue, and then the maintainer can add a tag to it depending on the reward it thinks it could be worth.
At the end though it's important to note that the contributor opening the PR has the final word on the amount being requested for the work done.
Bug report: clicking "See owners" or either of the products on Slice Gensis NFT result in an error page for me: "Application error: a client-side exception has occurred (see the browser console for more information)."
Free Software people think that Free Software is a set of software licenses designed to support certain social outcomes (i.e. they think realistically.)
"Being a company" and "releasing open source" are not mutually exclusive, you're just paying people for spending their time working on your project. You don't pay the reviewers, you pay the contributors, if their contribution was worth it. And they will know whether that will be the case before they even start any work because that's what issues and discussions are for. If you want to do something, and the project owners go "that's not a thing we need", you know that up front.
Handling rewards in public discussions on Github naturally prevent bad behaviours from maintainers (ie making bad-faith choices as to what does or doesn't get merged) as they would lose reputation with their contributors and community.