1. IPFS点滴资讯首页
  2. 实战操作

芒果:Git完全分散

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

芒果: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超前了。在过去的5年中,分散存储和共识系统(区块链)已经获得了重要的基础,我们能够完全实现Git的分散化目标。中央供应商不需要。没有单一的失败点。

欢迎芒果,它将以太坊与IPFSSwarm结合作为Git的后端。

所有Git对象(元数据和数据)都存储在IPFS(内容可寻址存储网络)上,而以太坊智能合约提供了访问控制的方法,并存储指向最新存储库修订的指针。

芒果定义了一个简单的存储库接口,类似于以太坊中的令牌接口。这允许任何人编写具有自定义访问控制或其他功能的合同。

应该可以进一步扩展它并实现其他协作功能,例如问题跟踪和拉取请求,以便为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à,你准备好了!


芒果处于发展的早期阶段,协议可能会发生变化。如果您对它的工作原理或想要参与开发感兴趣,请在此处查看协议说明。欢迎提出任何意见,建议和测试。你可以在Twitter,Github和Gitter(以太坊频道)找到我。

让我们创建一个完全分散的软件协作工具!

点对点科技简介

点对点科技深耘IPFS与Filecoin技术,坚持区块链技术改变未来的信念。点对点 IPFS 数据中心是目前国内技术领先,性价比高、保障优的投资标的。自建杭州数据中心,合作数据中心分布于上海、宁波、河北、香港、斯德哥尔摩(瑞典)等地。点对点数据中心具有优秀的硬件配置与目前国内优质的网络节点资源。点对点科技力求将IPFS爱好者升级为IPFS领军者与受益者,让IPFS颠覆传统互联网,共同开启 WEB 3.0时代。

想了解更多区块链知识吗?关注我吧!

Filecoin测试网二阶段昨日重启,点对点出块第一! | 点滴资讯

原创文章,作者:Haskell,如若转载,请注明出处:https://ipfsdrop.com/tech/mango-git-is-completely-dispersed/

发表评论

电子邮件地址不会被公开。 必填项已用*标注