ipfs网络的分布式数据是如何做到数据共享的?

2024-10-06 区块链达人

ipfs网络的分布式数据是如何做到数据共享的?

  ipfs主网上线快一个了,相信很多人在很早之前就对ipfs进行过研究,它想要做什么?相信了解区块链这方面的都知道,IPFS-星际文件系统,远不只做存储,其终极目标是取代HTTP,成为Web3.0时代的基础协议,从其官网对IPFS的定义就可以看到其的雄心。

  我们知道HTTP协议简单,只要客户向服务器请求服务时,只需传送请求方法和路径就可以实现客户所求,同时HTTP允许传输任意类型的数据对象,做到数据共享。

那么,ipfs网络的分布式数据是如何做到数据共享的?

  在了解之前我们先来看看ipfs网络的工作过程:

  首先,IPFS会为每一个文件分配一个独一无二的哈希值(哈希值简单点来说可以把其看成一个函数,比如哈希算法:y=f(x)。这里,x就是原本的信息摘要,称之为键(key);而y就是经过加密之后信息的代号,也就是哈希值。根据文件的内容进行创建),这里要做到的就是即使是两个文件内容只有1个比特的不同,那么哈希值也要做到不相同。所以IPFS可以说是基于文件内容进行寻址,并不是像传统的HTTP协议一样基于域名来寻址。

  由于IPFS基于内容寻址而非域名寻址,IPFS将在整个网络范围内去掉重复的文件,并且为文件建立版本管理,只需要通过文件或数据块的哈希值,可以很容易个回到文件的历史版本查看数据,所以当你当查询文件的时候,IPFS便可自动在全网节点中找到拥有这些数据块的节点,并从节点上拉去数据。IPFS网络根据文件的哈希值(全网唯一)进行查找,因为每个文件的哈希值全网唯一,查询将很容易进行。

  IPFS利用IPNS将哈希值映射为容易记的名字,所以每个节点除了存储自己需要的数据,还存储了一张哈希表,用来记录文件存储所在的位置

  通过上面一系列的网络云算,最终ipfs网络做到数据共享,用来进行文件的查询下载。