第二届深圳区块链技术与应用大会暨展览会,深圳区块链存储与IPFS技术应用大会暨展览会于2019年4月9日在深圳会展中心6号馆举行。那么这个IPFS是什么?和区块链有什么关系?有什么用?又怎么用呢?接下来小编会为您详细解析。html
什么是IPFS
简单地说
枯燥地说
有啥用
原理是什么
八层协议栈
IFPS的理想
操做
编译
安装启动
基本操做
对接RESTful
实例
部署我的博客
作电商网站
FileCoin
疑问与解决方案
有价值的参考资料git
IPFS = Bittorrent + git + SFS + BITSWAPgithub
IPFS(The InterPlanetary File System,星际文件系统), 是一个面向全球的、点对点的分布式版本文件系统,目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将全部具备相同文件系统的计算设备链接在一块儿。
原理用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个地方的内容,不须要验证发送者的身份,而只须要验证内容的哈希,经过这样可让网页的速度更快、更安全、更健壮、更持久。web
1.私人网盘(能够随时随地像访问本地存储同样,访问家里电脑里存的文件)
2.迷你CDN(相似百度金矿,让普通人能够把自家的带宽像商品同样出售给别人)
3.文件共享(知道BitTorrent么,IPFS不但能够共享文件还能共享目录)
4.版本管理(此功能和Web结合起来,之后很难再见到404了)
5.虚拟机的根目录(想一想你把一个操做系统装到IPFS上)
6.分布式文件系统(把家里磁盘的使用权像产品同样出售给别人)
7.数据安全(这是去中心化的天赋,想要入侵数据库就要攻击全部人)
8.取代HTTP(基于内容寻址,网络利用率高)
。。。数据库
网络:传输层(WebRTC)、可靠性(uTP或SCTP)、可链接性(ICE)、完整性、可验证性json
路由:DSHT,用于肯定同伴或内容的地址,简单说可让你知道到那个节点去找那个文件;api
块交换:Bittorrent+Bitswap, 节点必须以块的形式彼此提供直接的值跨域
对象:Merkle DAG, 路径、本地对象、对象锁定、发布对象、对象加密级别安全
文件:Blok、List、Tree、Commit、文件系统路径、将文件分隔成LISTS和BLOBSbash
命名:IPNS、DAG命名可变、人类友好名称,IPFS一问世就有不少人疯狂地去IPFS上注册域名,这就归功于此。
IPFS的思想是几十年成功的分布式系统的探索和开源的产物。IPFS综合了不少迄今为止很成功的系统中优秀的思想。除了BitSwap新协议以外,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 QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS
aaaaaaaaaaaaaa
# 建立文件夹并复制文件
$ ipfs files mkdir libai
$ ipfs files cp /ipfs/QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS /libai/file.txt
# 浏览刚复制过去的文件
$ ipfs files ls /libai
# 将IPFS中的文件取到本地
$ ipfs get /ipfs/QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS -o ./
用https的方式浏览咱们刚才上传的文件
API的官方文档:https://ipfs.io/docs/api/
对接API的js开源代码:https://github.com/ipfs/js-ipfs
具体操做步骤以下:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
curl -F file=@myfile “http://localhost:5001/api/v0/add?recursive=false&quiet=<value>&quieter=<value>&silent=<value>&progress=<value>&trickle=<value>&only-hash=<value>&wrap-with-directory=<value>&hidden=<value>&chunker=<value>&pin=true&raw-leaves=<value>&nocopy=<value>&fscache=<value>&cid-version=0&hash=sha2-256“
看完操做步骤,相信您对IPFS的功能有了一些了解,咱们进一步开下脑洞,看看能用IPFS干什么。
ipfs add -r ipfs_blog/
ipfs name publish QmebnxXBK7BgxRy2VsCE6z89epc9teZDh6ih8MCQUjDCZW
ipfs name resolve Qmczs7Qzf9r5Efgi25gofF7VD1rrFuoz49eEgWwh2xdf4X
如图利用IPFS存储资源文件,利用比特币提供支付,本身写个后台提供接口,简直美滋滋(是否是少了不少审核流程),国外的Openbazaar就是这样的一个去中心化的电商,既没有交易费用,也不用担忧审查。
Filecion是在IPFS基础上创建的项目,已经通过ICO,代币为“FIL”,用户经过向矿工支付FIL获取存储资源,从而激励有闲置资源的公众参与其中。FileCoin用复制证实(PoRep)和时空证实(Post)两种方式来证实矿工的价值,相比于依赖于工做量证实法(Pow)的比特币,FileCoin挖矿不会耗费那么多的电力和CPU。
Filecoin白皮书: https://filecoin.io/filecoin.pdf
Filecoin白皮书中文: http://chainx.org/paper/index/index/id/13.html
IPFS中文官网: http://ipfser.org/
IPFS白皮书: https://raw.githubusercontent.com/ipfs/ipfs/master/papers/ipfs-cap2pfs/ipfs-p2p-file-system.pdf
IPFS白皮书中文: https://gguoss.github.io/2017/05/28/ipfs/
IPFS源码: https://github.com/ipfs/go-ipfs
IPFS安装: https://ipfs.io/docs/install/
IPFS-js-api: https://github.com/ipfs/js-ipfs