《以太坊智能合约开发实战》 ——2.5.3 IPFS存储系统

2021-04-17 16:00:52 FIL16888 14548

2.5.3  IPFS存储系统

  IPFS(InterPlanetary File System)是一个去中心化的存储系统,使用分布式哈希表(Distributed Hash Table,DHT)和Merkle有向无环图(Directed Acyclic Graph,DAG)数据结构。

  IPFS的节点并不存储全部文件,而是存储节点需要的文件。如果一个文件只被很少的节点需要,那么该文件很有可能从网络中消失。

  在IPFS中存储一个文件时,该文件会被分成很多小于256KB的数据块(chunk),并生成每个数据块的哈希,网络中的节点在一个哈希表中存储它们需要的IPFS文件及其哈希。

  IPFS文件有以下4种类型。

* blob:代表一个实际存储在IPFS中的文件数据块。

* list:代表完整的文件。

* tree:代表目录。

* commit:代表其他文件版本历史中的快照。

  IPFS中的数据结构和Git的数据结构相似,其实就是借鉴了Git中的数据结构来实现版本管理。

  用户如果想要从网络中下载文件时,只需要IPFS的list文件的哈希。如果想下载目录,则只需要IPFS的tree文件的哈希。每个文件都由一个哈希进行标识,所以文件名不容易记住。如果更新文件,就需要与想下载该文件的所有人分享新的哈希。为了解决这个问题,IPFS使用IPNS功能,允许用户自行认证的名字或者人性化的名字指向IPFS文件。


首页
产品
新闻
联系