通过IPFS的关键组件,看构建Filecoin的基础是什么?

分布式存储
分布式存储 得得号

Apr 14, 2021 FILkefu与你不见不散,朋友圈尽知FIL

摘要: 这个市场是Filecoin的基础:一个基于IPFS构建的p2p存储市场。

The InterPlanetary File System,星际文件系统IPFS

IPFS试图通过一个新的p2p文件共享系统,来解决客户端-服务器模型和HTTP网络的不足。这个系统是几个新的和现有的创新的综合。

IPFS是由Protocol Labs创建的一个开源项目,Protocol Labs是网络协议的研发实验室,也是前Y Combinator初创公司。Protocol Labs还开发了IPFS的互补系统,例如IPLD和Filecoin。世界各地数百名开发人员为IPFS的开发做出了贡献,因此IPFS的编排一直是一项巨大的任务。

ugoTV1vwcgR4mN8MMDUUN4vt6p02-cbm31ck.jpeg

以下是主要组件:

1)分布式哈希表

哈希表是一种数据结构,它将信息存储为键/值对。在分布式哈希表(DHT)中,数据分布在计算机网络中,并进行有效的协调以实现节点之间的高效访问和查找。

DHT的主要优点是分散性、容错性和可扩展性。节点不需要集中协调,即使节点发生故障或离开网络,系统也能可靠地运行,而DHT可以扩展到容纳数百万个节点。这些特性结合在一起,形成了一个比客户端-服务器结构更具弹性的系统。

2)块交换

文件共享系统Bittorrent依靠一种创新的数据交换协议,能够成功地协调数百万个节点之间的数据传输,但它仅限于torrent生态系统。IPFS实现了这个协议的一个通用版本,称为BitSwap,它可以作为任何类型数据的市场。这个市场是Filecoin的基础:一个基于IPFS构建的p2p存储市场。

3)默克尔DAG

merkle-DAG是merkle树和有向无环图(DAG)的混合。Merkle树确保在p2p网络上交换的数据块是正确的、未损坏的和不变的。这种验证,是通过使用加密哈希函数组织数据块来完成的。这只是一个函数,它接受一个输入并计算与该输入相对应的唯一字母数字字符串(hash)。检查一个输入是否会产生一个给定的哈希很容易,但是从哈希中猜出输入却非常困难。

单个数据块称为“叶节点”,将其散列形成“非叶节点”。然后可以将这些非叶节点合并并进行哈希处理,直到所有数据块都可以用一个根哈希表示。下面是一个更简单的概念化方法:

0_aStXJqYfNcFgn-j1_.png

DAG是一种对没有周期的信息的拓扑序列进行建模的方法。DAG的一个简单例子是家谱。merkle DAG基本上是一种数据结构,其中哈希用于引用DAG中的数据块和对象。这创建了几个有用的特性:IPFS上的所有内容都可以唯一地标识,因为每个数据块都有一个唯一的哈希。另外,数据是防篡改的,因为更改它会更改哈希,如下所示:

0_AiVQ5qZOV2WcrHDJ_.png

IPFS的中心原则是在一个广义merkle-DAG上对所有数据进行建模。这个安全特性的重要性是不可低估的。

4)版本控制系统

merkle DAG结构的另一个强大特性是,它允许构建分布式版本控制系统(VCS)。最流行的例子是Github,它允许开发人员轻松地同时在项目上进行协作。Github上的文件可以使用merkle DAG进行存储和版本控制,它允许用户独立地复制和编辑文件的多个版本,存储这些版本,然后将编辑内容与原始文件合并。

IPFS对数据对象使用类似的模型:只要可以访问与原始数据相对应的对象以及任何新版本,就可以检索整个文件历史记录。假设数据块在网络上本地存储并且可以无限期缓存,这意味着IPFS对象可以永久存储。

此外,IPFS不依赖于对Internet协议的访问。数据可以分布在覆盖网络中,覆盖网络只是建立在另一个网络上的网络。这些特性是值得注意的,因为它们是抵制审查的网络的核心元素。它可以成为促进言论自由的一个有用工具,以对付世界各地普遍存在的互联网审查制度,但我们也应该认识到,不良行为者有可能滥用互联网。

5)自我认证文件系统

我们将介绍的IPFS的最后一个基本组件是,自认证文件系统(SFS)。它是一个分布式文件系统,不需要特殊的数据交换权限。这是“自我认证”的,因为提供给客户端的数据通过文件名(由服务器签名)进行身份验证。结果如何呢?您可以通过本地存储的透明性来安全地访问远程内容。

IPFS建立在这个概念的基础上,创建了行星际名称空间(IPNS)。它是一种自认证文件系统,使用公钥加密技术对网络用户发布的对象进行自我认证。前面提到,IPFS上的所有对象都可以唯一地标识,但这也扩展到了节点。网络上的每个节点都有一组公钥、私钥和节点ID,节点ID是其公钥的哈希。因此,节点可以使用其私钥对其发布的任何数据对象进行“签名”,并且可以使用发送方的公钥来验证此数据的真实性。

我们再来快速回顾一遍IPFS的关键组件:

通过分布式哈希表,节点可以存储和共享数据,而无需中心协调。IPNS允许交换的数据使用公钥加密进行即时预身份验证和验证。merkle DAG结构支持唯一标识、防篡改和永久存储数据。我们可以通过版本控制访问已编辑数据的过去版本系统。

 

作者:分布式存储;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 分布式存储 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信