IPFS,新的弹性网站

2019-04-19 12:00:42

1.png


  当我们分析在详细的Web内容交付目前是如何工作的,我们实现这些服务的架构往往是低效,不安全。在我们几个的  会谈  ,我们分析了不同的威胁和保护机制,但今天,我们谈论的一些问题和需求,我们可以找到有关:


  •提供高可用性:我们如何设法为用户提供高可用性的Web内容?为了解决这个问题,我们制定了复杂的技术架构,甚至可以在通信提供商层面达到路由协议。尽管如此,由于未涵盖应用程序或Web服务器配置中的故障情况,因此无法实现最终目标。


  •在用户数量增长越来越多的用户和他们的访问有从多个设备越来越多地将数据量由被交付更大。我们再次提到了提供内容的过程中的效率。


  •流量增长随着用户数量的增长,流量也会增加。将此添加到新的Web技术和用户需要的需求中,有必要将越来越重的文件上传到Web。


  •网络攻击和未经授权的修改(毁损)一个Web应用程序级别,如果Web服务器被攻击,例如,所有的内容被删除时,用户不会看到的内容,直到管理员不从备份中恢复数据备份,同时解决了应用程序的漏洞。然后,我们可以提出另外一个问题,我们怎么知道该文件(网页),这是我们正在一个请求是原来的?如果有人在上传到服务器后将恶意代码放入该文件中会怎样?


  •互联网上的隐私和审查当前导航协议(HTTP)的设计使得Web内容的传输得以集中。正如我们所提到的,内容总是从服务器或中心点传递。显然,如果有人想控制内容和交付谁,使用集中设计将更容易控制内容。但是,我们将进入一个言论自由和其他后果的主题,这不是本文的范围,尽管存在密切的关系。与这些问题相关的解决方案通常昂贵,复杂,最重要的是需要投资这些控制的操作及其维护:


      完整的网络架构冗余,包括防火墙,服务器,安全控制。

      运营商级别的冗余。

      Web服务器文件系统中的完整性控制。

      流量控制,用于识别和阻止对Web应用程序的攻击。

      安全监控

      复制系统。

      流量优化系统。

      优化和安全的软件开发。


  为了优化流量和交付,我们可能会认为,如果我们与用户足够接近,交付速度会更快。这是事实,但困难的是要同时接近所有用户。因此,我们可以看到的下一个选项是分发我们的Web应用程序并将其复制到Internet上的不同服务器中。这将使我们的用户拥有更接近其逻辑位置的服务器,这使得访问速度也成为要解决的主题之一。

  在深入研究多一点,HTTP是一个已经存在自1991年以来这不可避免地导致我们认为,25年后,将考虑改变的好时机的协议。HTTP协议使得当前的Internet具有主要的集中式结构,虽然我们也发现了分散的用途,但是如果我们考虑改变这个协议,我们可以发展的结构将倾向于寻找分布式结构,如图中所示:



2.jpg

  一个是越来越多越来越多的颠覆性技术,是Blockchain,特别复仇分布式应用程序(FAD)的概念应运而生。此应用程序实际上更多地分布在其后端在它的前面。也就是说,给了我们一个FAD的好处是,我们可以把找到的所有逻辑程序blockchain称为智能合同,并且数据也是在blockchain。因此,用简单的HTML和JavaScript代码,可以对智能电话的合同,是那么FAD无论身在何处 ,你住这HTML也不如果它被改变,因为在调用做出的程度智能合同,将数据添加到的唯一途径blockchain或更改合同的状态。然而,它不是解决了如何问题 ,我们销售我们为不同的服务器应用程序。因为这看起来像的,可以帮助我们解决前面提到的问题的方法之一。在这些需求中,区块链 取得了进展(特别是用Merkle树)和Git等协议来维护版本控制,IPFS诞生了。我们评论审查这篇文章  ,其中详细介绍了区块链的所有操作,以及您将在哪里找到有关Merkle树的更多信息。


  IPFS(星际文件系统) 是一个超媒体协议P2P(对等)。它类似于HTTP但与其他系统,诸如BitTorrent的,Kodemila,GIT中和梅克尔树结构中一个DAG(的组合向无环图中IOTA使用)。通过这种方式,您可以创建Internet的分布式子系统。


  IPFS如何运作?

  IPFS最初是由协议实验室开发的目前网上很多程序员在这个项目使用的表的合作开发开源的协议。散列分布(分布式哈希表 - DTH)。在该结构中,它以键/值对的形式存储信息。DTH分布在整个网络中,以便节点可以有效地搜索和访问信息。


  DTH提供的主要优势是:

      权力下放。

      容错。

      可扩展性。


  节点不需要集中协调,即使某个节点出现故障或离开网络,系统也能可靠地工作。这些组件为该网络提供了集中式客户端 - 服务器结构的弹性。


  IPFS的另一个组成部分是块的交换,这是通过基于流行的BitTorrent文件交换系统的协议完成的。该协议称为BitSwap,它作为所有类型数据的市场。目前,Filecoin是使用IPFS构建的p2p类型存储市场的实现示例。


  Merkle DAG(另一种成分)是DAG和Merkle树的混合物。这种结构确保在p2p网络中交换的所有块都是正确的,没有损坏或已经被改变。通过使用加密散列函数组织数据块来完成该验证。


  除此之外,IPFS使用自我认证的文件系统(自我认证文件系统 - SFS)。SFS是一个文件系统,不需要特殊权限来共享数据。它是自我认证的,因为发送到客户端的数据直接由文件名验证,文件名也由服务器签名。


  这将创建行星间名称空间(IPNS)。IPNS是具有公钥结构(PKI)的SFS,用于证明网络中所有用户的对象。因此,网络中的每个对象都具有唯一的标识符,该标识符对于节点是相同的。每个节点都有一对公钥和私钥,以及一个标识符,它是公钥的哈希值。节点使用其私钥对在网络上发布的每个数据进行签名,客户端可以使用发送节点的公钥验证其真实性和完整性。


  IPFS是一种新的www协议,我们可以开始使用它来安全地传送我们的Web内容,并实现对各种网络威胁的恢复能力。


最新推荐