案发现场还原:
- 我再 A 机器安装了 ipfs,并使用 ipfs add 命令上传了一张图片
- 等待了一段时间之后(有一次测试超过半小时), 关闭 A 机器的 ipfs 进程
- 使用 ipfs.io 网关访问我上传的图片打不开,
- 打开 A 机器的 ipfs
- 使用 ipfs/io 网关访问我之前上传的图片,可以打开
我的理解:
ipfs 使用 add 命令后,将图片存储到本地,并将图片 hash 上链,但并没有备份到其他节点 当我使用非本地网关访问我上传的文件的时候,网关节点,会从我的服务器拉取图片,并缓存 也就是说,我使用 ipfs 存储数据后,并没有时时备份,如果我不通过其他网关访问,图片一直只 在我的本地机器
疑问:
看很多新闻媒体,以及文章都说 ipfs 是永不丢失的存储,如果我想用 ipfs 作为存储工具, 又使用了自己的网关,让用户访问,那么数据其实一直都还是只在我的服务器上, 当然如果浏览器直接支持 ipfs 协议,访问 ipfs 存储不需要通过 http 网关,可以解决这个问题, 但仍然有另外一个问题,如果我存储的某份数据,一直没有被访问过,它依然不会被备份到其他节点 万一我的节点故障了,数据就会丢失,
应用场景举例
基于上面我观察到的现象,如果我想使用 ipfs 做一个自己的个人云网盘,基本上是不行的,只相当于存储到了本地,并且可以通过网络访问而已,并没有达到永不丢失的这个特性,