p2ping 0.0.0

ping a libp2p peer
Documentation
# p2ping

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