IPFS0.5改进内容路由:更智能的路由表

OKX欧易app

OKX欧易app

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

APP下载   官网注册

IPFS的DHT表有两种:公共(Public)和本地(Local)。

当很多用户使用公开共享的DHT表去发现和广播内容时,它们中有一些是在被分割的网络中运作(比如在本地网络或孤立的VPN)的。

对这些用户而言,如果DHL表中的非公开节点只是客户模式就会很麻烦,因为这些节点无法被连接,用户无法与它们通信。

在这种情况下,我们设计了另一种DHT表,这种DHT表包括了一些不在公开网络(比如VPN、CJDNS、Yggdrasil)中的节点。

我们将这种DHT表称为LAN DHT,而将公开网络的DHT表称为WAN DHT。这两种DHT表使用不同命名的DHT协议(比如WAN DHT为/ipfs/kad/1.0.0,LAN DHT为/ipfs/lan/kad/1.0.0)以防止两种网络混在一起。

但如果用户不恰当地配置了他们的网络,则他们使用的非公开网络有可能混为一团。

WAN DHT和LAN DHT在实现细节上的不同主要表现在DHT表对对等节点接受标准的不同,即什么节点能被纳入路由表中,什么不能。WAN DHT的标准是“节点看上去是在公开网络中”,而LAN DHT的标准是“节点看上去不在公开网络中”。

WAN DHT表中的节点可以根据它们的工作状况从客户模式切换为服务器模式,但LAN DHT中的节点则永远只能是服务器模式(除非“dhtclient”选项被设置)。

路由表:

早前我们分享过:Kademlia网络中的每个对等节点都维系着与网络中其它若干节点的连接。它们的工作方式如下:

1.当我们连接一个对等节点时,要检查这个节点是否符合条件被加入到我们的路由表中。

- 保证对等节点处于服务器模式,并且广播DHT协议的ID符合标准(比如对WANDHT是/ipfs/kad/1.0.0,对LAN DHT是/ipfs/lan/kad/1.0.0)。

- 保证对点节点的IP地址是公共地址(比如公共DHT表中的每个成员至少有一个公共的IP地址而不是只有类似192.168.X.Y这样的地址)。

2.如果一个节点满足条件可以被加进路由表,接下来就要决定该节点在Kademlia地址空间中应该放在哪个“桶”(“bucket”)里(比如节点在2^7和2^8之间,其地址空间为2^256,则节点在路由表中就应该放在定义为256-8的桶里)。

3.将该节点放入路由表

- 如果路由表中节点应该被放置的“桶”没有满(即该“桶”中放入的节点少于20个)则将该节点放入此桶中。

- 如果该桶已经满了则我们要检查这些节点中是否有可被替换出来的。如果有,就将可替换的节点拿出来,把新节点加入。如果没有,就放弃这个桶。

4.如果我们向路由表中的节点发出咨询请求但得不到回应,则把该节点从表中拿走。

- 注意:每次刷新后,我们都要遍历整个路由表并向最近没有通信过的节点发出咨询请求以检查它们是否仍然在线、可被连接。一旦发现某节点掉线不再可被连接,则把它从表中删除。

此外,为了保证路由表的准确,我们会每隔一段时间刷新它。对路由表刷新频率的计算基于一系列参数如“桶”的大小等。

我们可以增加刷新的频率,但它有个下限。对IPFS而言,其下限频率为每10分钟刷新一次。

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

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

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

相关推荐

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

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

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

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

    2024-12-17 15:00:01
    11 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交易所

立即下载