ping a libp2p peer via the ping protocol (/ipfs/ping/1.0.0
)
$ cargo run /dns/kusama-connect-0.parity.io/tcp/443/wss
Local peer id: PeerId("12D3KooWEEPQNzmwmwSB63rAT1pnJLso8GprdNtBM5F8sg92SsxL")!
Dialed /dns/kusama-connect-0.parity.io/tcp/443/wss
Listening on "/ip4/127.0.0.1/tcp/46823/ws"
Listening on "/ip4/172.17.0.10/tcp/46823/ws"
Unhandled: ConnectionEstablished { peer_id: PeerId("12D3KooWBjxpFhVNM9poSsMEfdnXJaSWSZQ7otK9aV1SPA9zJp5W"), endpoint: Dialer { address: "/dns/kusama-connect-0.parity.io/tcp/443/wss", role_override: Dialer }, num_established: 1, concurrent_dial_errors: Some([]), established_in: 1.269186947s }
BehaviourEvent: Event { peer: PeerId("12D3KooWBjxpFhVNM9poSsMEfdnXJaSWSZQ7otK9aV1SPA9zJp5W"), result: Ok(Pong) }
BehaviourEvent: Event { peer: PeerId("12D3KooWBjxpFhVNM9poSsMEfdnXJaSWSZQ7otK9aV1SPA9zJp5W"), result: Ok(Ping { rtt: 143.03252ms }) }
BehaviourEvent: Event { peer: PeerId("12D3KooWBjxpFhVNM9poSsMEfdnXJaSWSZQ7otK9aV1SPA9zJp5W"), result: Ok(Pong) }
BehaviourEvent: Event { peer: PeerId("12D3KooWBjxpFhVNM9poSsMEfdnXJaSWSZQ7otK9aV1SPA9zJp5W"), result: Ok(Ping { rtt: 142.90243ms }) }
...
Note: only WS/WSS transport is supported, if you want TCP, follow the first referenced tutorial
References: - https://docs.rs/libp2p/latest/libp2p/tutorials/ping/index.html - https://github.com/libp2p/specs/blob/master/ping/ping.md - https://github.com/libp2p/specs/tree/master/identify