基于内容寻址的分布式存储系统IPFS
出处:电子发烧友 发布于:2019-08-01 14:35:57
web使用基于位置的寻址来存储和检索文件。假设我们想从域名abc.com访问一张关于猫的图片cat.png。我们会先通过Web浏览器访问这个位置(如abc.com/cat.png),然后,我们将得到猫的图片。但是,如果由于某种原因,文件已经从abc服务器上删除,我们就无法再访问该图片。现在有一种可能性是,网上的其他人也有这只猫的照片,但是我们无法联系到他们,也无法获取这只猫的照片。互联网上的许多文件都可能具有相同的名称,但内容可能不同。
IPFS是一种用于文件存储的对等网络协议,采用的是基于内容的寻址,而非基于位置。这意味着要查找文件,我们不需要知道它在哪里(abc.com/cat.png),而是它包含的内容(QmSNssW5a9S3KVRCYMemjsTByrNNrtXFnxNYLfmDr9Vaan)——由内容的哈希进行表示。
哈希函数为每个文件创建的“指纹”。因此,如果我们想要检索一个文件,只需询问网络“谁拥有这个文件(QmSNssW5a9S3KV…)”,然后来自IPFS网络的某个拥有该文件的人将提供给我们。我们可以通过将请求的哈希值与接收到的哈希值进行比较来验证文件的完整性,如果哈希值匹配,则可知该文件没有被更改。这个哈希函数还可以帮助消除网络的重复,这样具有相同内容的文件就无需提交两次,因为相同的内容会产生相同的哈希。这优化了存储需求,也提高了网络的性能。
IPFS作为一种不可变的存储方式工作,一旦某个东西被添加到网络中,它就不能被更改,因为更改文件将更改哈希。那么我们如何更新文件呢?为此,IPFS使用了版本控制系统,该系统特别是在开源社区中被广泛使用,被称为Git。IPFS具有“提交对象”,这有助于跟踪文件创建以来的所有版本。每当我们在IPFS网络上添加一个文件时,都会为该文件创建一个提交对象,当我们更新该文件时,会创建一个新的提交对象,该对象指向该文件的旧提交对象。
基于内容寻址的分布式存储系统IPFS
我的文件永远存在于网络上吗?只有重要的文件保存在网络上,不重要的文件会被垃圾回收器删除,其中文件的重要性由“Pinning”决定。通过Pinning一个文件,我们将该文件标记为一个重要的文件,这样不重要的文件只会被作为临时缓存,而该文件将持续存在。
现在,我们需要讲讲IPFS的相关挑战。IPFS的问题之一是保持文件可用,IPFS具备持久性,但无法保证持续性。也就是说,如果Alice上传了一个文件,让Bob来访问该文件;当Alice离线时,在垃圾收集器没有删除它时,Bob才可能继续访问它。另一方面,如果Bob已经Pinning了该文件,那么即使Alice的节点离线了,它也仍然可以访问。因此,Pinning是一个主要问题。目前有许多的公共Pinning服务,获得持续性是要付出一定代价的。
另一个限制是文件的实际共享。你必须通过传统的通信机制(例如即时消息、电子邮件、Skype、Slack等)与网络上的其他人共享文件链接(内容地址)。这意味着文件共享没有内置到系统中。现在有人已经开发出了网络爬虫和搜索引擎,但真正解决这个问题可能还需要一段时间。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- TI - 电池储能系统需要克服的三大设计挑战2024/4/24 15:46:55
- ram与rom的主要区分2024/4/12 17:48:19
- 什么是储能电池2024/4/3 17:34:46
- 一文解析HBM技术原理及优势2024/3/29 17:53:22
- 什么是存储芯片?2024/3/26 17:55:30