HTTP弊端尽显,IPFS如何解决?

2020-08-03 16:30:38

IPFS从根本上改变了我们寻找事物的方式,这是它的关键功能。使用HTTP,您可以搜索位置。使用IPFS,您可以搜索内容。

  上文中,我们已经讨论了HTTP存在的问题,那么这一篇文章,小编将带着大家一起讨论IPFS以及它如何帮助改善Web。

  IPFS从根本上改变了我们寻找事物的方式,这是它的关键功能。使用HTTP,您可以搜索位置。使用IPFS,您可以搜索内容。


IPFS


  让我给你看一个例子。这是我运行的服务器上的文件:https://neocities.org/img/neocitieslogo.svg。您的浏览器首先找到服务器的位置(IP地址),然后使用路径名向我的服务器询问文件。通过这种设计,只有所有者(我)才能确定这是您要查找的文件,并且您被迫相信我不会通过移动文件或关闭服务器来更改文件。

  与其寻找一个中央控制的位置并询问它的/img/neocitieslogo.svg是什么,不如我们询问一个由数百万台计算机组成的分布式网络,而不是文件名,而是要求的内容,该怎么办?在文件中?

  IPFS正是这样做的。

  将neocitieslogo.svg添加到我的IPFS节点后,它将获得一个新名称:QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU。该名称实际上是一个加密哈希,它是根据该文件的内容计算得出的。密码学保证该哈希始终仅代表该文件的内容。如果我只更改该文件一点,哈希将完全不同。

  当我向IPFS分布式网络请求该哈希时,它会有效地(对于10,000,000个网络,为20跳)使用“ 分布式哈希表”找到具有数据的节点,检索该数据,并使用该哈希验证它是正确的数据。早期的DHT设计存在与Sybil攻击有关的问题,但是我们有解决这些问题的新方法,我非常有信心这是一个可以解决的问题(与HTTP的问题不同,HTTP的问题将永远被打破)。


  IPFS是通用的,几乎没有存储限制。它可以提供大小不一的文件。它会自动将较大的文件分解为较小的块,从而使IPFS节点不仅可以从一台服务器(如HTTP)下载(或流式传输)文件,而且还可以同时下载(或传输)数百个文件。IPFS网络成为细粒度,不信任,分布式,易于联合的内容交付网络(CDN)。这对于涉及数据的几乎所有事物都是有用的:图像,视频流,分布式数据库,整个操作系统,区块链,8英寸软盘的备份,对我们而言最重要的是静态网站

  IPFS文件也可以是特殊的IPFS目录对象,允许您使用人类可读的文件名(透明地链接到其他IPFS哈希值)。您可以默认加载目录的index.html,这与标准HTTP服务器相同。使用目录对象,IPFS允许您完全像今天一样创建静态网站。这是将您的网站添加到IPFS节点的单个命令:ipfs add -r yoursitedirectory。之后,可以从任何IPFS节点使用它,而无需链接到HTML中的任何哈希(example和带有index.html重命名的example)。


  使用IPFS联合数据

  IPFS不需要每个节点都存储曾经发布到IPFS的所有内容。相反,您可以选择要保留的数据。可以将其视为书签,除了将最终链接失败的站点添加为书签之外,您可以自己备份整个站点,并自愿帮助将内容提供给其他希望查看的站点。

  如果许多节点只托管一点,那么这些比特很快就增加了比任何集中式HTTP服务都无法提供的空间,带宽和可用性更多的空间。分布式Web将迅速成为地球上最快,最可用和最大的数据存储。而且没有人有能力通过全部关闭“刻录书籍”。亚历山大图书馆永远不会被烧毁。

  从其他IPFS节点复制,存储和帮助服务网站非常容易。它只需要一个命令和该站点的哈希值:ipfs pin add -r QmcKi2ae3uGb1kBg1yBpsuwoVqfmcByNdMiZ2pukxyLWD8。IPFS负责其余的工作。


  IPNS

  IPFS哈希表示不可变的数据,这意味着除非哈希不同,否则不能更改它们。这是一件好事,因为它鼓励数据持久性,但是我们仍然需要一种方法来查找代表您的站点的最新IPFS哈希。IPFS使用称为IPNS的特殊功能来实现此目的。

  IPNS允许您使用私钥来使用对公钥哈希(简称pubkeyhash)的IPFS哈希签名来表示对您网站的最新版本的引用。如果您以前使用过比特币,那么您会很熟悉-比特币地址也是pubkeyhash。通过我们的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,从理论上讲,Namecoin可以用于创建完全分散的分布式Web,而无需整个链中的中央权限。没有ICANN,没有中央服务器,没有政治,没有昂贵的证书“机构”,也没有瓶颈。听起来很疯狂。太疯狂了 但是,利用当今的技术完全有可能!


IPFS


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

  IPFS实施附带一个我一直在使用的HTTP网关,用于展示示例,允许当前的Web浏览器访问IPFS,直到这些浏览器直接实施IPFS(为时过早?我不在乎)。使用IPFS HTTP网关(和一些nginx鞋油),我们不必等待。我们很快就可以开始切换到IPFS来存储,分发和服务网站。


  我们现在如何使用IPFS

  目前,我们最初对IPFS的实施还处于试验性和适度阶段。当网站更新时,Neocity将每天发布一次IPFS哈希,可从每个网站配置文件进行访问。该哈希值将指向该网站的最新版本,并且可以通过我们的IPFS HTTP网关进行访问。由于IPFS哈希值会随着每次更新而变化,因此这也使我们能够提供所有站点的存档历史记录,这是我们自动从IPFS正常工作的方式中获得的。


  未来我们将如何使用IPNS

  从长远来看,如果一切顺利,我们希望使用IPFS来存储我们所有的站点,并为每个站点颁发IPNS密钥。这将使用户能够独立于我们向其网站发布内容。如果我们做对了,即使Neocities不再存在,我们的用户仍然可以更新其网站。我们有效地利用了用户对服务器的中央依赖,并将其粉碎成碎片,永久性地破坏了我们对集中式世界统治的计划。听起来很棒。太棒了!

  现在还很早,在IPFS取代HTTP 之前,还需要做很多工作,而无需将其描述为疯了。但是没有像现在这样的时间来计划未来。现在是我们开始工作的时候了。接受Internet存档的挑战:分发Web


最新推荐