📜  星际文件系统

📅  最后修改于: 2022-05-13 01:56:55.539000             🧑  作者: Mango

星际文件系统

介绍:
IPFS(星际文件系统)是一个对等、版本控制、内容寻址的文件系统。它利用了分布式哈希表、BitSwap(受 BitTorrent 启发)、MerkleDag(受 Git 协议启发)等计算机科学概念。

历史:
IPFS 由协议实验室的 Juan Bennet 于 2015 年创建。目前有多个应用程序正在 IPFS 之上构建。

描述:
当前通过 Internet 交换数据的默认方式是 HTTP,但在某些情况下会失败。大文件不能使用 HTTP 传输,数据在 HTTP 上不是永久的,HTTP 主要使用 Client-Server 协议,延迟低,难以建立点对点连接,实时媒体流在 HTTP 上也很困难.使用 IPFS 可以克服所有这些故障。
与 IP 寻址的 HTTP 不同,IPFS 网络是内容寻址的。这意味着,当任何数据上传到 IPFS 网络时,它会返回一个哈希,然后使用该哈希请求数据。任何人都可以在 IPFS 网络上提供存储,并且每个人都受到加密代币的激励。数据在整个网络中分布和复制,从而导致数据持久性。在请求数据时,它会搜索该数据的最近副本,这会导致高延迟并克服任何瓶颈点。由于数据是完全分布式的,它没有数据集中的空间。

IPFS 可以被视为单个 BitTorrent 群,在一个 Git 存储库中交换对象。
-Juan Bennet(IPFS 白皮书)

IPFS 中使用的概念:

  • 分布式哈希表:
    它用于跨网络节点存储和检索数据。它是一个类似于哈希表的类。使用 DHT,网络上的任何节点都可以请求与哈希键对应的值。
  • 块交换:
    它在 BitTorrent 协议(也称为 BitSwap)中用于在节点之间交换数据。它是一种点对点文件共享协议,用于协调不受信任的群体之间的数据交换。它采用针锋相对的策略,奖励相互贡献的节点,惩罚只请求资源的节点。这有助于 IPFS 节点并行检索数据的多个部分。
  • 默克尔 DAG:
    它使用类似于 Git 版本控制系统中使用的 Merkle 树或 Merkle DAG。它用于以分布式友好的方式跟踪网络上文件的更改。数据通过内容的加密散列进行内容寻址。

IPFS 节点:
网络上的每个节点都使用 NodeID 进行标识,该 NodeID 只不过是其公钥的散列。网络上的每个人都可以将文件存储在他们的本地存储中,并且他们被激励这样做。每个节点都维护一个 DHT,用于找出网络上其他对等点的 ID 以及这些对等点可以提供哪些数据。

IPFS 入门:
要进入 IPFS 网络,我们可以从官方网站安装 IPFS。

  • 根据给定的说明安装后,可以在终端或命令行中使用
>ipfs init

输出:

  • 守护进程可以作为终端执行
>ipfs daemon

输出:

  • 现在,一旦您在线,您就可以使用 HTTP 到 IPFS 门户网站访问网络。此外,您可以使用终端获取同行的 ID
>ipfs swarm peers

输出:

您还可以在 WebUI(地址 http://127.0.0.1:5001/webui)上找到有关您的节点和对等节点的信息。

IPFS 的优势:

  1. 即使广域网由于某种原因被阻塞,局域网中的用户也可以相互通信。
  2. 由于不需要服务器,创作者可以免费分发他们的作品。
  3. 数据加载速度更快,因为它具有更高的带宽。

IPFS的缺点:

  1. IPFS 安装有很多麻烦,一点也不友好。
  2. IPFS 会消耗大量带宽,而按流量计费的互联网用户并不喜欢这种带宽。
  3. IPFS目前被技术爱好者使用,普通人不倾向于建立自己的节点,这导致网络上的节点短缺。

结论

IPFS 综合了迄今为止最好的各种系统和协议。 IPFS 是新的去中心化互联网基础设施的雄心勃勃的愿景,未来可以在此基础上构建许多不同类型的应用程序。