ipfs / ipfs-webui

A frontend for an IPFS Kubo and IPFS Desktop
https://webui.ipfs.io
MIT License
1.56k stars 488 forks source link

Peers: surface more "identify" info, such as "agentVersion" #2086

Open lidel opened 1 year ago

lidel commented 1 year ago

We already show some info, for example "Open Streams" column on the peers screen, but it only shows active streams, not all supported protocols and versions:

Screenshot 2023-01-23 at 19-11-17 Peers IPFS

An useful info would be to show AgentVersion from identify protocol. It is already supported, but requires ipfs.id(peerid) call for every peer:

$ ipfs id --enc=json 12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq | jq
{
  "ID": "12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
  "PublicKey": "CAESILgL3TiUmYeBy46Uzp0XZxwP4fcFVTIoX6ncvEr+hKSU",
  "Addresses": [
    "/ip4/127.0.0.1/tcp/4001/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip4/127.0.0.1/udp/4001/quic/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip4/172.17.0.2/tcp/4001/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip4/172.17.0.2/udp/4001/quic/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip4/95.208.80.171/tcp/4001/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip4/95.208.80.171/udp/4001/quic/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip6/::1/tcp/4001/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq",
    "/ip6/::1/udp/4001/quic/p2p/12D3KooWNCogGjemMiMjZmDxyVcrjP3KW7VFdSPTTGousXEhczuq"
  ],
  "AgentVersion": "go-ipfs/0.8.0/ad14c3932e",
  "ProtocolVersion": "ipfs/0.1.0",
  "Protocols": [
    "/ipfs/bitswap",
    "/ipfs/bitswap/1.0.0",
    "/ipfs/bitswap/1.1.0",
    "/ipfs/bitswap/1.2.0",
    "/ipfs/id/1.0.0",
    "/ipfs/id/push/1.0.0",
    "/ipfs/ping/1.0.0",
    "/libp2p/circuit/relay/0.1.0",
    "/p2p/id/delta/1.0.0",
    "/x/"
  ]
}

Required dependency

I filled https://github.com/ipfs/kubo/issues/9578 to make it a single request: ipfs swarm peers --enc=json --identify

When we have that feature in Kubo, we could update ipfs-webui and show AgentVersion on Peers screen.

whizzzkid commented 1 year ago

@lidel thanks for posting this. I think we use this as an opportunity to fetch all the information related to peers and allow users to configure what columns they would like to see? Maybe this could be part of the UX enhancements @juliaxbow was mocking out?