一文读懂IPFS——区块链3.0的航空母舰!
第二届深圳区块链技术与应用大会暨展览会,深圳区块链存储与IPFS技术应用大会暨展览会于2019年4月9日在深圳会展中心6号馆举行。那么这个IPFS是什么?和区块链有什么关系?有什么用?又怎么用呢?接下来小编会为您详细解析。
什么是IPFS简单地说
IPFS = Bittorrent + git + SFS + BITSWAP
枯燥地说
IPFS(The InterPlanetary File System,星际文件系统), 是一个面向全球的、点对点的分布式版本文件系统,目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将所有具有相同文件系统的计算设备连接在一起。
IPFS用基于内容寻址的方式替代了域名寻址,即不是根据地址找内容,而是根据内容的哈希值找内容的地址。不需要验证发送者的身份,而只需要验证内容的哈希,这样可以让网页的速度更快、更安全、更健壮、更持久。
有啥用
1.私人网盘(可以随时随地像访问本地存储一样,访问家里电脑里存的文件)
2.迷你CDN(类似百度金矿,让普通人可以把自家的带宽像商品一样出售给别人)
3.文件共享(知道BitTorrent么,IPFS不但可以共享文件还能共享目录)
4.版本管理(此功能和Web结合起来,以后很难再见到404了)
5.虚拟机的根目录(想想你把一个操作系统装到IPFS上)
6.分布式文件系统(把家里磁盘的使用权像产品一样出售给别人)
7.数据安全(这是去中心化的天赋,想要非法修改数据就要攻击所有人)
8.取代HTTP(基于内容寻址,网络利用率高)
。。。
原理是什么八层协议栈
身份:保证了信息的完整性和可验证性;
网络:可以使用任意传输层协议,如WebRTC等;可靠性可由uTP或SCTP保证;可连接性由ICE保证(ICE是集打洞和转发于一身的网络穿透方式);
路由:DSHT,用于确定同伴或内容的地址;
块交换:融合了Bittorrent和Bitswap, 节点必须以块的形式彼此提供直接的价值,上传得多,下载得就快,起到了鼓励用户积极在线的作用;
对象:通过Merkle DAG实现,内容可寻址,但不可更改,去除了冗余的对象链接;
文件:类似Git的版本控制的文件系统:blob、list、tree、commit;
命名:IPNS、DAG命名可变、支持人类友好名称,IPFS一问世就有很多人疯狂地去IPFS上注册域名,就归功于此。
IFPS的未来IPFS的野心
IPFS的思想是几十年成功的分布式系统的探索和开源的产物。IPFS综合了很多迄今为止很成功的系统中优秀的思想。除了BitSwap新协议之外,IPFS最大的特色就是系统的耦合以及设计的综合性。
IPFS是去中心化网络基础设施的一个野心设想,很多不同类型的应用都可以建立在IPFS上。最低限度,它可以用来作为一个全局的,挂载性,版本控制文件系统和命名空间,或者作为下一代的文件共享系统。而最好的情况是,IPFS可以让Web升级一个层次,当发布一个有价值的信息时,任何感兴趣的人都可以进行发布而不会强迫性的必须只允许发布机构进行发布,用户可以信任信息的内容,信不信任信息的发送者都是无关紧要的,还有一个特点就是,一些重要但很老的文件也不会丢失。IPFS期待着带我们进入到一个Permanent Web的世界。IFPS未来应用场景预测
IPFS的应用大会上,对IPFS应用场景的预测举例如下:
1.通过IPFS减少以太坊区块链的大小
2.基于IPFS与区块链的P2P文件系统
3.基于以太坊的音乐分享平台Opus
4.一个基于创新型区块链的存储模型
5.利用区块链和IPFS开展学术出版和同行审查
6.基于IFPS和横向扩展NAS的雾架构对象存储
7.一个基于IPFS的物联网框架
8.工业4.0、5G、IPFS与区块链相辅相成
会上指出IPFS将作为基础底层技术之一,支撑如下场景:
场景一:内容创作及版权
场景二:高清视频平台
场景三:互联网信息安全
场景四:社交网络
场景五:数据存储
场景六:分布式云端
场景七:金融信任
操作编译
以Ubuntu为例
$ go get -u -d github.com/ipfs/go-ipfs$ cd $GOPATH/src/github.com/ipfs/go-ipfs$ make install
安装启动
$ ipfs init$ ipfs daemon &
基本操作
# 添加文件$ ipfs add a.txt# QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS是add之后生成的$ ipfs cat QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PSaaaaaaaaaaaaaa# 创建文件夹并复制文件$ ipfs files mkdir libai$ ipfs files cp /ipfs/QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS /libai/file.txt# 浏览刚复制过去的文件$ ipfs files ls /libai# 将IPFS中的文件取到本地$ ipfs get /ipfs/QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS -o ./
用https的方式浏览我们刚才上传的文件(请注意这里我们用的是IPFS的域名,这就说明,我们刚才上传的文件已经部署在了"/ipfs"这个命名空间下)
使用RESTful
API的官方文档:https://ipfs.io/docs/api/
对接API的js开源代码:https://github.com/ipfs/js-ipfs
以添加文件为例,具体操作步骤如下:
编辑IPFS的config文件:将127.0.0.1换成0.0.0.0 添加跨域共享ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'访问IPFS的管理页面:http://[NodeIP]:5001/webui添加文件(路径前一定要加”@”符号)
curl -F file=@myfile “http://localhost:5001/api/v0/add?recursive=false&quiet=实例&quieter= &silent= &progress= &trickle= &only-hash= &wrap-with-directory= &hidden= &chunker= &pin=true&raw-leaves= &nocopy= &fscache= &cid-version=0&hash=sha2-256“
看完操作步骤,相信您对IPFS的功能有了一些了解,我们进一步开下脑洞,看看能用IPFS干什么。
部署个人博客
ipfs add -r ipfs_blog/ipfs name publish QmebnxXBK7BgxRy2VsCE6z89epc9teZDh6ih8MCQUjDCZWipfs name resolve Qmczs7Qzf9r5Efgi25gofF7VD1rrFuoz49eEgWwh2xdf4X
在这里,我们将自己的博客添加到IPFS后,用自己节点来为当前博客寻址,这样,别人只需要知道我们的节点ID,就可以访问我们的主页的,不必要在每次修改文件之后都去改链接后面的哈希值。访问的结果如下:
做电商网站
如图,利用IPFS存储资源文件,利用比特币提供支付,自己写个后台提供接口,简直美滋滋(是不是少了很多审核流程),国外的Openbazaar就是这样的一个去中心化的电商,既没有交易费用,也不用担心审查。
FileCoin
Filecion是在IPFS基础上建立的项目,已经经过ICO,代币为“FIL”,用户通过向矿工支付FIL获取存储资源,从而激励有闲置资源的公众参与其中。FileCoin用复制证明(PoRep)和时空证明(Post)两种方式来证明矿工的价值,相比于依赖于工作量证明法(Pow)的比特币,FileCoin挖矿不会耗费那么多的电力和CPU。
疑问与解答
长长的一串哈希值不容易被记住。答:IPFS可以配置人类友好型域名,ipns就是解决这个问题的。不想和世界联网,只想自己组个私网。答:IPFS支持搭建私网,生成一个swarm.key放到IPFS数据目录即可。有价值的参考资料小编为您精心准备了如下资料:
Filecoin白皮书
Filecoin白皮书中文
IPFS中文官网
IPFS白皮书
IPFS白皮书中文
IPFS源码
IPFS安装
IPFS-js-api
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。