-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement Peer ID Client
column for Peers
tab
#17940
Conversation
Please elaborate. |
Well, it's just "more info is better". Clients can omit user-agent ( And I don't see reasons for not having it. Columns are customizable and can be hidden for those who don't want to see em. |
This does not correlate with what you said in the opening post: "It is a fairly useful feature".
IIRC While I don't strongly oppose this PR, I'm not going to back it up either. |
I'm not really sure. Libtorrent does resolve some clients this way: But I clearly can see clients that are not on the list: And peer ids here obviously can not represent such precise build numbers (like |
Client column is the advertised user agent while the peer_id is completely different thing. Peer id of two clients will not match(in small swarms) but user agents could be same. I guess the peer_id shown here is truncated as the actual peer_id is 20 bytes. Here only the non random bytes are being displayed. |
Yeah. In fact even on my initial screenshot you can see a bunch of |
Seems you are right on this. Here is the spec: https://www.bittorrent.org/beps/bep_0010.html
So if the peer doesn't support this Extension Protocol then |
I'll make a bunch of statements, and maybe some questions will be answered. The peer_id is just a unique identifier to avoid multiple connections to the same peer, as well as avoiding connecting to oneself. The peer_id, as it was originally intended (I believe), ended up not being very useful. You can't trust peers to use the same peer ID if they open multiple connections to you, so it's primarily helpful in identifying connections to yourself. The one other (subtle) use is if two clients connect to each other at the same time, the peer ID is used to determine which connection to disconnect and which one to keep. Both clients need to agree on this, otherwise they might also decide to close both connections (one each). There are 4 places where a bittorrent client advertises a "user agent".
I believe only (2) and maybe (3) is relevant for this ticket. Presumably, in the screenshot above, where the Client column disagrees with the PeerID column, the peer advertised a different |
Now I see a few possible ways:
Will be good to hear more thoughts about it. |
In case it is really needed I would prefer this option. Also I would show some placeholder in case of non printable id. |
Ok, will stick with this variant for now. |
I think this column should be hidden by default. |
Agree. But I can't figure out how to do it for desktop UI. |
Nvm, I made it. |
`Peer ID` -> `Peer ID Client`
@HanabishiRecca |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Peer ID
column for Peers
tabPeer ID Client
column for Peers
tab
@HanabishiRecca |
It is a fairly useful feature. Implemented both for desktop and WebUI.
Originally introduced in qBittorrent Enhanced Edition, initial source is ported from there.
Screenshot