美文网首页区块链技术与金融区块链研习社区块链&范式革命
全网文件系统:IPFS一种点对点超媒体协议

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

作者: jerry的技术与思维 | 来源:发表于2018-03-19 14:24 被阅读154次
    一、网站
    二、白皮书
    三、愿景

    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/<hash-of-object>/<name-path-to-object>
    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 /<alice-pk-hash>/friends/bob /<bob-pk-hash>

    四、经济模型(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一种点对点超媒体协议

        本文链接:https://www.haomeiwen.com/subject/hjdjqftx.html