至联云讲解《IPFS之通向新的DHT》

余生颓废 提交于 2020-08-07 09:56:02

在4月末,IPFS/Filecoin团队发布了最新版的IPFS 0.5.0,这个新版本在IPFS性能和可靠性上有了极大的提高,尤其在内容发掘和路由方面。

而这些性能之所以能有如此显著的提高,主要原因是IPFS/Filecoin团队对分布式哈希表(DHT)进行了较大的改进,而分布式哈希表正是IPFS网络中处理内容发掘的根本。

在这篇文章中,我们将和大家分享IPFS/Filecoin团队是如何重新改写DHT的细节,包括团队是如何发现其中的问题、如何对解决这些问题以及如何确保研发的方案实际可行。

团队在这个过程中所取得的成果:不仅包括对系统性能的提升,还包括研发出的新产品Testground------一个可用于大规模网络测试的工具。

我们先来回顾一下什么是DHT,分布式哈希表。这个哈希表就像IPFS的目录和引导系统,帮助网络定位和搜索数据。

通常这样一个哈希表由一对对“键”-“值”组成,其中的“键”是某数据的内容标识符(CID),“值”是IPFS网路中存储这些数据的节点。

DHT表在系统中多处节点都存储着这些“键”-“值”。DHT在IPFS系统中具体的实现方案是Kademlia,Kademlia负责定位这些“键”所对应的数据存储在哪些节点上。

理论上讲,DHT应该以高效,统一的方式定位并获取用户所需的数据。但在一个急速扩张的IPFS网络中,实际情况往往比理论上复杂得多。

IPFS网络的规模在去年经历了显著的增长,增长倍数达30倍,系统已经有了数十万节点。

很多新的去中心化应用和软件都部署在了IPFS系统中,这使得业界越来越希望IPFS网络能具备产品级的可靠性和高性能。

很多应用将IPFS用作去中心化的内容分发网络(CDN)在全网分享和搜索内容。但不幸的是,很多新加入的节点却无法有效地分发内容,这使得IPFS系统无法满足某些用户的需求。

早在2019年年初,IPFS/Filecoin团队就听到有用户反映这方面的问题,而这些问题随着新节点的不断加入而变得越来越突出。

尽管团队一直在发布这方面的解决方案,但却无法准确了解这些解决方案是否真的有效。

为了改善这个状况,IPFS/Filecoin团队进行了详细的调查和研究,并确定了要进行的一系列事项和这些事项的优先级,还规划了团队需要的工具以便实施这些方案。

经过调查,团队发现是DHT的现行实现方式导致了效率的低下。其后,团队更深入研究发现下面这些领域存在一些问题。

节点可用性:当越来越多的节点加入IPFS网络后,现行的系统是用平等、统一的方式对待这些新加入的节点。但实际上很多这些新加入的节点在网络中是很难被连接的,无法像一些在系统中存在了很久的节点那样进行通畅的通信,而原因是它们被防火墙屏蔽了。

查询终止:DHT会向系统中的节点不断发出查询请求,当节点接收到DHT发出的查询请求后,DHT仍然会持续发出这些查询请求,实际上这并不必要。这浪费了大量的时间。

对路由表的维护:由于系统中存在一些有可能根本无法连接的节点,它们会影响DHT的路由性能,导致系统对内容的搜索时间变长、效率降低。

经过这样的分析,团队就有了清晰的思路----改进DHT的实现方式,改进路由方式,并开发一个新的测试平台:Testground。

接着团队开发出了Testground平台,并借助这个工具测试各种方案和改进措施(包括对DHT的各种改进)。

这就是IPFS/Filecoin团队改进DHT和推出Testground的过程。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!