IPFS0.5改进内容路由处理不可连接节点

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

在之前的分享中,我们提到在IPFS0.5版本中,DHT有了较大的改进,并简要介绍了DHT在IPFS中的作用以及其在IPFS中的实现方式:Kademlia。

今天我们介绍Kademlia如何处理无法连接的对等节点。

在之前的文章中我们介绍到Kademlia的主要特性是所有的对等节点都可以由小到大被内联集成起来,这个特性非常重要。

举例来说,当对等节点0在寻找对等节点55的一路寻址过程中,它一边找会一边知道自己离目标越来越近。要做到这一点,系统中的每个节点都要能互相通信,告知对方自己的身份。

如果在这个过程中节点0找到节点33,并要节点33告知下一个节点时,节点33却告知节点0一个已经无法连接通信的节点,那节点0再走下去就是个死胡同了,这不仅会导致网速变慢,还会导致全网数据的碎片化(有些节点可以连接而另一些节点无法连接)。

在系统中,节点间无法连接通信听起来有些奇怪,但通常有两个因素会导致这个情况发生:一个是网络地址的翻译(NetworkAddressTranslation,简称NAT),另一个是防火墙。

比如在几个非对称网络中有节点X、Y、Z,他们相互之间能互通并与A也相联结,但A却无法联通X、Y、Z。同样,如果节点A和B有网络地址翻译方面的问题,它们也无法相互连接通信。

当IPFS网络在2019年增长了30倍后,我们碰到了一个很大的问题:突然间IPFS DHT表中的很多节点都出现了网络地址翻译的问题,这导致很多节点无法连接,从而使得整个系统的质量极大降低。

为了处理这个问题,我们现在采用的办法是如果有节点被怀疑无法连接,就直接忽略这个节点,并且也鼓励一些节点自己退出系统,如果它们自己怀疑自己可能无法被其它节点连接了。

为了做到这点,我们使用了libp2p的AutoNAT功能,它类似一个分布式STUN层,让节点告知系统中其它节点自己的网络地址以及自己是否可以被连接。

只有一个节点可以被连接它才从客户模式(clientmode,在客户模式中节点可以向DHT表格发送查询请求,但无法对查询请求作出回应)切换为服务器模式(servermode,在服务器模式中节点既可以向DHT表格发送查询请求,也可以对查询请求作出回应)。

同理,如果一个服务器发现自己无法被其它节点连接了,它就会从服务器模式切换回客户模式。

AutoNAT功能以前只在某些节点中被激活。但AutoNAT的功能使用得越来越多,它帮助了我们清理系统中无法连接的节点,这使得AutoNAT的使用越来越呈现分布式状况。

因此,我们现在在所有的IPFS节点中都提供了AutoNAT功能,不过这个AutoNAT功能有一定的限制。

注意:节点在客户模式和服务器模式之间的自动切换是默认的配置选项。但用户也可以将节点固定设置为客户模式。

不过如果不将该选项设置为"dht"(自动切换模式)或"dhtclient"(固定设置为客户模式)则可能极大降低系统的性能。因此对此选项的设置一定要小心。

基于AutoNAT的模式切换非常有用,我们希望尽量用它把系统中无法再连接的节点清除掉。

为了谨慎起见,一个节点必须要验证它是否可公开被连接,如果它被验证既支持客户模式也支持服务器模式则它就可以被加入到DHT表中作为节点。

参考链接:https://blog.ipfs.io/2020-07-20-dht-deep-dive/

本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/63194.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年08月18日
下一篇 2023年08月18日

相关推荐

  • 比特币超级节点有多少个,区块链节点有多少

    一、花两万块买了点比特币,虚拟货币的水到底有多深如果你还没懂区块链是什么,我用一句话简单的概括:区块链就是一个分布式数据库,要往这个数据库存储数据需要每个节点的确认,同时数据一旦存入这个数据库数据将无法修改。区块链其中涉及到的算法是非常复杂的,有兴趣的读者

    2024-12-23 04:30:01
    3 0
  • 如何运行比特币全节点,比特币是什么比特币最完整的介绍

    一、比特币是什么比特币最完整的介绍比特币最完整的介绍什么是比特币?比特币是骗人的吗?比特币你都不知道,你太out了,让我来好好给你上堂课,把比特币实际上是一种虚拟货币,但它是一个去中心化的货币系统,也就是说它不像其他货币或虚拟货币,有一个中央发行机构,比如美

    2024-12-17 15:00:01
    12 0
  • 怎么加入theta节点,UG怎么将sim里的组复制到fem里

    一、UG怎么将sim里的组复制到fem里高级仿真的功能。由高级仿真使用的文件。高级仿真入门使用高级仿真的基本工作流程。创建 FEM和仿真文件。用在仿真导航器中的文件。在高级仿真中有限元分析工作的流程。 1.1综述 UG NX4高级仿真是一个综合性的有限元建模和结果可视化的产品,

    2024-12-16 12:30:02
    14 0
  • 如何加钱包节点,区块链钱包如何创建

    一、区块链钱包如何创建Metamask手机端:手把手教你注册以太坊钱包第一步:前面几个安全提示,向下滚动到最底部表示全部阅读,一步一步点击“接受”就行了2.下面是创建一个8位数的密码,每次打开MetaMask可能都需要,如果忘记了密码,可以用助记词找回钱包3.接下来是显示的助

    2024-12-13 21:30:02
    19 0
  • 比特币全世界有多少节点,比特币有多少区块链

    一、比特币一共有多少个2100万个比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。比特币不是无限量发行的,与大多数的货币不相同。

    2024-12-10 13:30:01
    21 0
  • 手机怎么添加网络节点,苹果手机的网络节点在哪里设置

    一、苹果手机怎么切换网络到国外节点操作手机:苹果4操作系统:iOS16.3手机网络节点换国外的步骤如下:1、首先,我们打开手机,接着,我们点击打开设置。2、接下来,我们点击打开其他无线连接。3、接下来,我们点击打开私人DNS。4、接下来,我们点击打开指定私人DNS。5、最后

    2024-12-08 08:00:01
    18 0

发表回复

8206
验证码

评论列表(0条)

    暂无评论

ok交易所
已有100万用户加入ok交易所

立即下载