全网文件系统:IPFS一种点对点超媒体协议

一、网站
  • https://ipfs.io/ 需要科学上网
  • https://filecoin.io/
二、白皮书
  • ipfs:https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf
  • filecoin:https://filecoin.io/filecoin.pdf
三、愿景

IPFS是分布式Web:一种点对点超媒体协议,使网络更快,更安全,更开放。

四、IPFS协议

为了实现全网的文件系统,定义了IPFS的协议,主要包括下面几点:

  • 节点唯一(即数据节点唯一身份)
    每个节点有唯一节点id,用私钥是节点的唯一身份,用公钥作为节点id的身份验证。

  • 网络
    保证节点之间的网络连通性,和文件传输可靠性。
    传输层支持任意协议,包括http,tcp,偏好对浏览器友好的WebRTC 、uTP协议,这样可以保证被不被封的可能性。

  • 路由
    路由系统可以让p2p网络中找到数据节点地址,并且可以获取到特点的数据内容。ipfs路由使用的是DHT:DistributedHashTables

  • BitSwap协议用于区块交换
    BitSwap协议是数据交换最重要的地方,也是经济模型的设计所在。在p2p网络中如何激励大家分享自己的数据?如果大家都只下载不上传的话那肯定很快就没有数据了
    BitSwap协议包含三部分:
    1、 BitSwap信用体系
    2、BitSwap 策略
    3、BitSwap 账本
    BitSwap信用体系发送给其他节点数据(即上传)则增加信用值、反之从其他节点接收数据(即下载)则降低信用值。
    根据上面的信用体系,采取的策略目标:
    1、 节点数据交换的性能和效率达到最优
    2、 阻止水蛭,即只下载不上次
    3、 可以有效防止攻击:比如女巫攻击
    4、 对信任节点建立宽松机制(be lenient to trusted peers)
    BitSwap账本则记录节点的所有数据交换。
    BitSwap协议使用两个了列表与其他节点进行数据交换:
    1、want_list 想要的数据块
    2、have_list 已经拥有的数据块

  • 对象存储
    IPFS存储数据采用的是 Merkle DAG结构,这样可以进行内容寻址、防篡改、去重等功能特点。简单来看大家能看到的文件结构如下,和unix/linux一样:

format 格式
/ipfs//
example 示例
/ipfs/XLYkgq61DYaQ8NhkcqyU7rLcnSa7dSHQ16x/foo.txt

  • 文件版本控制
    版本控制类似Git:
    1、块:可变大小的数据块。
    2、列表:块或其他列表的集合。
    3、树:块、列表或其他树的集合。
    4、提交:树的版本历史中的快照。
    用过git的同学都知道git可以轻松的查看文件的变动历史,看到每一个版本的文件内容,让你不用买后悔药就可以把文件回退到之前的版本。

  • IPNS:命名系统
    前面说了ipfs的文件格式是类似这样的:/ipfs/XLYkgq61DYaQ8NhkcqyU7rLcnSa7dSHQ16x,是一个hash值,当我们把文件重新上传后,该hash值会修改。想象下如果我们发了一篇博文,博文修改后hash会发生修改,那么读者看到还是之前的老版本,那怎么让读者看到最新的版本呢?IPNS就是来做这个事情的,通过节点ID对项目根目录的IPFS HASH进行绑定,前面也提到了节点ID是唯一的,这样保证了访问地址的唯一性和不可变性。

简单理解就是就是IPFS的域名系统,除了上面的绑定功能还包括 便于人可读的命名地址,比如:# Alice links to bob Bob
ipfs link //friends/bob /

四、经济模型(Filecoin)

很多人并不清楚ipfs和filecoin之间的关系,因为filecoin和ipfs有两个网站、两份白皮书,但是两份白皮书又相互引用,那么他们到底是什么关系呢?
简单来说,filecoin是运行在IPFS上面的激励层,也就是经济模型

IPFS是全网的文件系统,那么就又巨大的存储需求和需要大量的节点来支撑,我们都知道p2p网络节点越多下载越快(对比下迅雷、bt软件),但是如果没有激励,没有人愿意贡献节点贡献硬盘,filecoin就是定义token经济模型的,所以IPFS的token是FIL,filecoin的前三个字母

filecoin包括以下几部分
1、存储市场 Storage market
2、检索市场 Retrieval market
3、共识算法:PoRep、PoSt
4、智能合约
filecoin提供两个最基本的方法给最终用户:Get、Put,这两个方法让用户用合适的价格就可以进行数据存储和数据检索。filecoin用户可以编写合约定义存储和检索的服务费用。

  • File Contracts
  • Smart Contracts

5、集成其他系统
提供bridge工具(类似arcblock的adapter)可以连接到不同的区块链系统,比如以太,bitcoin等。

  • Filecoin in other platforms
  • Other platforms in Filecoin
    filecoin提供了双向的集成,filecoin可以提供给第三方系统使用,filecoin也可以连接到第三方系统,多么的周到。这也是为什么很多项目宣传存储用IPFS的原因之一把。

Token情况:

  • 总数:20亿枚
  • 成本:0.75美元/FIL
  • 70%留给minner,15%协议开发,10%思慕,5%基金会保留
四、总结

个人理解IPFS就是全网的文件系统。
用过电脑的人都知道电脑有硬盘,在操作系统上面能看到各种盘符、文件夹和文件。当然除了硬盘,电脑还有CPU,主板、内存、键盘等等。
如果把以太坊虚拟机EVM类比成为全网的CPU,那么IPFS就是全网的硬盘;EVM用solidity语言编程可以全网运行智能合约,利用全网的计算资源运行且不重复运行计算机指令(当然还有很多限制,比如不能调用外部接口、不能访问外部数据等);IPFS用分布式哈希表DHT技术可以存储非结构化的文件,好像全网就是一个大硬盘,文件在全网里面不会轻易丢失且有版本。

补充下:分布式账本就是一个分布式的数据库,可以类比成Oracle、MySQL等数据库,存储是结构化的数据。

你可能感兴趣的:(全网文件系统:IPFS一种点对点超媒体协议)