Gitee + 区块链:基于 IPFS 的 Git 分布式存储技术探索
Gitee 团队一直在探索如何提供一个更安全、稳定甚至是去中心化的代码托管环境。也一直在跟踪兴起的存储区块链技术,其中就深入的研究了 IPFS 协议,同时在探索 IPFS 协议在代码托管上的落地的可行性和优缺点。
IPFS (InterPlanetary File System – 星际文件系统) 是一个基于内容哈希寻址的点对点的超媒体分发协议,2014 年开始由 Protocol labs 在开源社区下推动发展,目前已经提供了基于 Golang 的开源实现(详情请访问:https://github.com/ipfs/ipfs),站在存储角度,IPFS 具有如下主要特点:
- 去中心化存储,相对目前的基于 HTTP 的中心化存储网络,去中心化存储可以避免大型中心服务器的单点故障的问题。
- 基于内容寻址,IPFS 的内容定位不在通过URI 的形式,而是通过内容的唯一hash 进行定位得到内容的存储地址。
- 天然抵抗 DDOS,基于其去中心化和内容寻址的特点,IPFS 网络具备天然抵抗 DDOS 的特性。
- 减少存储冗余,IPFS 会对文件按照一定的尺寸进行拆分,然后对每个分片计算 hash,对于相同 hash 的分片只会存储一份,对于有大量重复文件 > 的场景,这会大大的减少存储的冗余。
- 天然的 CDN,IPFS 是一个基于 p2p 的去中心化网络,任何一个节点均可作为入口节点,再结合其分片存储的功能,这让 IPFS 网络具备天然的内容 > 加速功能。
- 自动版本管理,IPFS 的实现中默认内置了 Git 的实现,从而实现存储的版本化管理。
无疑 IPFS 的特性给了 Gitee 的代码存储很多想象空间,近期 Gitee 团队测试了 IPFS 在文件存储的方面的性能,发现其目前的 Golang 实现的版本,在私有 IPFS 存储网络的情况下,其性能相比目前的基于 s3 协议的对象存储不相上下,大文件存储(大于等于 1G)方面性能比 s3 协议更优一点,这结果对我们的探索之路来说是值得让人兴奋的。
更多的探索成果我们将持续分享:)
更多关于码云 Gitee 的资讯请关注公众号:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谷歌搜索将于 2019 年年底停止索引任何 Flash 内容
周一,谷歌宣布谷歌搜索将不再支持Flash,这意味着谷歌搜索将不再索引Flash SWF 文件中的内容,无论是在完全使用 Flash 设计的网站上,还是包含Flash内容的网页,谷歌搜索会自动过滤。 Flash 是 Adobe 于 1996 年推出的一种用于网络和计算机的技术,它能够包含简单的动画、视频、复杂演示文稿和应用等。90 年代后期,它还是一项非常流行的技术。 2010年时,史蒂芬乔布斯在一封名为Thoughts on Flash的信中列举了他的公司硬件不支持 Flash 的诸多原因,包括糟糕的移动性能和安全性,这也是推动了这项技术走向消亡因素之一。2017年时,Adobe开始宣布将停止支持这一技术。谷歌也表示,2020年年底,Chrome浏览器将正式禁用 Flash,而从 Chrome 76开始,默认情况下禁用 Flash。而与此同时,微软、苹果和 Mozilla 也宣布了在各自浏览器中淘汰 Flash 的计划。今年早些时候,微软详细表明了将从基于 Chromium 的微软 Edge 浏览器中删除该技术的计划。 十多年来,互联网公司逐渐地在减少对 Flash 的支持,同时增加...
- 下一篇
PHP 7.4 的 FFI 将支持更好地在 PHP 中使用 C 函数/数据结构
即将在下月底发布的 PHP 7.4 将会引入一个有趣的新功能,那就是期待已久的对 FFI(外部函数接口,Foreign Function Interface)的支持。此功能使得开发者可以在原生 PHP 代码中调用 C 定义的函数/变量/数据结构。 FFI 与预加载功能都将是PHP 7.4的重要新功能,FFI 还增强了 PHP FPM systemd 服务、用于 OpenSSL 流的 TLS 1.3 以及许多其他更改。PHP 7.4 的 FFI 甚至可与其他语言的 FFI 实现相媲美。 使用 PHP FFI 应该可以减少为 C 库/程序接口编写新 PHP 模块的需求,因为现在可以使用外部函数接口来完成了。如果你对 PHP 7.4 FFI 的示例代码感到好奇,负责 Fedora/RedHat 的 PHP 打包程序工程师 Remi Collet 撰写了一篇新的博客文章,其中概述了一些带有示例代码的用例。 下面摘录一个简单的例子: Redis 客户端 目前存在使用 C 或 PHP 编写的Redis 客户端的各种实现,此示例演示了使用 FFI 来访问hiredis库的函数。 定义库,从库的头文件...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主