所有IPFS请求均需经过公共网关吗?IPFS文件来源疑问
关于IPFS请求与文件来源的解答
1. 所有IPFS请求都需要经过公共网关吗?
当然不是!IPFS的核心就是去中心化,请求完全可以绕开公共网关,直接通过你自己的本地节点完成交互。
举几个实际场景:
- 如果你在本地运行了
ipfs daemon启动节点,那么可以直接通过http://localhost:8080/ipfs/<哈希值>访问内容,这个过程完全是你的本地节点和网络中的其他节点直接通信,没有经过任何公共网关。 - 用命令行工具(比如
ipfs cat <哈希值>、ipfs get <哈希值>)操作时,也是本地节点直接从网络中查找并获取数据,不需要依赖公共网关。
公共网关只是给那些不想自己运行IPFS节点的用户提供的便捷入口,本质上是别人帮你运行了一个节点,替你完成数据查找和传输的工作。
2. 文件是由ipfs.io网关提供,还是由其他去中心化参与节点的本地网关提供?
这得分两种情况看:
- 通过ipfs.io网关访问时:此时是ipfs.io的公共节点先从IPFS网络中找到对应的文件(如果它本地还没有缓存的话),然后把文件传递给你。相当于你通过这个公共节点作为中转来获取内容,文件来源可能是网络中任何持有该哈希的节点,最终由ipfs.io网关提供给你。
- 用
ipfs get -o <file-name> <hash>命令获取时:这个过程是你的本地IPFS节点直接在IPFS网络中广播请求,找到所有持有该哈希文件的节点(可能包括你自己的节点、其他用户的节点,甚至ipfs.io的节点),然后从这些节点中获取数据。整个过程是去中心化的,并不是必须依赖ipfs.io网关,只要网络中有节点持有该文件,你就能获取到。
内容的提问来源于stack exchange,提问作者Pool
相关产品推荐
相关产品推荐

