rust-libp2p 用法请教,现阶段迷雾重重

2023-09-05 15:12:14 +08:00
 dvorakchen1

在学习 P2P 方面的知识,目前在 libp2p 的用法阶段卡住了

现在使用的是 rust-libp2p ,按照官网的教程,使用 examples/relay-server 的代码部署了一个中继节点在服务器上,地址是:114.132.188.107:2020 (只用于学习目的,20 多天就下线,各位可以调试使用)

然后按照教程,使用 examples/dcutr 的代码连接中继节点失败,运行命令如下:

cargo run -- --mode listen --secret-key-seed 42 --relay-address /ip4/114.132.188.107/tcp/2020

得到错误信息:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Other(Custom { kind: Other, error: Transport(Left(Left(Left(Left(MissingDstPeerId))))) })', examples\dcutr\src\main.rs:248:18
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `C:\Projects\rustproj\rust-libp2p\target\debug\dcutr.exe --mode listen --secret-key-seed 42 --relay-address /ip4/114.132.188.107/tcp/2020` (exit code: 101)

根据错误信息定位到 248 行:

Mode::Listen => {
            swarm
                .listen_on(opts.relay_address.with(Protocol::P2pCircuit))
                .unwrap();
        }

opts.relay_address 是传入的中继节点的地址,猜测是本地尝试监听中继节点的地址,所以报错。 在这一步我就卡住了,不知道如何继续

另外,在官网的另一个 example 里面 examples/chat-example 是搭建一个聊天室的例子,但是我看代码里没有使用到中继节点,只能在内网使用。如何改造它,使它连接上中继节点,能在不同网络下使用?

查找了许多资料一无所获,求教

714 次点击
所在节点    问与答
1 条回复
lsk569937453
2023-09-05 17:08:56 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/971106

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX