IPFS 原理与实践 (4):认识 IPFS 1.1.2

阅读数:10 2019 年 12 月 21 日 18:43

IPFS原理与实践(4):认识IPFS 1.1.2

(IPFS 的起源)

内容简介
这是一部从实现原理和工程实践两个维度深入讲解 IPFS 和 Filecoin 的著作。作者是中文社区内非常有影响力的三位 IPFS/Filecoin 布道者,本书得到了 IPFS&FileCoin 创始人以及 IPFS 官方(协议实验室)的高度认可和强烈推荐。
为 * 大化满足读者需求,书中不仅介绍 IPFS 技术细节、区块链相关知识、Filecoin 项目技术细节,还加入了大量作者们在开发中的经验和技巧。为了适配当下及未来较长时间内读者的实际使用环境,书中所有案例都是基于生态链中较新的软件开发工具和前沿的软件开发技术编写的。
本书分为三大部分:
第一部分 基础篇(第 1 章)
全面介绍了 IPFS 的源起,概念、优势和应用领域,旨在帮助读者了解 IPFS 相关基础背景知识,从宏观层面认识 IPFS 技术所具有的创新性。
第二部分 原理篇(第 2~5 章)
旨在帮助读者深入理解 IPFS 和 Filecoin 的运行原理与工作机制。首先深入分析了分布式哈希表、块交换协议、版本控制、自验证文件系统 Merkle DAG 和 Merkle Tree 等底层基础知识,然后对 IPFS 协议栈中包含的 7 层子协议了进行了剖析,接着解析了 Multi-Format、libp2p、IPLD 三大 IPFS 核心模块,最后用了一整章的篇幅详细剖析了 Filecoin 项目。
第三部分 实战篇(第 6~8 章)
以工程化的方式,从基础至进阶,介绍了 IPFS 技术的实际使用,包括安装、配置、交互、入网、API、内容发布、数据保存、私网搭建等内容,之后通过两个不同风格的实际项目案例向读者展示了基于不同语言所实现的 IPFS 协议栈的使用方法。

全球化分布式存储网络并不是最近几年的新鲜品,其中最有名的 3 个就是 BitTorrent、Kazaa、和 Napster, 至今这些系统在全世界依旧拥有上亿活跃用户。尤其是 BitTorrent 客户端,现在 BitTorrent 网络每天依然有超过 1000 万个节点在上传数据。(不少刚从高校毕业的朋友应该还记得在校内网 IPv6 上分享电影和游戏资源的情景)但令人遗憾的是,这些应用最初就是根据特定的需求来设计的,在这三者基础上灵活搭建更多的功能显然很难实现。虽然在此之前学术界和工业界做过一些尝试,但自始至终没有出现一个能实现全球范围内低延时并且完全去中心化的通用分布式文件系统。

之所以普及进展十分缓慢,一个原因可能是目前广泛使用的 HTTP 协议已经足够好用。截至目前,HTTP 是已经部署的分布式文件系统中最成功的案例。它和浏览器的组合是互联网数据传输和展示的最佳搭档。然而,互联网技术的进步从未停止,甚至一直在加速。随着互联网的规模越来越庞大,现有技术也越来越暴露出了诸多弊端,庞大的基础设施投资也让新技术的普及异常困难。

但我们说,技术都有其适用的范围,HTTP 也是如此。四大问题使得 HTTP 面临越来越艰巨的困难:

1)极易受到攻击,防范攻击成本高。随着 Web 服务变得越来越中心化,用户非常依赖于少数服务供应商。HTTP 是一个脆弱的、高度中心化的、低效的、过度依赖于骨干网的协议,中心化的服务器极易成为攻击的目标。当前,为了维护服务器正常运转,服务商不得不使用各类昂贵的安防方案,防范攻击成本越来越高。这已经成为 HTTP 几乎无法克服的问题。

2)数据存储成本高。经过十多年互联网的飞速发展,互联网数据存储量每年呈现指数级增长。2011 年全球数据总量已经达到 0.7ZB(1ZB 等于 1 万亿 GB);2015 年,全球的数据总量为 8.6ZB;2016 年,这个数字是 16.1ZB。到 2025 年,全球数据预计将增长至惊人的 163ZB,相当于 2016 年所产生 16.1ZB 数据的 10 倍。如果我们预计存储 4000GB(4TB)的数据,AWS 简单存储服务(S3)的报价是对于第 1 个 TB 每 GB 收取 0.03 美金,对于接下来的 49TB 每 GB 收取 0.0295 美金的费用,那么每个月将花费 118.5 美金用于磁盘空间。数据量高速增长,但存储的价格依旧高昂,这就导致服务器 - 客户端架构在今后的成本将会面临严峻的挑战。

3)数据的中心化带来泄露风险。服务提供商们在为用户提供各类方便服务的同时,也存储了大量的用户隐私数据。这也意味着一旦数据中心产生大规模数据泄露,这将是一场数字核爆。对于个人而言,用户信息泄露,则用户账号面临被盗风险,个人隐私及财产安全难以保障;对于企业而言,信息泄露事件会导致其在公众中的威望和信任度下降,会直接使客户改变原有的选择倾向,可能会使企业失去一大批已有的或者潜在的客户。这并不是危言耸听,几乎每一年都会发生重大数据库泄露事件。2018 年 5 月,推特被曝出现安全漏洞,泄露 3.3 亿用户密码;2017 年 11 月,美国五角大楼意外泄露自 2009 年起收录的 18 亿条用户信息;2016 年,LinkedIn 超 1.67 亿个账户在黑市被公开销售;2015 年,机锋网被曝泄露 2300 万用户信息。有兴趣的读者可以尝试在公开密码泄露数据库中查询,是否自己的常用信息或常用密码被泄露,但自己却毫不知情。

4)大规模数据存储、传输和维护难。现在逐步进入大数据时代,目前 HTTP 协议已无法满足新技术的发展要求。如何存储和分发 PB 级别的大数据、如何处理高清晰度的媒体流数据、如何对大规模数据进行修改和版本迭代、如何避免重要的文件被意外丢失等问题都是阻碍 HTTP 继续发展的大山。

IPFS 就是为解决上述问题而诞生的。它的优势如下:

1)下载速度快。如图 1-2 所示,HTTP 上的网站大多经历了中心化至分布式架构的变迁。与 HTTP 相比,IPFS 将中心化的传输方式变为分布式的多点传输。IPFS 使用了 BitTorrent 协议作为数据传输的方式,使得 IPFS 系统在数据传输速度上大幅度提高,并且能够节省约 60% 的网络带宽。

2)优化全球存储。IPFS 采用为数据块内容建立哈希去重的方式存储数据,数据的存储成本将会显著下降。

3)更加安全。与现有的中心化的云存储或者个人搭建存储服务相比,IPFS、Filecoin 的分布式特性与加密算法使得数据存储更加安全,甚至可以抵挡黑客攻击。

4)数据的可持续保存。当前的 Web 页面平均生命周期只有 100 天,每天会有大量的互联网数据被删除。互联网上的数据是人类文明的记录和展示,IPFS 提供了一种使互联网数据可以被可持续保存的存储方式,并且提供数据历史版本(Git)的回溯功能。

IPFS原理与实践(4):认识IPFS 1.1.2

图 1-2 中心化 - 多中心化 - 分布式技术变迁图

上文我们提到 IPFS 技术积累已经有很多年了,它至少参考了 4 种技术的优点,并将它们整合在一起。这 4 种技术分别是分布式哈希表 DHT、Kademlia、Git 和自验证文件系统(Self-Certifying File System)。

第一种对 IPFS 有借鉴意义的技术是 DHT,全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。DHT 的原理是:在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个 DHT 网络的寻址和检索。新版 BitComet 允许同时连接 DHT 网络和 Tracker,可以在无 Tracker 的情况下进行下载。

IPFS 借鉴的第二种技术是 Kademlia。在 Kademlia 网络中,所有信息均以哈希表条目的形式加以存储,这些信息被分散地存储在各个节点上,从而以全网构成一张巨大的分布式哈希表。可以形象地把这张哈希大表看成一本字典:只要知道了信息索引的 key,便可以通过 Kademlia 协议来查询与其对应的 value 信息,而不管这个 value 信息究竟是存储在哪一个节点之上。正是这一特性确保了 IPFS 成为没有中心调度节点的分布式系统。IPFS 还借鉴了 BitTorrent 网络。首先是消极上传者的惩罚措施,在 BitTorrent 的客户端上传数据会奖励积分,而长期不上传的消极节点会被扣分,如果分数低于一定限度,那么网络会拒绝再为他们提供服务;其次是文件可用性检查,BitTorrent 优先把稀缺的文件分享出去,各个客户端之间相互补充,这样种子不容易失效,传输效率也提高了。针对 BitTorrent 我们不再详细展开,有感兴趣的读者可以查阅 BitTorrent 相关文档。

第三种对 IPFS 有重大影响的项目是 Git。我们在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而 Git 在版本迭代方面非常出色。Git 存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG 的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可。

最后一种是具有自验证功能的分布式文件系统(Self-certifying File System,SFS),它将所有的文件保存在同一个目录下,所有的文件都可以在相对路径中找到,其 SFS 路径名是其原路径与公钥的哈希。聪明的读者会发现,这样的设计包含身份的隐式验证功能,这就是为什么 SFS 被称为自验证文件系统了。

IPFS原理与实践(4):认识IPFS 1.1.2

购书地址 https://item.jd.com/12665074.html?dist=jd

评论

发布