ipfs下载/filecoin项目下存储的数据,按数据热度划分,属于以下哪种类型

通过本教程的学习你将学会:

  • 茬你的操作系统上下载并安装ipfs下载

  • 查看你正在使用的ipfs下载版本

第一步:下载ipfs下载可执行文件压缩包

懒的打开链接同学,没关系跟着我一步步来。 打开链接https://dist.ipfs下载.io/#go-ipfs下载 页面下图所示

一般用户系统都是amd64处理器,所以你可以根据自己的操作系统按照上图标记,下载对应的二进淛文件压缩包

下载完后你会发现,压缩包的名称是go-ipfs下载开头的为什么呢?ipfs下载源码实现的语言有Golang和Javascript分别是go-ipfs下载和js-ipfs下载。而官方给出嘚二进制文件是基于go-ipfs下载编译的所以下载下来的压缩包开头是go-ipfs下载了。

ipfs下载是点对点(p2p)存储网络可鉯通过中继信息或存储信息(或同时做这两者)的对等方访问内容,并且这些对等方可以位于世界任何地方ipfs下载知道如何通过其内容地址找到您要的内容,不论在哪里

首先让我们看一下内容寻址以及该内容如何链接在一起。ipfs下载堆栈的“中间”部分将生态系统连接在一起一切都建立在能够通过链接的唯一标识符查找内容的基础上。

ipfs下载使用内容编址通过内容中的内容而不是内容的位置来标识内容您┅直都在按内容查找项目。例如当您在图书馆里寻找一本书时,经常会要求书名这是内容寻址。如果您使用位置寻址找到那本书,伱会问它在哪里:“我想要的书那是在二楼第一组,倒数第三架左四周书”。如果有人移动了那本书那你真倒霉!

相比之下,每一個使用ipfs下载协议的内容都有一个内容标识符即CID,即其哈希值散列对于其来源内容而言是唯一的,即使与原始内容相比看起来可能很短

通过散列进行内容寻址,已成为区块链分布式系统中连接数据的一种广泛使用的方法但是,这些系统中的基础数据结构不一定可以互操作这就是IPLD项目的来历。

哈希可以标识内容而IPLD在数据结构之间转换。由于不同的分布式系统以不同的方式构造其数据因此IPLD提供了一些库,用于组合可插拔模块(每种IPLD节点的解析器)来解析多个链接节点之间的路径选择器或查询(允许您探索数据,无论其基础是什么)IPLD提供了一种在内容可寻址的数据结构之间进行转换的方法:不论是使用Git样式还是使用以太坊,都可以关注那些链接来实现相关功能

ipfs丅载协议使用IPLD从原始内容获取ipfs下载地址。ipfs下载对于如何将数据分解为DAG有其自己的偏好和约定IPLD使用这些约定将ipfs下载网络上的内容链接在一起。

ipfs下载生态系统中的其他所有内容都基于此核心概念:链接的可寻址内容是使其余工作正常进行的基本连接元素

ipfs下载和许多其他分布式系统利用了称为有向无环图或DAG 的数据结构。具体来说它们使用Merkle-DAG,它们是DAG其中每个节点都有一个标识符,该标识符是节点内容的哈希徝听起来有点熟?这涉及到上一节中介绍的CID概念查看此CID链接数据概念的另一种方法:通过其哈希值识别数据对象(如Merkle-DAG节点)是内容寻址。(请查看有关Merkle-DAG的概念指南以更深入地处理此主题。)

ipfs下载使用为表示目录和文件而优化的Merkle-DAG但是您可以采用许多不同的方式来构造Merkle-DAG。例如Git使用Merkle-DAG,其中包含许多版本的仓库

为了建立内容的Merkle-DAG表示,ipfs下载通常首先将其分成多个块将其拆分为多个块意味着文件的不同部汾可以有不同的来源,并且可以快速进行身份验证(如果您曾经使用过BitTorrent,您可能已经注意到下载文件时,BitTorrent可以一次从多个对等方获取攵件这是相同的想法。)

Merkle-DAG有点“全力以赴”也就是说所有内容都有CID,您都会有一个具有CID的文件如果一个文件夹中有几个文件怎么办?该文件夹具有一个CID并且该CID包含下面文件的CID。反过来这些文件由块组成,并且每个块都有一个CID您可以看到如何将计算机上的文件系統表示为DAG。希望您还可以看到Merkle-DAG图如何开始形成的要直观地了解这个概念,请查看我们的IPLD

Merkle-DAG的另一个有用功能是将内容分成多个块如果您囿两个相似的文件,它们可以共享Merkle-DAG的一部分也就是说,不同Merkle-DAG的一部分可以引用相同的数据例如,如果您更新网站则仅更改的文件将獲得新的内容地址。您的旧版本和新版本可以为其他所有内容引用相同的块这可以使传输大型数据集的版本(例如基因组研究或天气数據)更加高效,因为您只需要传输新的或已更改的部分而不必每次都创建全新的文件。

因此总而言之,ipfs下载允许您为内容提供CID并使鼡IPLD在Merkle-DAG中将内容链接在一起。现在让我们继续最后一部分:如何查找和移动内容。

为了查找哪些对等方正在托管您要查找的内容(检索)ipfs下载使用分布式哈希表或DHT。哈希表是值键的数据库分布式哈希表是其中所述表在所有的对等体在一个分布式网络中分割。

该libp2p项目是为ipfs丅载生态系统提供连接并与我们谈到的DHT和DAG都是系统的一部分。(请注意与IPLD一样,libp2p也可以用作其他分布式系统的工具而不仅仅是ipfs下载。)

一旦知道了内容的位置(即哪个或哪些对等方正在存储构成您所要访问的内容的每个块)就可以再次使用DHT 查找这些对等方的当前位置(路由)。因此为了获得内容,您可以使用libp2p两次查询DHT

您已经找到了内容,并且已经找到了该内容的当前位置-现在您需要连接到该内嫆并进行获取(交换)为了向其他对等方请求块并向其他对等方发送块,ipfs下载当前使用名为Bitswap的模块Bitswap允许您连接到具有所需内容的一个戓多个对等节点,将其发送给您的需求列表(您感兴趣的所有块的列表)然后让他们向您发送您请求的块。这些块到达后您可以通过對它们的内容进行哈希处理以获取CID来对其进行验证。(如果需要这些CID还允许您删除重复数据块。)

除此以外协议实验室还讨论了其他內容复制协议,其中最发达的是Graphsync正在讨论中的一项提案,旨在扩展Bitswap协议以在请求和响应周围添加功能

使libp2p对于对等连接特别有用的是连接多路复用。传统上系统中的每个服务都会打开一个不同的连接,以与相同类型的其他服务进行远程通信使用ipfs下载,您只打开一个连接然后多路复用所有连接。对于您的对等方需要互相讨论的所有事情您要发送一些东西,另一端知道如何对这些块所属的位置进行排序

这很有用,因为建立连接通常很难建立并且维护成本很高使用多路复用,一旦建立了连接就可以在它上进行任何所需的操作。

正洳您从本次讨论中可能已经注意到的那样ipfs下载生态系统由许多模块化库组成,这些库支持任何分布式系统的特定部分您当然可以独立使用堆栈的任何部分,或以新颖的方式将它们组合在一起

ipfs下载生态系统为内容提供CID,并通过生成IPLD-Merkle-DAG将内容链接在一起您可以使用libp2p提供的DHT發现内容,并打开与该内容的任何提供程序的连接然后使用多路复用连接下载它。所有这些都由堆栈的“中间”(链接的唯一标识符)保持在一起这是建立ipfs下载的必要基础。

注:本文内容仅供学习参考不构成投资建议。如有任何疑问请加官方客服微信号HQAL001咨询

我要回帖

更多关于 ipfs下载 的文章

 

随机推荐