点对点(p2p)存储网络是 IPFS。位于世界任何地方的对等点都可以访问内容并可以转发信息、存储信息或两者兼而有之。IPFS 不使用其位置,而是知道如何使用其内容地址找到您所要求的内容。
理解 IPFS 基于以下三个关键思想:
- 内容寻址以实现唯一标识
- 用于内容链接的有向无环图(DAG)
- 用于内容发现(DHT)的分布式哈希表
IPFS 生态系统是由这三个相辅相成的概念实现的。让我们从内容寻址和独特内容识别开始。
IPFS 不是通过位置来识别材料,而是使用内容寻址来确定其中的内容。您已经经常根据内容搜索项目。例如,当你在图书馆找书时,你经常会通过名字来查询;当您询问这本书是什么时,这是内容寻址。如果您使用位置寻址来查找它,您会说:“我想要第二层、第一堆、从底部算起的第三个书架、从左边算起的四本书的书”。如果有人动了那本书,你就没有机会了!
有向无环图(DAG)是 IPFS 和许多其他系统使用的一种数据结构。他们专门使用 Merkle DAG,其中每个节点都有一个独特的身份,即节点内容的哈希值。听起来很有辨识度?这就引出了上一节讨论的 CID 想法。或者换句话说,内容寻址是通过哈希值来识别数据对象的行为。如果您有兴趣了解有关 Merkle DAG 的更多信息,请查看我们的指南。
Merkle DAG 可以通过多种方式组织,IPFS 使用专为表示目录和文件而定制的一种方式。例如,Git 使用 Merkle DAG,其中包含存储库的多个副本。
IPFS 使用分布式哈希表(DHT)来确定哪些对等点正在托管您正在查找(发现)的项目。键和值的数据库称为哈希表。在分布式网络中的所有对等点之间共享的哈希表称为分布式哈希表。您咨询同行来查找内容。
IPFS 生态系统的 libp2p 项目管理对等连接和通信并提供 DHT。(请注意,除了 IPFS 之外,libp2p 还可以用作各种分布式系统的工具,就像 IPLD 一样。)
一旦您确定了您的材料所在的位置(或者更具体地说,哪些对等点正在存储构成您所需内容的每个块)(路由),您就可以再次利用 DHT 来确定这些对等点的当前位置。使用 libp2p 双重查询 DHT 以访问内容。
您已确定您的内容及其现在所在的位置。您现在必须访问该信息并下载它。IPFS 目前使用名为 Bitswap 的模块来向其他对等点请求块并向其他对等点发送块。
通过 Bitswap,您可以与拥有您所需内容的一个或多个对等点建立连接,向他们发送您的需求列表(您正在寻找的所有区块的列表),并向他们请求您需要的区块。收到这些块后,您可以通过将其 CID 与您通过散列其内容请求的 CID 进行比较来验证它们。如有必要,您还可以使用这些 CID 对块进行重复数据删除。
其他内容复制技术也在讨论中,其中 Graphsync 是最先进的。一项为 Bitswap 协议添加请求和应答功能的提案也在讨论中。
正如您可能从本次演讲中推断出的那样,IPFS 生态系统由众多模块化库组成,这些库支持任何分布式系统的特定组件。毫无疑问,您可以单独使用该堆栈的任何组件,也可以创造性地混合它们。
IPFS 生态系统将 CID 分配给内容并创建 IPLD Merkle DAG 来连接该内容。通过 libp2p 提供的 DHT,您可以查找内容、连接到该内容的任何源,并使用多路复用连接下载它。IPFS 构建的基础是堆栈的中间,它由链接的唯一标识符组成。这就是 IPFS 的工作原理。
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |