A decentralized Git cloud that never goes down
(and keeps the history for the whole of eternity)
UPDATE: If I will be able to raise $15,000 that will buy me up to two extra months worth of work. I would like to spend this time on two major items: private encrypted repositories and more thorough testing.
If you wish to participate, but only with Bitcoins, you can do this by sending your contribution to 1DnadnpM96wrWFooRVKe1mTrBAp2MAGYee and dropping me an email to email@example.com mentioning your txid and reward level chosen.
Repository available on GitHub
I have spent the last year in the role of CTO at a Bitcoin startup and now that I have time, I want to apply some of the innovations from the Bitcoin space to other problems.
What is it?
Gitchain is an application of the exciting ideas behind Bitcoin, Namecoin and DHT applied to Git hosting. Once you install it, it acts as a local proxy to the entire Gitchain P2P network.
What will it look like?
After installation, all you have to do is to set up your keypair, create a repo and start using it!
Why is this important?
To quote from git's own description:
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Except that in practice, git is not really that distributed anymore. Most of our projects are hosted on one of a handful of Git hosting providers. Whenever that service is down, you can't do anything with your dependencies but wait!
What features will it provide?
- Decentralized redundant storage (DHT)
- Encrypted storage for private projects
- Tamper-proof history
- Proof-of-work/contribution/storage rewards
What is the scope of this project?
The very first mandatory thing I need to accomplish during this project is a complete paper/specification of the system. I am planning to engage the developers & thinkers community to bounce different thoughts to make sure the best ideas make into the system.
As we all know, software projects are rarely if ever "finished" but the goal of this specific project is to have a first working version of the Gitchain with these capabilities (as a plan minimum):
- Repository name allocation
- Decentralized redundant object storage
- Push permission management
- Repository name prefix allocations
- Launch testnet network.
Time and funding permitting, some of these items might also make it into the first big "iteration" scope or can become a part of the stretch plan:
- Encrypted private repositories
- Repository transfers
- Group management
- Classic git seeds
- Incentives & rewards system
How long will it take?
The plan is to finish the first version by the end of the summer. I'll keep backers updated on a regular basis to make sure the progress is well communicated.
Where is it at right now?
I am currently writing a paper and a first implementation of the tool. The prototype is not fully functional yet but is evolving very quickly and you can track the progress on GitHub. Since the design of the system is not yet finalized, you are more than welcome to join a public working group or just provide your feedback — there's a mailing list for Gitchain or join #gitchain IRC channel on Freenode.
What if you will raise more than the goal?
There's a couple of ways extra money can be used: involving somebody else to join me to work on this project; bootstrapping the P2P network (renting servers); pushing hard for the stretched goal after delivering the originally planned first version.
Anything else I didn't cover?
Let me know if you have any questions! Will be happy to include them into the FAQ.
The time for true clouds has come!
Risks and challenges
As a project of this kind that has an incomplete design, there's obviously a risk of running an unforeseen challenge. I have access to at least a few smart people who happen to understand things like Bitcoin, DHT and many other things. Also, as I want to communicate with backers very actively, you always have a chance to contribute to the success of the project with your awesome brainpower!Learn about accountability on Kickstarter
- (30 days)