问题标签 [peer-discovery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
591 浏览

bittorrent - BitTorrent 的 Peer Exchange (PEX) 协议规范在哪里/是什么?

有一个说明 BEP 11 是 PEX 的待定草案。但是,这从未发布过,而且我找不到官方规范。

0 投票
1 回答
754 浏览

bitcoin - 连接到硬编码节点后,比特币对等点发现如何工作?

我正在修改比特币源代码,并试图了解对等发现机制在testnet我进行了以下更改的模式下的确切工作方式:

  1. 禁用 DNS 种子发现以强制 bitcoind 回退以连接到硬编码节点。

  2. 将默认硬编码节点更改为我已知的 4 个地址,比如 A、B、C 和 D,我确保它们始终在线。

现在,当我运行 bitcoind 客户端(称为 E)时,它连接到 A、B、C 或 D 之一,运行相同的修改版本的 bitcoind。getaddr它通过交换和消息从它首先连接到的硬编码节点获取对等地址,addr但我不确定之后它是如何进行的。我有以下查询:

一个。如果一个节点回退到连接到硬编码节点,它应该只连接到一个硬编码节点,就像在我的情况下发生的那样,还是可以连接到多个硬编码节点?

湾。通过addr消息获取对等地址后,节点 E 什么时候开始连接这些对等点?

如果可能,请指出相关的代码文件/部分。谢谢

0 投票
1 回答
265 浏览

ipv6 - 是否有任何用于多播对等点发现的 BitTorrent/DHT 扩展?

BitTorrent 或其主线 DHT是否对使用多播的IPv6本地对等点发现有任何扩展?

0 投票
0 回答
74 浏览

distributed-system - 具有 p2p 通信的多代理分布式系统中的代理发现

假设我在没有集中单元的分布式网络中有一组代理。我想用 P2P 与他们交流。所以每个代理都是对等的吗?

网络应该自己建立,当一个新的代理想要加入这个网络或想要离开时,整个事情应该仍然运行。即使目前没有代理。(在我的情况下是一种可能性)。

那么一个代理如何发现另一个想要加入这个网络的代理呢?

我对此思考了很长时间,对我自己来说,我得出的结论是去中心化的实现是不可能的,但我想问问社区。

0 投票
1 回答
491 浏览

networking - P2P 网络引导

对于 P2P 网络,我知道一些网络具有初始引导节点。然而,人们会假设所有新节点都从所述引导节点学习对等节点,网络将难以添加新对等节点,最终会出现许多派系——不平衡,因为没有更好的词。

有什么方法可以防止这种情况发生吗?我知道一些 DHT 将它们的路由表构建为不太容易受到此影响,但我认为问题仍然存在。

为了澄清,我问的是存在/通常用于对等网络的哪种对等混合算法。

0 投票
1 回答
246 浏览

kubernetes - rabbitmq-peer-discovery-k8s 失败。我仍然需要手动停止、加入集群并启动每个节点

部署了示例 yaml 文件,但未按预期工作。我仍然需要在集群上运行批处理作业来手动停止、加入集群并为每个 pod 启动。另外,有没有办法使用 rabbitmq.conf 文件配置虚拟主机、用户和凭据?否则,我必须在所有 pod 启动后在 kerbernetes 批处理作业中执行此操作。

我检查了Failing K8s rabbitmq-peer-discovery-k8s clusteringk8s、RabbitMQ 和 Peer Discovery。我的集群 DNS 工作正常,因为它能够解析kuberneteskubernetes.default.svc.cluster.local

0 投票
1 回答
1622 浏览

docker - 在 Kubernetes 中使用 UDP 广播进行 pod/peers 发现

我需要使用 UDP 广播进行对等发现。

环境:

  • docker-desktop使用单节点 Kubernetes 集群

我的代码如下所示:

Kubernetes pod 设置:

对于peer-1

对于peer-2

为了简单起见,我使用了不同的输入/输出端口。实际上应该是同一个端口,例如:9999

我看到每个 pod 都有一个唯一的 IP 地址

日志来自peer-1

日志来自peer-2

问题:为什么从而不是peer-1接收UDP数据包?10.1.0.110.1.0.37

如果我登录到peer-2容器:kubectl exec -it p2p-deployment-2-59bb89f9d6-ghclv -- /bin/bash

然后

peer-1我看到的日志中peer-1 received 'test' from /10.1.0.1:43144。再次为什么网络地址10.1.0.1而不是10.1.0.37.

你能告诉我我做错了什么吗?

注意:当使用同一端口发送/接收 UDP 数据包时,某些对等方可以接收到来自其自身 IP 地址的数据包。换句话说,对等点只能发现自己的 IP 地址,但总是获取10.1.0.1从其他对等点/pod 接收到的数据包

0 投票
2 回答
921 浏览

android - WifiP2pManager.discoverPeers 在 android 10 中失败

以下代码示例返回错误代码:0,这是 android 内部错误的错误代码。是否有任何解决方法可以在 android 10 设备中发现对等点?

0 投票
0 回答
353 浏览

javascript - JS 中的 Libp2p DHT 对等点发现示例

根据 Libp2p 文档,DHT 可用于对等发现。

此外,Filecoin 声称他们正在使用 libp2p Kademlia DHT 来发现 go 中的对等点。

到目前为止,我还没有找到任何关于如何在 JS 中设置它的工作示例。

当我为 peerDiscovery 指定 DHT 时:

我在日志中收到错误:

有人可以帮忙吗?

0 投票
0 回答
42 浏览

rust - 在 libp2p 中实现对等发现

libp2p 中的对等点发现(例如,对等点互相告诉对方他们知道的对等点,并管理连接节点的列表)在 Rust 中是否完全在 NetworkBehavior 级别控制?

看起来一种选择是使用Kademlia,它看起来像通过定义 NetworkBehavior 来做到这一点(在 rust 版本中)。

如果您不想使用 Kademlia 实现对等发现,您可以通过将对等发现定义为 NetworkBehavior 的一部分来做到这一点,这是否正确?

我试图避免一种情况,即我开始实现代码来执行此操作,但后来我发现 libp2p 实际上是在为我做这件事。