There is no decentralized way to manage source code with trust. Git itself can work on a P2P manner and services like Mango exist but how can it be verified as the actual source? Who approves it?

This is the problem I noticed, due to Swarm City. They want to decentralize their everything yet use a centralized GitHub organization. Talking with one of their developers, I came up with an idea. Use an Ethereum smart contract tied to a reputation token. The contract creator sets the IPFS hash to base everything off of. Then, people can submit patch files.

By submitting patch files, we can see exactly what the code changes, yet also only need to submit the ‘pull request’ once. There’s no need to trust someone to apply the changes and reupload the entire repository, and then submit those hashes.

To reduce the amount of TXs made and things to vote on, the contract can handle index files only. A user submits a file with ten lines of patch files, and all are then used in the pull request. This also stops larger changes from costing more. Now that we’ve covered source control, we’ll look at the Reputation Tokens and Wallet.

The contract creator would get an initial amount of reputation. This would degrade over time. Each approved pull request would then get a base amount of rep, plus more depending on how the existing reputation holders voted on it. Each denied pull request would get the negative form of this.

Reputation Tokens would not be tradeable, although private keys will always be tradeable. This will stop corporate control of open source code, although they can always send money to the contract. This money would be controlled by the Wallet.

The Wallet can send Ether, send ERC20s, transfer ERC20s from, and approve ERC20 spenders. It’s compatible with any ERC20 as to stop donated ERC20s from being burned.

Pull requests and Wallet actions would go for a day or two and be approved or disapproved by getting >50% of positive votes with the Reputation Tokens.

Now that I’ve outlined all that, I would like to link the repository I’m working on to make this viable. It’s far from ready but may be interesting to you. Semi-ironically, it’s on Github. https://github.com/kayabaNerve/DAO. I will likely not build an interface, just the DAO contracts, but it would be awesome to be able to get this to a point where it and related entities can be developed on it.

Having a wrapper functionality so the contracts could be upgraded (if contract is told to do something, send data to other contract) might be nice, yet that’s not my focus. Hopefully, you found this interesting. Feel free to help out or just comment!

— Luke Parker

TechAspirer/kayabaNerve