科普丨一文深入了解IPFS

摘要: “拥有IPFS之后 , 你就可以开始用一种特定的方式来看待其他所有事物 , 然后你就会意识到你可以把它们全部替换掉 。 ” ——IPFS创始人Juan Benet 鸵鸟区块链编译
哈鲁资本提供支持
来源:ConsenSys
01 简单了解IPFS
本节将试图为Christian Lundkvist博士以下的深入技术摘要提供高层次的见解 。
IPFS最初是由Juan Benet所提出 , 目的是试图建立一个能够快速移动的版本化科学数据系统 , 版本控制可以让您随时间变化跟踪软件状态(类似Git) 。 从那时起 , IPFS就被认为是分布式、永久性Web 。 “IPFS是一个分布式文件系统 , 旨在将所有计算设备与同一文件系统连接 。 在某些方面 , 类似于Web的原始地址 , 但实际上更类似于交换Git对象的单个bittorrent(比特流)群 。 IPFS未来可能会成为互联网的一个新的主要子系统 。 如果构建成功 , 它将可以补充或替换HTTP , 甚至能够替代更多 。 这听起来很疯狂 , 确实很疯狂 。 ”
【科普丨一文深入了解IPFS】IPFS的核心是一个版本化的文件系统 , 可以获取文件并对其进行管理 , 还可以将它们存储在某个地址 , 然后随着时间的推移跟踪版本 。 IPFS还考虑了这些文件如何在网络中移动 , 因此它也是一个分布式文件系统 。
IPFS对于数据和内容如何在网络上移动有着类似于bittorrent的规则 。 该文件系统层提供了非常有趣的属性 , 例如:
-完全分布的网站
-没有原始服务器的网站
-可以完全在客户端浏览器上运行的网站
-没有任何可与之对话的服务器网站
内容寻址
IPFS不是通过存储对象的服务器来引用对象(图片、文章、视频) , 而是通过文件上的哈希引用所有内容 。 这原理是 , 如果您要在浏览器中访问特定页面 , 则IPFS将询问整个网络“是否有人拥有与该哈希相对应的文件?” IPFS上的一个节点可以返回该文件 , 使您可以访问它 。
IPFS在HTTP层使用内容寻址 。 这是一种惯例 , 我们将创建内容本身的某种表示形式 , 而不是创建一个按位置定位事物的标识符 。 这意味着内容将决定地址 。 其机制是获取一个文件 , 然后以加密方式对其进行哈希处理 , 这样您就可以得到该文件的非常小而安全的表示形式 , 从而确保了某个人不能仅仅拿出具有相同哈希值的另一个文件并将其用作地址 。 IPFS中文件的地址通常以标识根对象的哈希开始 , 然后是一个向下移动的路径 。 您正在与一个特定的对象交谈 , 而不是与服务器对话 , 可查看该对象内的路径 。
HTTP vs IPFS 查找和检索文件
HTTP具有一个不错的属性 , 其中的标识符是位置 , 因此很容易找到托管该文件的计算机并与之对话 。 这很有用 , 通常效果很好 , 但在离线情况下或希望将整个网络上的负载降至最低的大型分布式方案中就无法使用了 。
在IPFS中 , 步骤可分为两部分:用内容寻址识别文件 , 去找到它——当您拥有哈希值时 , 您会询问所连接的网络“谁拥有此内容?(hash)” , 然后连接到相应的节点并下载 。 结果是点对点覆盖 , 可为您提供非常快速的路由 。
要了解更多信息 , 请观看Alpha Video 。
02 IPFS示例
技术检查和IPFS(星际文件系统)是经过测试的互联网技术的综合 , 例如DHTs , Git版本系统和Bittorrent 。 它创建了一个P2P群 , 可以交换IPFS对象 。 IPFS对象的总数形成了一个经过加密验证的数据结构 , 称为Merkle DAG , 该数据结构可用于对许多其他数据结构进行建模 。 我们将在本文中介绍IPFS对象和Merkle DAG , 并提供可以使用IPFS建模的结构示例 。
IPFS对象
IPFS本质上是一个用于检索和共享IPFS对象的P2P系统 。 IPFS对象是具有两个字段的数据结构:
数据——大小小于256 kb的非结构化二进制数据的斑点 。