IPFS 原理与实践 (16):IPFS 底层基础 2.1

阅读数:1 2019 年 12 月 21 日 18:51

IPFS原理与实践(16):IPFS底层基础 2.1

(分布式哈希表(DHT))

内容简介
这是一部从实现原理和工程实践两个维度深入讲解 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 协议栈的使用方法。

第 1 代 P2P 文件网络需要中央数据库协调,例如在 2000 年前后风靡一时的音乐文件分享系统 Napster。在 Napster 中,使用一个中心服务器接收所有的查询,服务器会向客户端返回其所需要的数据地址列表。这样的设计容易导致单点失效,甚至导致整个网络瘫痪。在第 2 代分布式文件系统中,Gnutella 使用消息洪泛方法(message flooding)来定位数据。查询消息会公布给全网所有的节点,直到找到这个信息,然后返回给查询者。当然,由于网络承载力有限,这种盲目的请求会导致网络快速耗尽,因此需要设置请求的生存时间以控制网络内请求的数量。但无论如何,这种方式所需的网络请求量非常大,很容易造成拥堵。到了第 3 代分布式文件系统中,DHT 的创新提供了新的解决方案。DHT(Distributed Hash Table)主要思想如下:全网维护一个巨大的文件索引哈希表,这个哈希表的条目形如 <Key, Value>。这里 Key 通常是文件的某个哈希算法下的哈希值(也可以是文件名或者文件内容描述),而 Value 则是存储文件的 IP 地址。查询时,仅需要提供 Key,就能从表中查询到存储节点的地址并返回给查询节点。当然,这个哈希表会被分割成小块,按照一定的算法和规则分布到全网各个节点上。每个节点仅需要维护一小块哈希表。这样,节点查询文件时,只要把查询报文路由到相应的节点即可。下面介绍 3 种 IPFS 引用过的有代表性的分区表类型,分别是 Kademlia DHT、Coral DHT 和 S/Kademlia。

IPFS原理与实践(16):IPFS底层基础 2.1

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

评论

发布