IPFS是什么
来自百度百科:星际文件系统是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs在开源社区的帮助下发展。其最初由Juan Benet设计。
简单来说它就是一个去中心化的P2P的文件系统,它的部分场景类似于BitTorrent(在文件分享和下载领域),区别是BitTorrent只是一个“中心化”的“download system”,它基于tracker server(跟踪服务器)来实现文件的分布式存储和下载,而tracker server是中心化的,比如,之前世界最大的BT站之一瑞士的海盗湾就因为版权问题数次被迫关闭。而 IPFS 是一个“去中心化”的“filesystem”,意味着你可以将 IPFS mount 到你的本地电脑然后当磁盘一样操作,而去中心化的特征更意味着它可以作为其他去中心化应用的存储层,比如作为其他公链、Dapp的存储层。
基于IPFS的应用
目前基于IPFS协议的应用五花八门:
在ETHDenver 2020提交的所有项目中,有一半是基于IPFS构建的:https://medium.com/ethdenver/all-of-the-ethdenver-2020-project-submissions-a29124035332
基于IPFS典型的应用包括:
- DTube :第一个加密分布式视频平台,建立在 STEEM 区块链和 IPFS 点对点网络之上,未来会支持FIlecoin网络,它旨在成为 YouTube 的替代品,允许用户在IPFS/FIlecoin 基础上观看或上传视频,并在不可变的 STEEM 区块链上进行分享或评论,同时赚取加密通证。
- Ujomusic:一个 IPFS上的音乐家的区块链市场。粉丝可以购买许可权,下载、试听,也可以用于混音等用途;而且粉丝支付的钱会自动分配给Heap和该作品的合作方。
- Indorse:一个基于以太坊平台的社交网络,它旨在改变当前职业社交网络的现状。Indorse使用了IPFS网络用做数据存储,保证用户数据安全,杜绝职场欺骗现象,重现一个真实的职场社交平台。
- 3Box:基于IPFS构建的3Box聊天插件,使区块链开发人员更容易参与包括私人聊天,上传照片,喜欢帖子以及与用户生成的内容和社交互动相关的其他常见活动。
- Open Bazaar:一个结合了 eBay 和 BittTorrent 特点的去中心化商品自由交易市场。OpenBazaar 平台没有一个中心服务器,运用加密学做担保,信任来自于代码和数学,而不是人。
- Textile:一款开源照片备份手机软件,支持在设备上整理照片或远程备份照片,可以将照片发布给朋友,家人或喜爱的社区。用户上传的照片全部存储在IPFS分布式存储网络中,旨在永久保存,且照片都经过私钥加密,不用怕出现当年苹果iCloud照片泄漏的事件。
- Civic:作为一个依托IPFS技术,受以太坊支持,Civic Wallet提供了在传统货币和加密货币之间过渡的灵活性,为所有人提供可靠账户,管理数字货币和身份的平台。
这篇小短文暂不涉及基于IPFS的Dapp应用,就给大家简单介绍一下怎么用IPFS最基础的能力 - 文件分享,介绍的是基于IPFS Desktop这个工具,IPFS桌面客户端是由官方社区发布的全平台桌面客户端,同时支持Windows 和 Mac OS,通过这款小应用可以做文件的上传下载、查看节点情况等。
安装IPFS Desktop
https://github.com/ipfs-shipyard/ipfs-desktop/releases
这里可以查看最新的可安装版本(也可以下载源代码自己编译,不过不太有必要),当前版本为0.13.2,迭代还是比较勤快的。
Windows版本安装包:https://github.com/ipfs-shipyard/ipfs-desktop/releases/download/v0.13.2/IPFS-Desktop-Setup-0.13.2.exe
Mac版本安装包:https://github.com/ipfs-shipyard/ipfs-desktop/releases/download/v0.13.2/IPFS-Desktop-0.13.2.dmg
此处以Mac版本安装为例,下载安装包安装之后,就会有个IPFS Desktop应用:
https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/9fdafa018ee9a1a36eb3e170ef595467.png width="300px" />
但这个时候启动IPFS客户端可能会报错,连不上去:
https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/0ac063ee860882a43977d1abd91585dd.png />
原因是ipfs.io官网无法解析,需要手动添加解析,MacOS情况下在 /etc/hosts 文件中添加以下两行:
209.94.78.78 ipfs.io
209.94.90.1 ipfs.io
使用Windows系统的话,把这两行加到C:WindowsSystem32driversetchosts中,并运行命令“ipconfig /flushdns”立即生效。
点击IPFS Desktop的重新启动,应该就可以看到成功连接的状态了:
https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/c5b6994342fbdbad858c91cd01ea12ee.png width="350px" />
访问IPFS上文件
https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/ce892b3cbee7e283c4edc6260a4fed97.png width="350px" />
选择文件菜单,即可打开控制台的文件浏览页面,在地址栏中输入文件地址,即可访问该文件,以下是一些链上分享的电影:
大佛普拉斯:QmdpR9iP9EhUg1rmduHqwA4ddyHNMcsR8t9saXA9BmMU4t
看不见的客人:QmYWwXkgjdhMps9mB6DyEp4zSFmDQ9U6SuqGRGovEycr49
勇往直前:QmZRJevYhADpXmCGGF6eCcP1afNEYFahDW5jxje3iyyCJS
至暗时刻:QmUPvs7iyM5ZWPQwDovRqvNzxMJHSUWNRWAWRkAsseVcvs
银翼杀手2049:QmcUHdzKgRrcJrD5Ah46HgBHF7urWDhmAnLKYwcHaLgeGP
盗梦空间:QmQATmpxXvSiQgt9c9idz9k3S3gQnh7wYj4DbdMQ9VGyLh
狮子王:QmfHGQZNQNymHDC6b7TZjgGbh962VWQQN5oV92w9jHE4qt
祖宗十九代:QmbrwEH4AEQhUN929yPy4j5B2PfQYk3JJyG8iq7HVoXbia
疯狂动物城:QmUKaQwN2ppapUEFhbHsKoVXn2yBRM7mLpu5HQv9am7dB7
彩绘心天地:QmXg1c6qPtoQAyfrXrWnuDrUgFehnt4kLvv1hxheMUeFBC
肖申克的救赎:QmRUYeMkvirV4frGX8wcntCq6x5GqDixAjZnFj5Jg1E3qj
太空旅客:QmdxpUVnvFnert9nmEkzwwz2tWdavU3fUQzrgBsTZP5yyG
比如访问看不见的客户人,拷贝文件地址进去,点击浏览:
因为是个电影文件,会提示不支持预览,但点击下载按钮就可以直接在浏览器里播放观看:
也可以下载存储视频文件:
https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/035ecca4a22affe1f34bcbdd8bd0e6be.png width="350px" />
文件上传和分享
直接把需要上传的文件拖拽到IPFS Desktop文件窗口,即可完成文件的添加,并生成该文件的唯一访问地址,把这个地址分享出去,别人就可以直接访问了。
查看节点情况
用IPFS Desktop工具,也可以查看一下当前整个链上可访问连接的节点数量、位置、延迟等等信息,目前IPFS节点的分布主要在中美欧三地为主:
其他还有一些边角功能,可以在上面多做一些探索尝试。