网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

星际文件系统

更新时间:2026年03月27日   作者:spoto   标签(Tag):

引言: 
IPFS(InterPlanetary File System)是一种点对点的、具有版本控制功能的、以内容为地址的文件系统。它运用了计算机科学中的各种概念,比如分布式哈希表、BitSwap(受BitTorrent的启发)、MerkleDag(受Git协议的启发)。
历史: 
IPFS是由Juan Bennet在2015年于Protocol Labs创建的。目前,已经有多个基于IPFS的应用程序正在开发中。
描述: 
目前,在互联网上交换数据的默认方式是HTTP。不过,HTTP在某些情况下存在缺陷。大文件无法通过HTTP进行传输,而且HTTP中的数据也无法被永久保存。此外,HTTP主要使用客户端-服务器协议,这导致延迟较高,同时也难以建立点对点连接。另外,实时媒体流传输在HTTP上也很困难。而所有这些问题都可以通过IPFS来解决。
与基于IP地址的HTTP不同,IPFS网络是基于内容的来定位数据的。 这意味着,当任何数据被上传到 IPFS网络中时,系统会返回一个哈希值。之后,就可以使用这个哈希值来请求相应的数据。 任何人都可以为IPFS网络提供存储服务,而所有参与者都会获得加密货币作为奖励。 数据在网络中分布并被复制,这使得数据具有持久性。 在请求数据时,它会寻找与该数据最相近的副本。不过,这样做会导致较高的延迟,同时也会遇到各种瓶颈问题。 由于数据是完全分布式的,因此不存在将数据集中处理的必要。
IPFS可以被看作是一个单一的BitTorrent网络,它在一个Git仓库内交换各种对象。
-胡安·贝内特(IPFS白皮书)
在IPFS中使用的概念: 

  • 分布式哈希表: 
    它用于在网络中的各个节点之间存储和检索数据。它其实是一种类似于哈希表的类。通过DHT机制,网络上的任何节点都可以请求与某个哈希键相对应的值。
  • 街区交易所: 
    它被用于BitTorrent协议(也称为BitSwap)中,用于节点之间数据的交换。这是一种点对点的文件共享协议,能够协调不可信的节点之间的数据交换。该协议采用“以牙还牙”的策略,即对那些愿意为彼此提供帮助的节点给予奖励,而对那些只索取资源的节点则进行惩罚。这有助于IPFS节点能够并行地获取数据的多个部分。
  • Merkle DAG: 
    它使用了类似Git版本控制系统中所使用的Merkle树或Merkle DAG结构。这种结构能够以分布式系统所要求的效率来跟踪网络中文件的变更情况。数据是通过内容的加密哈希值来标识的。

IPFS节点: 
网络中的每个节点都通过一个NodeID来标识,而这个NodeID实际上就是该节点的公钥的哈希值。网络中的每个人都可以将自己的文件存储在本地存储设备中,而且他们也会受到激励去这样做。每个节点都会维护一个DHT机制,该机制用于查找网络中其他节点的ID,以及这些节点能够提供哪些数据。
开始使用IPFS: 
要接入IPFS网络,我们可以从官方网站下载并安装IPFS软件。

  • 按照给定的说明进行安装后,可以在终端或命令行中初始化该仓库。
 >ipfs init

输出结果:

正在初始化位于 /home/omkar/snap/ipfs/1170/.ipfs 的 IPFS 节点。
正在生成 2048 位的 RSA 密钥对……已完成。
同行身份:QmX8TxRjpSZeTXZ1gEF6Jy3Hq7A8PYyBMECX911tRrnXqQ
要开始的话,请输入:
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

  • Daemon可以在终端中执行。
>ipfs daemon

输出结果:

正在初始化守护进程……
go-ipfs版本:0.4.21-8ca278f45
回购版本:7
系统版本:amd64/linux
Golang版本:go1.12.6
Swarm正在监听 /ip4/127.0.0.1/tcp/4001 端口。
Swarm正在监听 /ip4/192.168.0.107/tcp/4001 端口。
Swarm正在监听/IP6::1/tcp/4001端口。
Swarm正在监听 /p2p-circuit 这个端口。
Swarm正在发布公告,地址为 /ip4/127.0.0.1/tcp/4001
Swarm正在公告 /ip4/192.168.0.107/tcp/4001
Swarm正在公告 /ip6/::1/tcp/4001
API服务器正在监听 /ip4/127.0.0.1/tcp/5001 端口。
WebUI:http://127.0.0.1:5001/webui
网关服务器(只读模式),监听地址为 /ip4/127.0.0.1/tcp/8080
Daemon已经准备好了。
 

  • 现在,一旦您已经连接到网络,就可以通过HTTP到IPFS的网页门户来访问网络。此外,您还可以使用终端来获取其他节点的ID。
 >ipfs swarm peers

输出结果:

/ip4/170.11.91.8/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
/ip4/191.236.12.16/tcp/4002/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ
/ip4/131.121.91.93/tcp/4001/ipfs/QmWHyrPWQnsz1wxHR219ooJDYTvxJPyZuDUPSDpdsAovN5
/ip4/174.12.28.10/tcp/4001/ipfs/QmdXzZ25cyzSF99csCQmmPZ1NTbWTe8qtKFaZKpZQPdTFB

您还可以在 WebUI 上找到有关您的节点以及与其相连的节点的信息。(网址:http://127.0.0.1:5001/webui)

IPFS的优势: 

  1. 在本地网络中,用户之间可以互相通信,即使广域网因某种原因被阻塞了,用户仍然能够相互交流。
  2. 由于不需要任何服务器,创作者可以无需任何成本地传播自己的作品。
  3. 由于数据传输的带宽更高,因此数据加载的速度也会更快。

IPFS的缺点:

  1. IPFS的安装过程相当繁琐,而且完全不便于用户使用。
  2. IPFS会消耗大量的带宽资源,这一点并不受那些使用流量计费的互联网用户的欢迎。
  3. 目前,IPFS主要被技术爱好者所使用,普通民众则不太愿意自己搭建节点。因此,网络中的节点数量一直比较短缺。

结论

IPFS整合了迄今为止各种最佳的系统和协议。IPFS是一种具有远见的新型去中心化互联网基础设施,未来可以在其基础上构建出多种多样的应用程序。
 

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料