IPFS是英文星际文件系统的缩写,它是一种开源的对等分布式超媒体协议,正试图成为所有计算设备标配的文件系统。这是一个复杂而且雄心勃勃的项目,对我们所知的互联网的未来发展和结构有着深远的影响。
为什么要使用IPFS,它是如何起步的?
互联网的当前迭代并不像人们最初理想化的那么去中心化,它建设于一些过时的协议之上,这些协议导致了无数的问题。IPFS试图解决的问题正是与当前互联网HTTP(超文本传输协议)相关的问题。
如果您不熟悉HTTP相对于Internet的功能,那么我们可以这么说,它基本上支持了整个Internet上的数据通信。
HTTP是在1991年发明的,1996年被Web浏览器采用,它确定了消息如何通过Internet传输,以及浏览器应如何响应命令和服务器处理请求的基础。
一言以概之,它是我们如何浏览Web以及客户端——服务器范例的协议主干的底层协议。
虽然HTTP已经为我们提供了我们今天所知的互联网,但它已经过时了,经过20多年的发展,现在的问题变得越来越明显。
现在使用HTTP所产生的主要问题是互联网流量大量增加以及由此产生的压力点被放大的结果。人们使用HTTP出现了诸如以下的问题:
每次从一台服务器下载文件所产生的内容传输效率低下;
昂贵的带宽成本和文件重复导致存储膨胀;
增加服务器和提供商的中心化,从而导致互联网审查;
存储在互联网上的信息的脆弱历史和网页的短寿命;
间歇性连接导致离线的发展中世界和连接速度缓慢。
清单上还有许多问题,20年前的技术在技术创新时代变得越来越过时已经不足为奇。IPFS提供了Internet所需的分布式存储和文件系统,以实现其真正的潜力。
在IPFS中,您不是从单个服务器下载文件,而是要求网络中的对等方为您提供文件路径,而不是来自中央服务器。
它可以实现高效分发高容量数据,历史版本控制,弹性网络以及通过加密哈希保护和经过验证内容的持久可用性,并通过对等网络分布式配置。所有这些听起来都非常有希望,但它是如何运作的?
IPFS如何工作?
IPFS与我们今天所知的万维网的概念类似,但它更像是在单个Git存储库中交换对象的单个BitTorrent swarm。
文件通过基于BitTorrent的协议分发。重要的是,IPFS可以被当作是Kodemila,BitTorrent和Git的组合,以创建Internet的分布式子系统。
该协议的设计提供了与Git一样的互联网历史版本。每个文件及其中的所有块都被赋予唯一标识符,该标识符就是加密哈希。
重复项在整个网络上被删除,并跟踪每个文件的版本历史记录,这确保了持久可用的内容,网页不会因服务器故障或Web主机破坏而消失。
此外,通过这种机制保证内容的真实性。当您在查找文件时,您实质上是要求网络查找一个节点,该节点存储的文件在与文件相关联的唯一标识哈希之后。
IPFS中节点之间的链接采用加密哈希的形式,这是因为它使用了默克尔有向无环图数据架构。
默克尔有向无环图数据架构作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点。默克尔有向无环图对IPFS的好处包括:
内容寻址:内容具有唯一标识符,该标识符是文件的加密哈希值.
无重复:具有相同内容的文件无法复制,只能存储一次。
防篡改:数据通过验证,因此,如果哈希发生变化,则IPFS将知道数据被篡改。
IPFS使用默克尔链接将文件结构相互链接,并且每个文件都可以使用名为IPNS的去中心化命名系统通过可读的名称找到。
在IPFS网络中,存储文件时,首先会将文件切片,切割成256KB大小的文件,之后循环调用(MerkleDAG.Add)方法构建文件MerkleDAG。
文件hash值创建流程:
1、将切片之后的文件进行sha-256运算;
2、将运算结果选取0~31位;
3、将选取结果根据base58编码,运算结果前追加Qm即为最后结果作为文件的46位hash值。根据IPFS底层代码计算。Merkle DAG为多叉树结构,最多为174叉树。
每个节点只存储它感兴趣的内容,并对信息进行索引,使其能够确定谁在存储什么。IPFS框架从根本上消除了中心化服务器向用户提供网站内容的需要。
最终,这个概念可能完全将HTTP协议推向无关紧要的位置,并允许用户在本地离线访问内容。
用户将搜索唯一的ID(加密哈希),而不是像在当前的互联网基础设施那样搜索服务器。这可以使数百万台计算机能够将文件传送给您,而不是仅仅一台服务器。
IPFS当前的主要应用使用的是Go语言,Python和Javascript的开发正在进行之中。它与Linux,MacOSX,Windows和FreeBSD兼容。
作为一个开源和社区驱动的项目,您可以通过遵循Github页面上的说明和文档来运行您自己的IPFS节点,以便为IPFS做出贡献。
IPFS用例和影响
IPFS已经有一些重要的用例,随着协议的不断发展,肯定会出现更多的用例。
为互联网提供新的分布式P2P架构会带来一些其复杂性,但人们将获得更多的好处,例如节省大量存储和带宽费用,与分布式区块链网络进行整合。
IPFS的分布式存储模型带来的明显好处体现在更高效的数据存储和不可变的永久性。将再也不会出现由于服务器故障或HTTP链接中断而产生的404错误消息。
此外,研究人员在效率方面将获得显著优势,特别是那些需要解析和分析非常大的数据集的人。随着现代科学中大数据的普及,IPFS提供的数据的快速性能和分布式存档将成为加速进步的关键。
IPFS在各行业的作用体现
档案人士:对世界的信息进行组织的需求是无止尽的,我们需要以一种世界可以记起的方式来存储信息。IPFS提供了去重复,高性能和群集的持久化。
服务供应商:如果你的公司向用户提供大量数据,一个点对点的方法将能使你节省数百万的带宽费用。IPFS可以提供安全的点对点内容传送。
研究人员:如果你处理和分析的是规模巨大的数据集,IPSF可提供快速性能和去中心化的存档。
发展中世界:高延时的网络是互联网进入发展中世界的真正障碍。IPFS提供了对数据的坚固访问,与主干网的可链接性无关。
区块链:PFS与区块链技术是完美的结合。你可以用IPFS处理大量数据,可以在区块链交易放置不可变的永久性的IPFS链接。时间戳可以保护您的数据,而无需将其实际存储在链上。
内容创造者:IPFS带来了WEB的自由和独立精神,而且费用很低。它可以在内容发送方面为您节省大量资金。
服务提供商和内容创建者还可以大大降低与向客户交付大量数据相关成本。此范例的当前迭代受到不断增加的带宽成本和数据提供商因对等协议付费的阻碍。
与通过互连网络的中心化基础设施交付内容相关的成本将会持续增加,从而导致一个效率非常低下的环境。此外,为了克服这些这些问题,可能还会出现进一步的中心化。
此外,服务器的中心会化会导致政府监控,增加DDoS攻击风险,互联网服务供应审审查和私人数据被私下销售。
IPFS的创建者Juan Benet表示“IPFS上的内容可以经过任何不受信任的中间人,而不用放弃对数据的控制或将其置于风险之中。”
最后,IPFS与区块链技术的整合看起来是一个完美的选择。在区块链交易中使用IPFS,您可以放置不可变的永久链接。
时间戳可以保护您的数据,而无需将其实际存储在链上,从而减少区块链膨胀,并为安全的链下解决方案提供了一种方便的方法来帮助区块链扩展。
IPFS已被包括在许多加密货币平台中,并且有可能通过提供对等和分布式文件系统架构来共同帮助行业扩展,这种架构是帮助支持加密货币平台发展的基础。
结 论
正如您所看到的,IPFS是一种技术上和概念上都很复杂的协议,它具有彻底改变互联网数据交换的必备条件。HTTP本身已取得了成功,并帮助互联网达到了今天的辉煌阶段,但新技术正在兴起,对改革和分布式基础设施的需求已经显现出来。