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/

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/zx/63194.html

上一篇 2023年08月18日
下一篇 2023年08月18日

相关推荐

  • 以太坊2024年3月14日,关键节点与未来展望

    以太坊2024年3月14日,关键节点与未来展望 2024年3月14日,对于以太坊生态系统而言,是一个值得被铭记的日子,这一天不仅标志着以太坊网络在技术演进、生态建设与市场认知等多个维度上迎来了新的里程碑,也为全球加密行业的发展方向提供了重要参考,从技术升级的持续推进,到L

    2026-10-26 04:10:01
    9 0
  • 以太坊Geth客户端最新版下载与安装指南,快速上手以太坊节点

    以太坊Geth客户端最新版下载与安装指南,快速上手以太坊节点 以太坊作为全球领先的智能合约平台,其去中心化特性离不开众多节点维护者的支持,Geth(Go-Ethereum)是以太坊官方维护的、使用Go语言编写的以太坊客户端,也是最流行、功能最全面的节点软件之一,运行Geth节点不仅

    2026-10-19 08:10:02
    36 0
  • 以太坊子币生态迎新机遇,6月28日关键节点与市场展望

    以太坊子币生态迎新机遇,6月28日关键节点与市场展望 随着区块链技术的不断演进和以太坊生态系统的持续繁荣,以太坊子币(也常被称为以太坊 Layer2 解决方案、ERC-20 代币或与以太坊强相关的生态代币)一直备受市场关注,这些子币依托以太坊的安全性和智能合约功能,通过扩容、

    2026-10-18 12:10:01
    29 0
  • 欧易做合约节点返佣,资深交易者的躺赚新选择

    欧易做合约节点返佣,资深交易者的躺赚新选择 在加密货币衍生品交易领域,欧易(OKX)凭借其深度流动性、多元合约产品及成熟生态,已成为全球交易者的首选平台之一,而近期,其“做合约开节点返佣”机制更以“低门槛+高分成”的优势,吸引了众多资深玩家和社区领袖的目光,成

    2026-10-14 04:10:02
    28 0
  • 阿帆谈以太坊行情分析,当前格局、关键节点与未来展望

    阿帆谈以太坊行情分析,当前格局、关键节点与未来展望 大家好,我是阿帆,在加密货币的浪潮中,以太坊(Ethereum)作为智能合约平台的龙头,其行情走势一直备受全球投资者和开发者的关注,我们就来深入探讨一下以太坊当前的行情,分析其背后的驱动因素,并对未来的可能走向进行

    2026-10-10 09:10:01
    22 0
  • 以太坊3月升级日程揭晓,关键节点与影响解析

    以太坊3月升级日程揭晓,关键节点与影响解析 加密货币社区对以太坊(Ethereum)的网络升级动态给予了高度关注,作为全球第二大加密货币和领先的智能合约平台,以太坊的每一次重要升级都可能对生态产生深远影响,备受瞩目的以太坊3月份升级具体定在几号?这次升级又有哪些关键

    2026-10-09 23:10:02
    18 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载