区块天下 区块链新闻 深入了解IPFS:初级到高级指南(第一部分)

深入了解IPFS:初级到高级指南(第一部分)

近日,协议实验室为让更多人了解他们的项目,在Medium上发布了“深入了解IPFS”系列文章。

这篇文章是“ 深入理解IPFS ”系列中的第一篇,这将有助于任何人理解IPFS的基本概念。星通科技给您勾勒了重点:

  • IPFS是内容可寻址的,IPFS上的数据使用CID进行识别。
  • 这些CID对于它引用的数据是唯一的。
  • IPFS使用散列函数来实现防篡改属性,这使得IPFS成为自我认证文件系统。
  • IPFS使用Multihash,它允许它为相同的数据提供不同版本的CID这并不意味着CID不是唯一的。如果我们使用相同的哈希函数,那么我们将拥有相同的CID。)。
  • IPFS使用IPLD来管理和链接所有数据块。
  • IPLD使用了Merkle DAG数据结构的数据块。
  • IPLD还为IPFS添加了重复数据删除属性。
  • IPFS使用IPNS将CID链接到固定IPNS链路,这类似于当前集中式互联网的DNS。
  • IPFS使用Libp2p在IPFS网络上传输数据并发现其他对等方(计算机和智能手机),这可以显着提高网上冲浪的速度。

以下全文由星通科技翻译并编辑整理:

当你向某人询问最新的复仇者电影时,他们可能会描述视频的内容:“ 其中一半宇宙被Thanos摧毁”。这显然是一种直观的方式来考虑人类的内容,但通常不是我们今天如何访问网络上的内容。话虽如此,IPFS等分散协议实际上确实使用了这种类型的内容地址(使用文件内容标记和查找内容)在分散的网络上查找内容。在本文中,我们将详细探讨整个过程的工作原理,涉及的不同组件以及它们如何协同工作。我们将通过向IPFS添加文件然后探索在向IPFS添加文件时发生的情况来实现此目的。

部分原文

它是如何工作的?

让我们向IPFS添加一张照片。

首先,必须在您的系统上安装IPFS。安装IPFS后,您必须启动IPFS守护程序(与IPFS网络通信的软件,以便从网络添加和检索数据)。将照片添加到IPFS时,会发生以下情况:

在终端会得到这个:

你可以在这里看到最后的哈希:

QmQgQUbBeMTnH1j3QWwNw9LkXjpWDJrjyGYfZpnPp8x5Lu

当我们添加图像时,我们将图像转换为计算机可以理解的原始数据。现在,为了使其内容可寻址,我们必须提出一种方法,通过该方法我们可以将此图像数据转换为唯一标识其内容的标签,这是哈希函数发挥作用的地方。

散列函数将数据作为输入,并为我们提供输出,该输出是唯一的。如果我们改变该图像中的像素,那么输出将是不同的。这显示了它的防篡改属性,因此使IPFS成为自我认证文件系统。如果您将此图像传输给任何人,他/她可以检查收到的照片是否已被篡改。

此外,你无法分辨输入是什么,只是看到它的输出。因此,这也确保了大量的安全性。您将此图像存储在互联网上,并且您拥有其CID,您可以将其提供给任何想要获取此图像的人。IPFS使用Multihash,根据使用的哈希函数,我们可以有多个版本的CID。

现在,我们已将照片添加到IPFS,实际发生的事情是这样的:

大文件被分块,散列后被组织成IPLD(Merkle DAG对象)

如果文件大于256kb,则它们被分解为更小的部分,因此所有部分都等于或小于256kb。我们可以使用此命令查看照片的块:

ipfs object get Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

这给了我们15个块,每个块小于256kb。首先将这些块中的每一个转换为摘要,然后转换为CID。IPFS使用IPLD(IPLD使用Merkle DAG或有向非循环图)来管理所有块并将其链接到基本CID。

IPLD建立在关联数据的思想基础之上,使用IPLD还有其他好处。让我们创建一个“图片”文件夹,并在其中添加2张照片(猫图片和相同图片的副本)。

正如您所看到的,这两张照片都具有相同的哈希值(这证明我没有更改图像副本中的任何内容)。这为IPFS添加了重复数据删除属性。因此,即使您的朋友将相同的猫照片添加到IPFS,他也不会复制图像,这节省了大量的存储空间

想象一下,如果我将这篇文章存储在IPFS上,并且它的每个字母都是分块的并且具有唯一的CID,那么这整篇文章可以通过字母表(大写和小写)、数字和一些特殊字符的组合来构建。我们只会存储每个字母、数字和字符一次,并根据数据结构中的链接重新排列它。

IPFS还有一个名为IPNS的命名系统。

假设我想在网站上更改我的个人资料图片,如果我们改变输入的内容,我们会得到一个不同的摘要,这意味着我的最终“基本CID”会有所不同。

这意味着每次更新我的网站时都必须更新哈希。每个拥有我之前网站链接的人都无法看到我的新网站,这可能会导致很大的问题。

为解决此问题,IPFS使用IPNS链接指向CID。如果我想更新我的网站CID,我只会将新的CID指向相应的IPNS链接(这类似于今天的DNS),将IPNS链接到域名,以便您可以命名和查看IPFS托管网站。

IPFS也是HTTP协议的潜在替代品,但为什么我们要替换HTTP?

假设您正坐在演讲厅,您的教授会要求您访问特定网站。讲座中的每个学生都向该网站提出请求并给予回复。这意味着相同的确切数据被单独发送给房间中的每个学生。如果有100名学生,则有100个请求和100个回复。这显然不是最有效的做事方式。理想情况下,学生将能够利用他们的物理接近度来更有效地检索他们所需的信息。

如果网络通信线路中存在某些问题并且客户端无法与服务器连接,则HTTP也会出现大问题。如果ISP发生中断,某个国家/地区阻止了某些内容,或者内容被删除或移动,就会发生这种情况。这些类型的断开链接存在于HTTP Web上的任何位置。

这是Libp2p的用武之地,其用于在IPFS网络上传输数据并发现其他对等设备(计算机和智能手机)。这种方式的工作方式是,如果每台计算机和智能手机都运行IPFS软件,那么我们将成为像网络这样的大型BitTorrent的一部分,每个系统都可以充当客户端和服务器。因此,如果100名学生请求相同的网站,他们可以互相请求网站数据。如果大规模实施这种系统,可以显着提高上网速度。

返回顶部