把ipfs和filecoin放在一起,事情变得奇妙起来:filecoin是运行在ipfs上面的一个激励层。ipfs有巨大存储需求和节点需求,我们都知道p2p网络节点越多下载越快,如果没有激励机制,谁愿意贡献如此多的节点和存储呢,于是filecoin来了。filecoin可以为ipfs贡献很多很多节点,同时filecoin带着一个巨大的分布式存储空间,同时解决了ipfs的存储问题。于是ipfs跟http对比拥有了更强的优势。filecoin代币的作用:filecoin协议的代币也叫filecoin ( 说filecoin的时候可能说的filecoin网络, 也可能说的是 filecoin代币 ) ,符号FIL,代币是沟通资源使用者(用户)和资源提供者(矿工)的中介桥梁,filecoin协议拥有两个交易市场,数据检索和数据存储,双方在市场里面提交自己的需求,达成交易。filecoin和ipfs相互促进,共创未来,真是一对好情侣!
IPFS协议
ipfs协议对标的是http协议,http是一个传输协议, 解决的是网络传输问题。http协议我们很熟悉了,用了这么多年了,http协议是一个伟大发明,没有http协议就没有互联网,随着互联网的发展http协议逐渐暴露出来了很多问题,技术永远是在进步的
HTTP的不足之处:
- 效率低,使用成本高,带宽资源浪费严重
- 数据丢失,页面平均生命周期只有100天
- 中心化的网络限制了很多发展机会
- 对主干网的严重依赖, 经常造成服务中断
IPFS也是一个数据数据传输协议, 相比于http有如下优点:
- P2P下载, 节省高达60%的带宽, 使用成本低廉
- 永久web, 不在删除数据
- 分布式的网络, 给互联网带来生机
- 不再依赖主干网, 降低因不可抗力造成的服务中断问题
ipfs是一个协议也是一个网络。实实在在的网络,已经运行了2年半了。就像btc网络一样,ipfs协议也没有发明什么,大多数工作是在前人已有的基础进行的,ipfs集成了如下已有的系统:
- DHT(distributed hash tables):分布式哈希表
- Git:版本管理工具
- BitTorrent:数据交换协议
- SFS(self-certified filesystems):自认证文件系统
ipfs协议是如何设计的,都包含什么
1 节点身份
每一个ipfs节点都有一个独一无二的身份id,利用节点的公钥生成的加密哈希,节点的活动都需要使用这个id,就像是ipfs网络里面节点的身份证。
2 网络
ipfs节点要和网络里面成百上千的其它节点通讯,现实中的网络结构如此复杂,ipfs使用 ICE NAT穿透技术来保障网络的连通性。
3 路由
ipfs网络的路由使用的是DHT,借鉴了S/Kademlia,使得一个节点可以快速的查找到其它节点。
4 数据交换协议
ipfs借鉴BitTorrent协议,使用了叫做BitSwap的数据交换协议,该协议使用两个列表,想要的数据块(want_list)和我有的数据块(have_list)与其它节点进行数据交换。
5 对象存储
ipfs存储数据使用的是 Merkle DAG结构,这赋予了ipfs内容寻址,防篡改,去重功能。
6 版本控制系统
ipfs在 Merkle DAG上面添加了Git版本控制功能,这使得ipfs文件拥有了时光机功能,可以轻松查看文件的变动历史,是不是很酷
7 自认证命名系统
ipfs使用了SFS自认证系统给文件命名,同时提供了ipns解决传播问题,而且还兼容了现有的域名系统。
这就是我们的ipfs,一颗冉冉升起的新星。
Filecoin协议
filecoin是一个分布式存储网络,她把云存储转换为算法市场。filecoin是运行在ipfs上面的一个激励层。filecoin可以存储几乎一切数据,运行分布式应用,实现智能合约系统。
Filecoin包含什么?
1 blockchain,区块链
跟其它区块链项目一样,这是filecoin的基础,一切都是围绕block和chain进行的。
2 交易市场
filecoin拥有两个交易市场,检索市场和存储市场,矿工和用户在这两市场里面达成交易,实现价值交换。
3 共识机制
有交易和区块链必然要有谁记账的问题,filecoin也一样,必然要解决的一个问题是,共识机制。在这里要表扬一下filecoin,filecoin抛弃了以往区块链的高度依赖计算资源和能源消耗形成的共识机制,filecoin重新利用有意义的工作来形成共识机制,这就是PFT(power fault tolerance),进化版的拜占庭容错机制,将矿工当前在网中使用的存储量和生成的时空证明转化为投票的权重,然后节点利用这个权重进行选举产生一个或者多个领导节点,领导节点创建新的block并把它们传播到网络。filecoin的block数据结构采用了DAG结构。
4 智能合约
filecoin采用了两个基本的api供用户使用,数据存储put,数据获取get,在这两种操作的基础上filecoin支持文件合约(File Contracts),让用户可以有更精细化的控制。filecoin集成了合约系统和桥系统,把filecoin的存储系统提供给其他区块链系统使用,同时可以让filecoin使用其它区块链的功能。
filecoin开发了桥(Bridge)工具,它可以链接不同的区块链,这就是为什么那么多的白皮书提到要和ipfs和区块链链接起来,因为filecoin天生就拥有这样的能力。
来源:知乎专栏IPFS指南