我一直在努力实现和理解IPFS的工作,并且有一些不太清楚的事情。
我尝试过的事情:
在我的系统上实现IPFS并在其上存储文件。即使我从系统中删除文件并关闭ipfs守护程序,我仍然可以通过IPFS从其他机器访问文件。
我注意到我的主目录中有一个 .ipfs 文件夹,其中包含我添加到IPFS的数据块部分。
问题:
1.块是否也存储在我的系统本地?
2.数据存储在何处?在我连接的其他同行上?因为如果我关闭我的ipfs守护进程,我仍然可以访问该文件
3.如果这是真的,并且数据存储在多个位置,如果所有对等方都与网络断开连接,那么丢失数据的可能性仍然存在?
4.网络上的每个对等体是存储整个文件还是仅存储文件的一部分?
5.如果在p2p网络上分发数据副本,则意味着数据被多次复制?这在存储方面如何有效?
6.我们也存储其他同行上传的数据?
7.运行IPFS的最低系统要求?我们只需要丰富的存储空间,不一定需要强大的系统?
提前致谢!
答案 0 :(得分:27)
上传内容时,ipfs将文件 chunked 并存储在缓存文件夹(.ipfs)中。
如果您尝试在网络的另一个对等方(比如主网关,ipfs.io)上看到该文件,该对等方向您请求该文件,并且缓存也是如此。
如果关闭守护程序,您仍然可以在网关上看到该文件,因为网关或网络上的其他同行仍然可以缓存它。
当一个同伴想要下载一个文件但是它没有内存(它不能再缓存)时,最旧的文件会忘记释放空间。
......实际上它比这更复杂,因为我有更广泛的范围,我指出你要检查:
但后者应该让你了解机制的运作方式或多或少。
如果您对以p2p方式存储数据的方式感兴趣,可以在此处链接到有趣的项目。