dvorakchen1
V2EX  ›  问与答

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

  •  
  •   dvorakchen1 · Sep 5, 2023 · 1655 views
    This topic created in 988 days ago, the information mentioned may be changed or developed.

    在学习 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 是搭建一个聊天室的例子,但是我看代码里没有使用到中继节点,只能在内网使用。如何改造它,使它连接上中继节点,能在不同网络下使用?

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

    1 replies    2023-09-05 17:08:56 +08:00
    lsk569937453
        1
    lsk569937453  
       Sep 5, 2023   ❤️ 1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5201 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:17 · PVG 09:17 · LAX 18:17 · JFK 21:17
    ♥ Do have faith in what you're doing.