Creating mechanisms to encourage more open source activity.
What it does
- A smart contract creates a bounty subcontract for a given github issue. This bounty contract has a predetermined list of eligible voters on whether the subcontract bounty is fulfilled.
- The community can create new bounties or contribute ether to existing bounties to increase the allure of solving an open source issue.
- When a solution is ready in the form of a pull request, core contributors can vote on the solutioneer's ethereum address on a given issue.
- When 51% of the core contributors have voted on an issue, the solutioneer's ethereum address gets paid out.
How we built it
Truffle + React + Solidity + Remix + Material UI.
Challenges we ran into
- Voter eligibility and whale proofing --- Instead of giving the bounty funders voting control, which would enable the contracts to be gamed, we are relying on the social reputation mechanism by giving only contributors voting control.
- Authenticity of voters --- solved by .voters files created in the repo, pulled in by an oracalized endpoint.
- Core contributors paying themselves --- mitigated by the social mechanic of the project's usage declining and the community abandoning the project.
Accomplishments that we're proud of
- Fully functionality solidity smart contract
- Front-end interaction with the smart contracts using truffle and metamask
- A fully-functioning app on the blockchain in 24 hours!
What we learned
- Solidity contract writing
- Truffle & Ecosystem Tools
- Mechanism Design
- Integrations with oracalize
- Privacy cryptography exploration
What's next for GitBounty
- Barebones security audit.
- Ring signature for anonymous voting between contributors to avoid any bias.
- Integrations and tooling (Github bots, chat bots, etc).