IPFS如何工作?
作者:admin 发布时间:2021-07-30 19:00

  IPFS与我们今天所知的万维网的概念类似,但它更像是在单个Git存储库中交换对象的单个BitTorrent swarm。文件通过基于BitTorrent的协议分发。重要的是,IPFS可以被当作是Kodemila,BitTorrent和Git的组合,以创建Internet的分布式子系统。该协议的设计提供了与Git一样的互联网历史版本。每个文件及其中的所有块都被赋予唯一标识符,该标识符就是加密哈希。重复项在整个网络上被删除,并跟踪每个文件的版本历史记录,这确保了持久可用的内容,网页不会因服务器故障或Web主机破坏而消失。

  此外,通过这种机制保证内容的真实性。当您在查找文件时,您实质上是要求网络查找一个节点,该节点存储的文件在与文件相关联的唯一标识哈希之后。IPFS中节点之间的链接采用加密哈希的形式,这是因为它使用了默克尔有向无环图数据架构。默克尔有向无环图数据架构作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点。默克尔有向无环图对IPFS的好处包括:

  内容寻址:内容具有唯一标识符,该标识符是文件的加密哈希值.

  无重复:具有相同内容的文件无法复制,只能存储一次。

  防篡改:数据通过验证,因此,如果哈希发生变化,则IPFS将知道数据被篡改。

  IPFS使用默克尔链接将文件结构相互链接,并且每个文件都可以使用名为IPNS的去中心化命名系统通过可读的名称找到。在IPFS网络中,存储文件时,首先会将文件切片,切割成256KB大小的文件,之后循环调用(MerkleDAG.Add)方法构建文件MerkleDAG。

  文件hash值创建流程:

  1、将切片之后的文件进行sha-256运算;

  2、将运算结果选取0~31位;

  3、将选取结果根据base58编码,运算结果前追加Qm即为最后结果作为文件的46位hash值。根据IPFS底层代码计算。Merkle DAG为多叉树结构,最多为174叉树。

  每个节点只存储它感兴趣的内容,并对信息进行索引,使其能够确定谁在存储什么。IPFS框架从根本上消除了中心化服务器向用户提供网站内容的需要。最终,这个概念可能完全将HTTP协议推向无关紧要的位置,并允许用户在本地离线访问内容。用户将搜索唯一的ID(加密哈希),而不是像在当前的互联网基础设施那样搜索服务器。这可以使数百万台计算机能够将文件传送给您,而不是仅仅一台服务器。IPFS当前的主要应用使用的是Go语言,Python和Javascript的开发正在进行之中。它与Linux,MacOSX,Windows和FreeBSD兼容。作为一个开源和社区驱动的项目,您可以通过遵循Github页面上的说明和文档来运行您自己的IPFS节点,以便为IPFS做出贡献。

电话
13386501543