Creating mechanisms to encourage more open source activity.

What it does

  1. 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.
  2. The community can create new bounties or contribute ether to existing bounties to increase the allure of solving an open source issue.
  3. 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.
  4. 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

  1. 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.
  2. Authenticity of voters --- solved by .voters files created in the repo, pulled in by an oracalized endpoint.
  3. 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

  1. Fully functionality solidity smart contract
  2. Front-end interaction with the smart contracts using truffle and metamask
  3. A fully-functioning app on the blockchain in 24 hours!

What we learned

  1. Solidity contract writing
  2. Truffle & Ecosystem Tools
  3. Metamask
  4. Mechanism Design
  5. Integrations with oracalize
  6. Privacy cryptography exploration

What's next for GitBounty

  1. Barebones security audit.
  2. Ring signature for anonymous voting between contributors to avoid any bias.
  3. Integrations and tooling (Github bots, chat bots, etc).
Share this project: