Git是一个分布式(很快分散的)版本控制或更改跟踪系统,主要用于管理软件源代码。

它创建于11年前,考虑到分散开发。存储库的每个副本都包含整个更改历史记录。开发可以完全脱机完成,无需等待缓慢的服务器。有时,如果与其他人一起工作,则需要同步这些脱机存储库。这是集中解决方案(如CVS和Subversion)之后的一大步。
想象一个世界,你必须等待10到30秒才能进行比较或进行更改。那是Subversion在1 Mbps宽带时代。使用Git,它只需几分之一秒即可完成。
这听起来很分散,不是吗?这是一个小问题 – 复制和同步存储库。
Git在这个问题上很灵活。它有一个名为remotes的概念,它是用于同步的远程端点,它们可以使用各种协议。最常用的两个是基于SSH的Git和基于HTTP的Git – 两者都是集中式的。
最初用户必须安装自己的服务器软件,多次使用名为gitweb的Web查看器进行扩充。一个明显的进化步骤是Github,Gitorious / Gitlab,Bitbucket等服务的出现。
虽然这些服务提供了很好的服务,但它们存在单点故障和审查的风险。还记得针对Github的拒绝服务攻击使它几天无法使用吗?请记住,可以根据版权声明删除存储库 – 这可能是无效的并且被恶意行为者报告,但是证明它们没有侵权的责任在于存储库的创建者?那些政府可以审查GitHub的内容吗?
芒果并不是第一个涉足Git分散的人。
去年,GitTorrent引入了一个类似的系统,通过BitTorrent协议检索Git对象,并将引用存储在比特币交易中。作为缺点,它需要服务器节点为所请求的数据创建种子。
今年早些时候,Git over SSB实施了一个更接近芒果的系统。不需要特定的服务器。Secure Scuttlebutt(SSB)是一种加密安全的仅附加消息流 – 将其视为社交网络订阅源。它适用于你信任的同行,但据我所知,没有包含共识代码,因此你不能在不信任方之间使用它。
我如何尝试芒果?
这很简单。您需要具有node.js / npm的环境并安装以下软件包:
$ npm install -g mango-admin git-remote-mango
确保您还有一个启用了RPC的本地以太坊节点。出于测试目的,我建议使用testrpc。如果需要复制,还需要IPFS守护程序,但使用testrpc进行本地测试不需要它。
满足先决条件后,可以创建Mango存储库:
$ mango-admin create Initialising ... 用管理员创建新的存储库0xaf8843081fd0dc1c4b12053d0ec123a10b91de0e已 发送事务:0xe95567ee6fdee21e02061ef6e33f2659943509ca5af5d953dc987ad118ed57fc已 创建存储库:0x8add9d064bbd29f3118f11ee46abe0ad9e45aa59
您的本地Git存储库可以推送到它:
$ git remote add芒果芒果:// 0x8add9d064bbd29f3118f11ee46abe0ad9e45aa59
$ git push mango master 计数对象:17,完成。 使用最多4个线程进行增量压缩。 压缩对象:100%(17/17),完成。 书写对象:100%(17/17),5.21 KiB | 0字节/秒,完成。 总计17(delta 7),重复使用0(delta 0) 到mango:// 0x8add9d064bbd29f3118f11ee46abe0ad9e45aa59 * [new branch] master - > master
最后,您可以克隆现有存储库:
$ git clone mango:// 0x8add9d064bbd29f3118f11ee46abe0ad9e45aa59 克隆到'0x8add9d064bbd29f3118f11ee46abe0ad9e45aa59'... 接收对象:100%(17/17),10.59 KiB | 0字节/秒,完成。 检查连接...完成。
Voilà,你准备好了!
点对点科技简介
点对点科技深耘IPFS与Filecoin技术,坚持区块链技术改变未来的信念。点对点 IPFS 数据中心是目前国内技术领先,性价比高、保障优的投资标的。自建杭州数据中心,合作数据中心分布于上海、宁波、河北、香港、斯德哥尔摩(瑞典)等地。点对点数据中心具有优秀的硬件配置与目前国内优质的网络节点资源。点对点科技力求将IPFS爱好者升级为IPFS领军者与受益者,让IPFS颠覆传统互联网,共同开启 WEB 3.0时代。
想了解更多区块链知识吗?关注我吧!
原创文章,作者:Haskell,如若转载,请注明出处:http://ipfsdrop.com/tech/mango-git-is-completely-dispersed/