【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

在上一期【进阶小课堂】中,我们分析了目前由 HTTP 协议构建的互联网存在的诸多弊端,并介绍了 IPFS 的基本概念以及 IPFS 是如何构建下一代互联网的,点击下图即可查看。今天,矿哥和大家分享下 IPFS 的关系族谱和技术架构。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

IPFS 的关系图谱

IPFS 由 Juan Benet (胡安·贝内特)在 2014 年 5 月份发起。2015 年,他创建 的项目“IPFS”在 Y Combinator 创业孵化竞赛中获奖并得到了天使投资,同时成立了协议实验室。

IPFS 本质上是一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议,目标是补充甚至取代过去 20 年里使用的超文本媒体传输协议(HTTP),希望构建更快、更安全、更自由的互联网时代。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

协议实验室团队在开发 IPFS 时,采用高度模块集成化的方式,像搭积木一样去开发整个项目。其中 IPLD、LibP2P、Multiformats 这三个模块服务于 IPFS 底层。而 Filecoin 则是 IPFS 的激励层,把 IPFS 应用的数据价值化。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

Mutiformats是一系列 hash 加密算法和自描述方式的集合,它具有 SHA1\SHA256 \SHA512\Blake3B 等 6 种主流的加密方式,用以加密和描述 nodeID 以及指纹数据的生成,它在现有协议基础上对值进行自我描述改造,即从值上就可以知道是如何产生的。

libP2P 是 IPFS 核心中的核心,面对各式各样的传输层协议以及复杂的网络设备,它可以帮助开发者迅速建立一个可用 P2P 网络层,快速且节约成本。libp2p 的主要功能包括:发现节点、连接节点、发现数据、传输数据。它类似现实世界的快递公司,连接着千千万万个节点,除了负责分发数据,还负责查找数据。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

IPLD 是一个转换中间件,将现有的异构数据结构统一成一种格式,方便不同系统之间的数据交换和互操作。现在 IPLD 支持 BTC、ETH、EOS 等主流公链的区块数据。IPLD 中间件可以把不同的区块结构统一成一个标准进行传递,为开发者提供了成功性比较高的标准,不用担心性能、稳定和 bug,这也是 IPFS 为什么受到众多区块链项目欢迎的重要原因。

IPFS 应用了这几个模块的功能,集成为一种容器化的应用程序,运行在独立节点上,并以 Web 服务的形式,供大家使用访问。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

由于 IPFS 是一个开源的协议,所有人都可以免费利用 IPFS 进行各种开发,目前 IPFS 网络中的节点数量还不够多,网络还不够稳定。为了让 IPFS 能够快速普及推广,协议实验室基于 IPFS 网络创建了 Filecoin 区块链项目, 用以激励参与 IPFS 节点并存储数据的矿工。Filecoin 把这些应用的数据价值化,通过类似比特币的激励政策和经济模型,让更多的人去创建节点,去让更多的人使用 IPFS。

Filecoin 是 IPFS 的经济激励系统,承载着 IPFS 的价值传递,维系着 IPFS 生态的发展。

下期【进阶小课堂】开始,我们将重点展开对 Filecoin 的介绍。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

IPFS 的技术架构

IPFS 有八层子协议栈,从低往高分别为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

身份层和路由层

身份和路由层可以一起解释,对等节点身份信息的生成以及路由规则是通过 Kademlia 协议生成制定,KAD 协议实质是构建了一个分布式松散 Hash 表(distributed hash table),简称 DHT,每个加入这个 DHT 网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。

如同微信名片分享,在无法通过直接搜索微信号的情况下,如果你要找一个人,可以通过有这个人联系方式的朋友分享名片来建立联系。

网络层

网络层是 IPFS 技术的核心层,使用的 lib2p 可以支持任意传输层协议。ICE NAT traversal 框架整合 STUN、TURN 和其他类型的 NAT 协议,该框架可以让客户端利用各种 NAT 方式打通网络,从而完成 NAT 通信,这对于 IPFS 的 p2p 网络非常重要。

交换层

交换层是类似迅雷、电驴这样的 BT 工具,IPFS 团队把 BitTorrent 进行了创新,叫作 Bitswap,它增加了信用和帐单体系来激励节点去分享,用户在发送给其他节点数据可以增加信用值,从其他节点接受数据降低信用值。如果用户只去接收数据而不分享数据,信用分会越来越低而被其他节点忽略掉。

对象层和文件层

对象层和文件层也可以结合来谈,他们共同管理 IPFS 上 80% 的数据结构。大部分数据对象都是以 Merkle DAG 的结构存在,这为内容寻址和数据去重提供了便利;文件层是一个新的数据结构,和 DAG 并列,采用 Git 一样的数据结构来支持版本快照。

命名层

具有自我验证的特性(当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与 NodeId 匹配,这验证了用户发布对象的真实性,同时也获取到了可变状态),并且加入了 IPNS 这个巧妙的设计来使得加密后的 DAG 对象名可定义,增强可阅读性。

应用层

IPFS 核心价值就在于上面运行的应用程序,可以利用它类似 CDN 的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

IPFS 是如何工作的

IPFS 是基于文件内容进行寻址的。IPFS 为每一个文件分配一个独一无二的哈希值(文件指纹:根据文件的内容进行创建),即使是两个文件内容只有 1 个比特的不同,其哈希值也是不相同的。所以 IPFS 是基于文件内容进行寻址,而不像传统的 HTTP 协议基于域名寻址。

【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理
IPFS 为文件建立文件版本管理。IPFS 在整个网络范围内去掉重复的文件,并且为文件建立版本管理,也就是说,每一个文件的变更历史都将被记录,可以很容易回到文件的历史版本查看数据。【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理
根据哈希值进行文件查询。当查询文件的时候,IPFS 网络根据文件的哈希值(全网唯一)进行查找。由于每个文件的哈希值全网唯一,所以查询将很容易进行。每个节点除了存储自己需要的数据,还存储了一张哈希表,用来记录文件存储所在的位置,用来进行文件的查询、下载。【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理
IPNS。IPNS 允许用户使用一个私钥来对 IPFS 哈希附加一个引用,使用一个公钥哈希表示你的网站是最新版本。如果你使用过比特币,可能会对此比较熟悉,一个比特币地址也是一个公钥,如果该链接不起作用,不用担心,能够通过更改公钥所指向的内容,而公钥却永远保持不变。这样,网站的更新问题就得到了解决。接下来,只需要保证这些网站的位置是人类可读的,所有问题就解决了。【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理人类可读的可变地址。IPFS/IPNS 哈希是一些很大的、难看的字符串,而且不容易记住。所以 IPFS 允许用户使用现有的域名系统(Domain Name System,DNS)来为 IPFS/IPNS 内容提供人类可读的链接。它允许用户通过在域名服务器上将哈希插入 TXT 记录来实现这一点。【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理IPFS HTTP 网关,新旧网络之间的桥梁。通过一个 HTTP 网关,IPFS 可以实现从 HTTP 到 IPFS 的过渡,在浏览器完全支持 IPFS 之前,现在已经允许当前的 Web 浏览器访问 IPFS。用户很快就可以切换到 IPFS,完成 Web 网络的存储、分发和服务。
IPFS 协议是开源的,支持任何团队和个人免费存储、下载数据,如何才能让 IPFS 快速普及和发展,让更多的节点参与者愿意拿出自己的电脑硬盘存储其他人的数据呢?这就需要 IPFS 的激励层——Filecoin 了。
下一期【进阶小课堂】,我们将开始详细讲解 Filecoin 是什么、Filecoin 和 IPFS 的关系等,欢迎关注。
关于 IPFS 和 Filecoin 更多资讯,以及想参与 Filecoin 挖矿的朋友,可以加矿哥微信交流(微信号:kuangge2018)


Filecoin 主网上线在即 点击下图 抢 Filecoin 头矿红利
【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理


公众号后台
回复【合伙人】加入IPFS 中国社区·节点合伙人回复【社群】加入IPFS 中国社区官方社群


【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理


【进阶小课堂】IPFS 的关系族谱、技术架构及工作原理

来源链接:mp.weixin.qq.com