从“分布式”角度看IPFS对区块链的重要性

从“分布式”角度看IPFS对区块链的重要性

作者丨李画编辑|熊吉区块链是一个分布式系统,但包括以太坊、EOS在内的诸多公链本身实现的都只是数据的分布式计算,而没有提供数据的分布式存储,这导致分布式的区块链系统无法真正彻底地做到分布式。IPFS(InterPlanetaryFileSystem,星际文件系统)协议解决的正是这样一个问题,它是分布式文件系统,可以实现数据的分布式存储。

本文将去繁从简,以数据的存取过程为线索,通过对IPFS最关键的三个系统技术的分析,看它是如何满足区块链数据的分布式存储需求的。01MerkleDAG当把文件存储到IPFS系统中时,文件并不是以一个完整的个体被存储,文件数据以平均分割法的方式被切分成若干个256KB大小的块。这些块在经过哈希运算后,也并不是存储在单个中心化的服务器上,而是分开存储在网络中的各个分布式的节点之中,没有节点拥有特权。

当从网络中获取文件时,先从可信的节点获得文件的MerkleTree树根哈希值。一旦获得了树根,就可以从其他不可信的节点获取MerkleTree的各个节点的哈希值。通过可信的树根来检查接收到的MerkleTree节点,如果MerkleTree某节点是损坏的或者虚假的,就从其他存储节点获得另一个MerkleTree节点,直到最终获得一个与可信树根匹配的MerkleTree。

DHT是分布式系统的关键技术,实现它的方法有很多种,IPFS采用的是基于S/Kademlia和Coral的算法。03BitSwap仅仅实现数据的分布式存储还远远不够,数据还需要在节点之前有效的交换,从而使得整个系统能够高效运转。IPFS协议受BitTorrent的启发,通过对等节点间交换数据块来分发数据。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180925A16DJB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券