Repository navigation
feat: Peers page table enhancements #1602
Description
Activity
- addedexp/intermediatePrior experience is likely helpfulPrior experience is likely helpfuleffort/hoursEstimated to take one or several hoursEstimated to take one or several hourskind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing featureneed/analysisNeeds further analysis before proceedingNeeds further analysis before proceedingP1High: Likely tackled by core team if no one steps upHigh: Likely tackled by core team if no one steps uptopic/design-front-endFront-end implementation of UX/UI workFront-end implementation of UX/UI worktopic/design-visualVisual design ONLY, not part of a larger UX effortVisual design ONLY, not part of a larger UX effort
on Aug 26, 2020 Transfer column: We risk having multiple values we can sort on here. I assume the highest-impact one, and therefore the sort trigger, is "transfer in" -- thoughts on this?
What about separating it between in & out into their own columns? Would be better for sorting
jessicaschilling commented
on Aug 26, 2020 ContributorAuthorMore actions@rafaelramalho19 Wondered that too, but ended up settling that breaking them into two columns might be disconnecting them too much, and giving each too much importance. If the primary question we're trying to answer is "which peers am I trading with", a single column would be better at indicating that (particularly with the addition of the orange/teal indicator light). Curious what @lidel thinks though.
Some answers:
- Transfer column:
- keep a single column: agree with @jessicaschilling on "which peers am I trading with" being the key utility here, and we want to avoid clutter.
- sorting: if we sort by
sum(in+out)then we always promote peer that generates the biggest traffic – should be enough - B/s and kB/s: afaik API will return value in bytes, we can format it any way we want (I'd say a rounded, human-readable values are desired here).
- always showing values in hover state: sgtm
- fonts: no strong opinion here, the only thing that has to be monospaced are Peer IDs, everything else can be changed if it makes things look and read better
nits/ideas:
- Would use of icon/emoji instead of text "in"/"out" help? I worry that translation of these words may be pretty long in some languages.
- Can we move version to the very right? It is less important than Connection type.
- Thoughts on making "Version" less ambiguous and rename it to "Agent" (as in "user agent")?
This will create continuity withipfs id→AgentVersionand decrease vagueness (in IPFS we have many protocols, each has "version", but there is only one "Agent"). Feel free to ignore if I am overthinking this or "Agent" is not the best word for some reason?
Reacted by Jessica Schilling- Transfer column:
jessicaschilling commented
on Aug 26, 2020 ContributorAuthorMore actions@lidel Thanks! I'll update mockup in the morning but one question in the meantime:
Would use of icon/emoji instead of text "in"/"out" help? I worry that translation of these words may be pretty long in some languages
We could, but I don't believe we would be able to include those icons/emoji in the hover state, and that would introduce inconsistency. Thoughts?
jessicaschilling commented
on Aug 27, 2020 ContributorAuthorMore actions@lidel and @rafaelramalho19 -- updated #1602 (comment) to include notes mentioned above. This includes a rough first pass at out/in icons based on our existing
stroke_link_external.Wondering if including an "indicator light" adds noise rather than value -- #1602 (comment) now includes two screenshots, one with lights, one without.
Further thoughts?
14 remaining items
jessicaschilling commented
on Sep 17, 2020 ContributorAuthorMore actions@andrasfuchs -- nice thought!
@lidel, do you see any reason not to?@andrasfuchs @jessicaschilling
Main concern: most addresses will never resolve because most of the peers never published anything under theselfkey, which means user clicks on a link the Explore page tries to resolve/ipns/<peerid>and displays spinner forever, or timeouts after a minute. And that's pretty bad user experience.What I would do instead, is to copy value clipboard when user clicks on table cell (with some visual feedback).
It could be enabled for all columns, but especially for Peer ID and Connection.Reacted by Andras Fuchs@lidel Good idea!
Is it technically difficult/expensice to detect if someone is sharing anything publicly?
If it's cheap(er) then the value in the Peer ID column could be clickable only if there is actually something to see there.jessicaschilling commented
on Sep 18, 2020 ContributorAuthorMore actions@jessicaschilling the original Multiaddr value we currently show onhover in title (
/ip4/.../p2p/Qm...)Reacted by Jessica Schillingjessicaschilling commented
on Sep 21, 2020 ContributorAuthorMore actionsIdentified two more things that go-ipfs provides and what we could surface on the Peers screen:
- "direction" – was the connection initiated by my node, or did someone connected to me?
- "streams" – what type of activity occured? (DHT? bitswap?)
$ ipfs swarm peers --streams --direction /ip4/A.B.C.D/udp/4001/quic/p2p/QmPeerId outbound /ipfs/bitswap/1.2.0 /ipfs/kad/1.0.0 ...I think those are in the same category as "agent version".
Perhaps we could show them alongside under "agent details" somehow.
This could be a part of #1616 or separate PR in the future.@jessicaschilling thoughts?
jessicaschilling commented
on Oct 19, 2020 ContributorAuthorMore actions@lidel Would "streams" activity type make sense as a hover state for a value in the Agent column? We could add that to requirements for #1616.
I'm struggling a bit with where we'd want to display who initiated the connection, particularly since "direction" as a term is easily confused with the data in the in/out column. Do you have any thoughts on how we might be able to word this more clearly in the hover state for the Agent column?
- yes,
streamscould be onhover in Agent column for now - similarly,
directioncould be appended to the onhover text in Connection column (/multi/addr (outbound)) - sidenote: js-ipfs does not support
streams/direction, UI should work fine when API does not return them (we don't want to break webui in js-ipfs)
- yes,
jessicaschilling commented
on Oct 21, 2020 ContributorAuthorMore actionsjessicaschilling commented
on Oct 22, 2020 ContributorAuthorMore actions
Note: This issue includes and therefore supersedes #1037 and #1117.
Summary
Enhance Peers page by adding table columns for transfer rates and IPFS version, and removing unused "Notes" column.
To do
TotalInandTotalOut, or--ifsum(TotalIn, TotalOut)= 0sum(TotalIn, TotalOut)0.2 kBin favor of211 B)sum(RateIn, RateOut)> 0 ), add an "indicator light" whose colors are the same as the in/out colors on Status page; for edge case in which out/in values are the same, split the circle in two as per mockupRateInandRateOutas well asTotalInandTotalOut, per mockupdirectionto the hover text as such:/multi/addr (outbound)(note this doesn't appear if using js-ipfs)AgentVersionviaipfs id <PeerId>DHT,Bitswap(note this doesn't appear if using js-ipfs)Make items in "Peer ID" column links that open the Explore page with that particular IPNS address(peers dont publish anything under their PeerID by default, this would be broken for most of peers)
Mockup screenshot