区块链研习社

用IPFS来保存和共享文件

2018-08-15  本文已影响2人  胡智威

为什么需要一个去中心化的存储

互联网上经常有这样的情况出现:有些文章如果你不抓紧时间看,那么可能就再也看不到了,只能看到各种各样的花式404提示页面。

(这里我意识流的插一段:经常有人会管被墙了叫做404,但这是不对的。404是服务器返回找不到相应资源的响应,比如原有内容被删除或者是地址输入错误。背后的原理是你和服务器已经通讯,但服务器表示你还是另请高明吧,我找不到这个内容了。而当你试图访问某些不存在的网站,例如Googl×、 Youtub×、Faceboo×等等,你根本就访问不到服务器,一般会是Connection Reset,而不是404。再简单点理解就是:对内404、对外 Connection Reset ...)

除了一些主观上的主动删除外,一些非主观的人为操作或者技术故障也会导致存储丢失的事件。最近几天,国内就有云上数据丢失的情况发生。

所以,一个过于中心化的网站或数据中心都会存在这样的数据丢失或被移除的风险。

IPFS是什么

简介

星际文件系统 IPFS (Inter Planetary File System) 是一个分布式文件存储系统,可以实现在多台计算机上存储、共享文件的功能。

我种子少,你不要骗我

那么,IPFS 和 BitTorrent 的区别在哪里呢? 的确,它给人的第一感觉是和 BitTorrent 很像。从网络的底层机制上看,他也确实和 BitTorrent 并没有什么太本质的区别,都是实现了文件的特征摘要、以及根据这个摘要的点对点存储与传输。

但 IPFS 的设计对于程序的读取更加友好,不仅仅是一个存储和下载的系统,而更像是一个基于分布式网络的文件系统,甚至可以作为一种 CDN 来使用。
以后加上了 Filecoin 等通证经济机制后,还可以诞生出来更多好玩的应用,例如 PT 这种激励用户上传、做种获取回报的极其适合用区块链方式来运行的体系。

另外,还有版本控制功能,采用了类似 Git 的实现,可以实现存储内容的多个版本。

所以,这也就是为什么IPFS的描述里会有:IPFS = HTTP web + Git + BitTorrent。也就是被设计用来取代现有的 HTTP 协议。

类似产品

IPFS 早在2015年就启动了。所以到目前,除了 IPFS 以外,还有类似产品诞生,例如: Storj 、 Sia 、 Swarm 等。

Storj

Sia

Swarm

IPFS 缺点

当然,IPFS 目前还不够完善,比较突出的主要有:

  1. 无法删除文件。也就是用户上传文件后,就失去了掌控权。最多只能从用户自己的节点上清空掉这一文件
  2. 暂时还缺少 Filecoin 这一激励层

如何保存和读取文件

IPFS 的操作使用还是比较方便的。最后,以保存和读取文件为例来解释如何使用IPFS

如何上传

  1. 首先登录 https://dist.ipfs.io/ 下载平台。
  2. IPFS 初始化
ipfs init

IPFS 检查状态是否正常。如果能显示,则为正常

ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
  1. IPFS 监控
ipfs daemon
  1. 将文件上传到IPFS平台

增加单个文件:

ipfs add xxx

增加目录:

ipfs add xxx -r

上传后需要记录下来文件的 哈希值

  1. Pin 文件
    Pin 的作用是让其他节点知道这个文件可以在我这里找的到。
ipfs pin add QmdNMBVqQJ9baQDAJMUwci8LzVK2a52cTLEHoinaKFEdFY

如何读取

搭建节点方式

最直接的方式就是搭建IPFS节点,通过命令行来get

ipfs cat QmdNMBVqQJ9baQDAJMUwci8LzVK2a52cTLEHoinaKFEdFY
ipfs get QmdNMBVqQJ9baQDAJMUwci8LzVK2a52cTLEHoinaKFEdFY

除了命令行之外,也可以web UI来访问到自己的节点:
http://localhost:5001/webui

如果使用 chrome,还有一些好用的插件,例如 IPFS Companion 来操作和查看 IPFS 节点

第三方工具方式

除了自己搭建节点外,较为方便的方式是可以通过 ipfs.io 官网来直接查看
https://ipfs.io/ipfs/QmdNMBVqQJ9baQDAJMUwci8LzVK2a52cTLEHoinaKFEdFY

还有一些国内网站也可以使用
http://www.ipfs.guide/

参考资料

  1. https://ipfs.io/
  2. IPFS 和 BitTorrent 区别
  3. What is Decentralized Storage? (IPFS, FileCoin, Sia, Storj & Swarm)
  4. How to Save a File on IPFS — A 7-Step Primer
上一篇 下一篇

猜你喜欢

热点阅读