status-im / swarms

Swarm Home. New, completed and in-progress features for Status
92 stars 31 forks source link

GitPivot - engage git repositories into DAOs #38

Closed 3esmit closed 6 years ago

3esmit commented 6 years ago

Preamble

Idea: <to be assigned>
Title: GitPivot
Status: Draft
Created: 2017/11/22

Prototype

Summary

Incentivize development

Incentivize open-source development by providing tools to fairly distribute donations and bounty contributions.

Proof project ownership

Who owns an open-source project that have contribution of hundred of developers? Who should control the licensing or accept changes? Through tokenizing contributions users can proof ownership of project and use it in a voting contract. To help, we can have a special software licenses stating that the source code owners are expressed in an ethereum smart contract.

Vision

Configurable reward modes by project

For a project being accepted by GitPivot it must have a file in root of tree called .gitpoints with specifying user-agent: to * or gitpivot.

Example:

user-agent: *
commits-reward: words
issues-reward: pulls, comments, commits, reactions
pulls-reward: comments, commits
comments-reward: reactions
reactions-reward: heart, +1

GitHub User Ethereum Address

To control GitPivot users need to link their GitHub user login to an Ethereum address. User calls GitPivot and passes his username and the gistid, GitPivot registers users by loading gistid file called register.txt under user login. This file must contain only the Ethereum address who made the register call, starting with 0x.

Mint tokens for contributions

Any repository that enabled commits-rewards will have tokenization enabled of the contributions and a donation bank.

The available modes are lines or words that respectively mint tokens by added lines or added words. Custom reward modes are planned.

GitHub Oracle load commits in batches, and accept continue in case of huge commit trees (+4k commits).

Distribute project donations to contributors

Repositories that enabled tokenizations of contributions also have a DonationBank that can be withdrawn by the Project Token Holders in the start of every epoch, called locked period, where transfers and minting are blocked.

Reward bounties by contribution in GitHub Issues.

Issues may be tracked by GitPivot, accept payments, depending on the .gitpoints configuration, positively reacted posts and merged pull requests/commits generate points that allow issue contributors to withdraw a fair share of balances related to the issue.

Network Features

The elements of the system can be used in other descentralized applications and deployed in other networks, extending the features of SOB.

Code wage contracts

Different types of contracts can be programmed to automatically buy project tokens, under arbitrary rules, such as a list of users with a maximum amount per day. This can be part of other descentralized application or as a custom contract.

Code ICO

In replacement of selling coins of a promised project, developers can create the tokens their project need by code contribution and get paid for their development selling their development tokens. The ICO contract might have milestones that realease a share of a prealoccated token source to project token holders.

Oraclize & GitHub API

Issues rewards and commit points are discovered reading GitHub API through Oraclize computation data source, that reads all issues or branch commits at once and return to contract points and authors. Updates can happen once in a month, or daily, anytime, by anyone.

Swarm Participants

Requirements

Goals & Implementation Plan

Minimum Viable Product

Goal Date: Description:

Iteration 1..N

Goal Date: Description:

Supporting Role Communication

Post-Mortem

Copyright

Copyright and related rights waived via CC0.

andytudhope commented 6 years ago

Happy to help with testing and will contribute what I can on this - sounds like a really awesome idea. Am afk for a few days, but will pick up the conversation with you on Monday!

naghdy commented 6 years ago

Marking this as closed since it hasn't been worked on in 3 months. We can re-open if its something we'll tackle soon. Thanks!