http://www.xiaoyenzi.com

HTTP已过时。现在是分布式永久网络的时候了

今年早些时候,互联网档案馆发出了对分布式网络的呼吁。我们听得清清楚楚。
今天我正在宣布开始我们漫长的网络未来之旅。一种更快,更安全,更强大,更永久的网络。
Neocities与Protocol Labs合作,成为第一个在生产中实施IPFS的主要网站。从今天开始,所有Neocities网站都可供世界上任何IPFS节点查看,存档和托管。当另一个IPFS节点选择从Neocities托管站点时,即使Neocities关闭或停止托管,该站点的版本仍将继续可用。越多IPFS节点为Neocities站点提供种子,Neocities站点的可用(和冗余)越多。而且这些网站对我们的依赖程度越小,以便继续存在。
什么是IPFS?从他们的自述文件:
IPFS是一种分布式文件系统,旨在将所有计算设备与相同的文件系统连接起来。在某些方面,这类似于Web的原始目标,但IPFS实际上更类似于交换git对象的单个bittorrent swarm。IPFS可以成为互联网的一个新的主要子系统。如果构建正确,它可以补充或替换HTTP。它可以补充或替代更多。听起来很疯狂。这太疯狂了。
IPFS仍然处于开发的alpha阶段,所以我们现在称之为实验。它还没有取代我们现有的网站存储。与任何复杂的新技术一样,需要做出很多改进。但IPFS不是蒸发器,它现在可以使用。您可以在自己的计算机上进行试用,并且已经可以使用它来帮助我们服务并保留Neocities网站。
我想发送的消息可能不是更大胆:我坚信IPFS  HTTP(以及许多其他东西)的替代品,现在是时候开始尝试了。取代HTTP听起来很疯狂。太疯狂了!但HTTP被打破了,我们可能做的最疯狂的事情就是继续永远使用它。我们需要将最先进的计算机科学应用于分发问题,并为Web设计更好的协议。

第1部分:HTTP出了什么问题?

超文本传输​​协议(HTTP)将整个世界统一为一个全球信息协议,标准化我们如何向彼此分发和呈现信息。
对我来说,想想没有它的生活会是什么样子,这是不可思议的。HTTP将发布内容的成本降低到几乎为零,这是一项创新,它将大锤用于自上而下的经济,政治和文化控制,分配信息(音乐,创意,视频,新闻,游戏,一切)。由于液化信息并使其更加平等和易于发布,HTTP几乎使我们的文化更好。
我喜欢HTTP,我一直都会喜欢。它确实是有史以来最伟大,最重要的发明之一。
虽然HTTP已经取得了很多成就,但它作为人类知识总和的分布和持久性的基础的有用性不仅仅是显示出一些裂缝,而是在我们面前摇摇欲坠。HTTP分发内容的方式存在根本缺陷,并且没有任何性能调整或强制破坏 CA SSL或其他任何问题。HTTP / 2是一个值得欢迎的改进,但对于一种开始显示其年龄的技术来说,它是一种保守的更新。为了拥有更好的Web未来,我们需要的不仅仅是一个加速的HTTP版本,我们还需要一个新的基础。根据网络空间的治理模式,这意味着我们需要一个新的协议。IPFS,我非常希望,成为新的协议。

HTTP很脆弱


这是世界上第一个HTTP Web服务器的图片。这是CERN的Tim Berners-Lee的NeXT电脑。
贴在机器上的是一个不祥的贴纸:这台机器是服务器,不要关机!” 
它无法断电的原因是其他服务器上的网站开始链接到它。一旦它们与它相关联,它们就依赖于该机器继续存在。如果机器断电,则链路停止工作。如果机器出现故障或者在同一位置无法再访问,则会发生更糟糕的事情:站点之间的链条会永久损坏,访问该内容的能力将永远丢失。该贴纸完美突出了HTTP的最大问题:它被侵蚀。
蒂姆的NeXT立方体现在是博物馆的一部分。数百万未来死网服务器中的第一个。
你看到了结果:
即使您从未阅读过HTTP规范,您也可能知道404的含义。这是HTTP使用的错误代码,表示该站点不再位于该位置的服务器上。通常你甚至都不幸运。更常见的是,甚至没有服务器告诉你,你正在寻找的内容已经消失,而且无法帮助你找到它。除非Internet Archive支持它,否则你永远不会再找到它。它永远失去了。
网页越旧,您就越有可能看到404页面。他们是垂死网络的冷酷数字墓碑,不知道曾经居住过的知识,美丽或愚蠢的愚蠢行为。


我最喜欢90年代网站上的一个网站是Mosh到Yanni,今天查看网站提供了一个非常有力的例子,说明HTTP对于维护站点之间的链接是多么不合适。存储在网站上的所有静态内容仍然会加载,而我的现代浏览器仍会呈现页面(HTML与HTTP不同,具有出色的持久力)。但是,异地或动态提供内容的任何链接都已死亡。对于像这样的每个奇怪的例子,有无数的非常有用的内容的例子,早已消失。无论是侵蚀内容是有问题的废话还是永恒有用,它仍然是我们的历史,我们正在迅速失去它。
发生这种情况的原因很简单:集中管理的Web服务器不可避免地会关闭。域名更改所有权,或者运行它的公司破产。或者计算机崩溃,没有备份来恢复内容。让每个人都运行自己的个人HTTP服务器并不能解决这个问题。如果有的话,它可能会使情况变得更糟。


HTTP鼓励超中心化

这种数据侵蚀的结果进一步依赖于更大,更有组织的集中服务。由于冗余备份,它们的短期可用性(通常)很好。但这仍然无法解决长期可用性问题,并会产生一系列新问题。
自约翰佩里巴洛的“网络空间独立宣言”以来,我们已经走过了漫长的道路。随着我们的电子国家变得更有影响力并以更多信息促进世界,政府和企业都开始撬开HTTP的缺陷,利用它们来监视我们,使我们货币化,并阻止我们访问任何对他们构成威胁的内容,合法的或其他的。


我们原本打算使用的网络是分散的,但是我们今天拥有的网络很快就变得集中化,因为数十亿用户变得依赖于少数几项服务。
无论您认为这是否是合法的权衡,这都不是HTTP的用途。像NSA(以及我们未来的机器人霸主)这样的组织现在只需要在几个来源拦截我们的通信来监视我们。通过阻止站点访问这些高度集中的资源的能力,政府可以轻松审查其边界内容。它还使我们的通信面临被DDoS攻击中断的风险。
分发网络会使少数强大的组织缺乏可塑性,从而提高我们的自由和独立性。它还降低了“一次性关闭”的风险,这种关闭需要大量的数据。

HTTP效率低下

截至撰写本文时,江南Style现有超过2,344,327,696次观看。来吧,再看一遍。我会等你的。
让我们做一些假设。视频时钟为117兆字节。这意味着(最多)274,286,340,432兆字节,或仅发布视频文件的274.3 PB数据。如果我们假设每千兆字节的总费用为1美分(这将包括带宽和所有服务器成本),到目前为止,已经花费了2,742,860美元来分发这个文件。
这不是太糟糕......如果你是谷歌。但是,如果你是一个较小的网站,那么提供这么多数据的成本将是天文数字,特别是当小型播放器的带宽率大约为每千字节0.12美元,而在亚洲则高达0.20美元时。我在Neocities的大部分工作中花费了大量的带宽来确保我们能够以低成本继续运行我们的基础设施。
HTTP降低了发布的价格,但它仍然需要花钱,这些成本确实可以加起来。如果不在规模经济中进行,则从中央数据中心分发这么多数据可能非常昂贵。
如果我们可以将ISP网络上的每台计算机变成流式CDN,而不是总是从数据中心提供这些内容,那该怎么办?通过像江南风格一样受欢迎的视频,它甚至可以从ISP的网络中完全下载,不需要通过互联网骨干网进行大量跳跃。这是IPFS能够改进的众多事情之一(我们将稍微讨论一下)。

HTTP在Internet骨干网上造成过度依赖

当内容高度集中时,它使我们高度依赖于数据中心功能的互联网骨干。除了使政府能够轻松阻止和审查内容外,还存在可靠性问题。即使有冗余,主要骨干有时也会受到损坏,或者路由表变得混乱,后果可能非常严重。
几个月前,当一辆汽车撞上我们在加拿大使用的光纤上行链路(没有嫌疑人,但有一些有希望的线索)后,Neocities放慢了速度,我得到了一种奇怪的味道。我还听说过猎人们在连接俄勒冈州东部数据中心(存储大量数据的巨大数据)的光缆上发现的故事,要求工程师出现在越野滑雪板上的雪地摩托车修理光纤线路。自从我写这篇文章以来,关于对湾区发生的光纤线路的复杂攻击已经出现了细节。关键是,互联网骨干网并不完美,它很容易攻击它,服务很容易受到一些重要纤维线路的影响。

第2部分:IPFS如何解决这些问题

我们已经讨论了HTTP的问题(以及超中心化的问题)。现在让我们谈谈IPFS如何以及如何帮助改进网络。
IPFS从根本上改变了我们寻找事物的方式,这是它的关键特征。使用HTTP,您可以搜索位置。使用IPFS,您可以搜索内容
让我举个例子。这是我运行的服务器上的文件:https://neocities.org/img/neocitieslogo.svg。您的浏览器首先找到服务器的位置(IP地址),然后使用路径名向我的服务器请求该文件。使用该设计,只有所有者(我)可以确定这是您正在查找的文件,并且您不得不相信我不会通过移动文件或关闭服务器来更改它。
如果我们要求数百万台计算机的分布式网络不是为了文件的名称,而是为了所谓的内容,而不是寻找一个集中控制的位置,并询问它的想法/img/neocitieslogo.svg是什么?在文件中?
这正是IPFS所做的。
当neocitieslogo.svg添加到我的IPFS节点时,它会获得一个新名称:QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU。该名称实际上是加密哈希,它是根据该文件的内容计算出来的。密码学保证该哈希始终只表示该文件的内容。如果我将该文件更改为一位,则哈希将变为完全不同的东西。
当我向IPFS分布式网络请求该哈希时,它有效地(对于10,000,000的网络,20跳)找到具有使用分布式哈希表的数据的节点,检索它,并使用哈希验证它是正确的数据。早期的DHT设计存在Sybil攻击的问题,但我们有新的方法来解决它们,我非常有信心这是一个可解决的问题(不像HTTP的问题,它们将永远被打破)。
IPFS是通用的,几乎没有存储限制。它可以提供大或小的文件。它会自动将较大的文件拆分为较小的块,从而允许IPFS节点从一个服务器(如HTTP)下载(或流)文件,但同时下载数百个文件。IPFS网络成为一个细粒度,无信任,分布式,易于联合的内容交付网络(CDN)。这对涉及数据的几乎所有内容都很有用:图像,视频流,分布式数据库,整个操作系统,区块链,8英寸软盘的备份,以及对我们来说最重要的静态网站
IPFS文件也可以是特殊的IPFS目录对象,它允许您使用人类可读的文件名(透明地链接到其他IPFS哈希)。您可以默认加载目录的index.html,与标准HTTP服务器的方式相同。使用目录对象,IPFS允许您创建静态网站,就像今天制作静态网站一样。将您的网站添加到IPFS节点是一个单一的命令:ipfs add -r yoursitedirectory。之后,它可以从任何IPFS节点获得,而无需您链接到HTML中的任何哈希值(例如,重命名了index.html的示例)。

使用IPFS联合数据

IPFS不要求每个节点都存储已发布到IPFS的所有内容。相反,您可以选择要帮助保留的数据。可以把它想象成书签,除了将链接添加到最终会失败的网站的书签,你自己备份整个网站,并自愿帮助向想要查看它的其他人提供内容。
如果许多节点主机占用一点点,那么这些小位很快就会比任何集中式HTTP服务提供更多的空间,带宽和可用性。分布式网络将迅速成为地球上最快,最可用,最大的数据存储。没有人能够通过全力以赴来“烧书”。这个亚历山大图书馆永远不会被烧毁。
从其他IPFS节点复制,存储和帮助提供网站很容易。它只需要一个命令和站点的哈希:ipfs pin add -r QmcKi2ae3uGb1kBg1yBpsuwoVqfmcByNdMiZ2pukxyLWD8。IPFS负责其余部分。

强脉冲中子源

IPFS哈希表示不可变数据,这意味着如果哈希不同,它们就无法更改。这是一件好事,因为它鼓励数据持久性,但我们仍然需要一种方法来查找代表您站点的最新IPFS哈希。IPFS使用名为IPNS的特殊功能实现此目的。
IPNS允许您使用私钥来使用公钥哈希(简称pubkeyhash)对表示站点最新版本的IPFS哈希的引用进行签名。如果您之前使用过比特币,那么您对此很熟悉 - 比特币地址也是一个耻辱。通过我们的Neocities IPFS节点,我签署了Penelope(我们的站点吉祥物)的图像,您可以使用我们针对该节点的IPNS pubkeyhash加载它:QmTodvhq9CUS9hH8rirt4YmihxJKZ5tYez8PtDmpWrVMKP。
IPNS尚未完成,因此如果该链接不起作用,请不要担心。只要知道我将能够改变pubkeyhash指向的内容,但pubkeyhash将始终保持不变。完成后,它将解决站点更新问题。
现在我们只需要让这些网站的位置变得人性化,我们就拥有了我们需要的所有部分。

人类可读的可变寻址

IPFS / IPNS哈希值很大,丑陋的字符串不容易记忆。因此,IPFS允许您使用现有的域名系统(DNS)来提供人类可读的IPFS / IPNS内容链接。它通过允许您将哈希插入名称服务器上的TXT记录来实现此目的(如果您有一个方便的命令行,请运行此命令:) dig TXT ipfs.git.sexy。您可以访问http://ipfs.io/ipns/ipfs.git.sexy/查看此操作。
展望未来,IPFS计划也支持Namecoin,理论上可以用它来创建一个完全分散的分布式网络,对整个链中的中央权威没有任何要求。没有ICANN,没有中央服务器,没有政治,没有昂贵的证书“权威”,也没有阻塞点。听起来很疯狂。这太疯狂了。然而,今天的技术完全可以实现!

IPFS HTTP网关:旧网络和新网络之间的桥梁

IPFS实现附带了一个我一直用来显示示例的HTTP网关,允许当前的Web浏览器访问IPFS,直到浏览器直接实现IPFS(太早了?我不在乎)。使用IPFS HTTP网关(以及一点点nginx鞋油),我们不必等待。我们很快就可以开始切换到IPFS来存储,分发和提供网站。

我们现在如何使用IPFS

我们最初实施的IPFS目前是实验性的和适度的。当网站更新时,Neocities将每天发布一次IPFS哈希值,可从每个站点配置文件访问。此哈希将指向该站点的最新版本,并可通过我们的IPFS HTTP网关访问。因为每次更新都会更改IPFS哈希值,这也使我们能够为所有站点提供存档历史记录,这是我们自动从IPFS工作方式获得的。

我们将来如何使用IPNS

长期来看,如果事情进展顺利,我们希望使用IPFS存储我们所有的站点,并为每个站点发布IPNS密钥。这将使用户能够独立于我们将内容发布到他们的网站。如果我们做得对,即使Neocities不再存在,我们的用户仍然可以更新他们的网站。我们有效地将用户的中心依赖于我们的服务器并将其粉碎成碎片,永久地破坏了我们对集中世界统治的计划。听起来很棒。太棒了!
现在还为时尚早,在IPFS取代HTTP 之前还有很多工作要做,而不需要将这个想法描述为疯狂。但是现在没有时间来规划未来。现在是我们上班的时候了。接受Internet Archive的挑战:分发网络

作者:
kyledrake

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。