如果我在 MacOS 上运行节点,则无法通过 DHT 连接到对等点

问题描述 投票:0回答:0

我正在开发一个简单的项目来了解如何使用 DHT。这是:https://github.com/ashish10677/dht-implementation 该项目只是运行一个 libp2p 节点并发布它的对等 ID。其他机器可以使用第一个节点提供的对等 ID 来运行相同的程序来连接它。

所以,基本上场景是这样的:假设我们有 3 台机器。 #Mach1 是我个人的 MacBook Air (m1),#Mach2 是 GCP VM,#Mach3 也是 GCP VM。

如果我通过提供公共 IP 和端口来启动 #Mach2 中的程序,它会给出要连接的对等信息。使用该信息 #Mach1 和 #Mach3 能够连接,并且由于它是 DHT,因此所有节点都相互连接。

现在,如果我重复相同的过程,但从 #Mach1 开始,那么其他两台机器(虚拟机)#Mach2 和 Mach3 将无法相互连接。我收到错误:

拨打12D3KooWLQaT8UhctNM9LJiSpL11ZcV5YgrZPwW8uj1SrZ2Lbuqt失败:

  • [/ip4/<#Mach1_publicIP>/tcp/3000] 拨打 tcp4 0.0.0.0:3000->171.76.86.245:3000: i/o 超时 我可以得出的结论是,在 MacBook 上运行 DHT 服务器时存在一些问题。我已在路由器上启用了端口转发,但错误仍然存在,而虚拟机能够非常轻松地相互连接。有人可以帮我解决这个问题吗?

我尝试在路由器上启用端口转发。我也尝试过使用 VPN。这没有帮助。

go network-programming p2p libp2p go-libp2p
© www.soinside.com 2019 - 2024. All rights reserved.