Show user activity and online state #1493
Replies: 2 comments
-
As a user, one of the reasons I ended up sticking to Bisq vs other platforms like HodlHodl was that I didn't need to be responsive. In HodlHodl people accepted my offers but then canceled after 15 mins if I didn't reply back, especially if BTC price changed unfavorably for them during that time. I would find it very unconvenient that my offers would have less chances of being accepted just because I'm less responsive than other traders while I'm still completing all my trades within the SLA. Do we know for sure that this is something that most customers would want? |
Beta Was this translation helpful? Give feedback.
-
Implemented in 2.1.0 by using user activity (mouse, key events) and republishing via Refresh messages if user was active in a certain time interval. |
Beta Was this translation helpful? Give feedback.
-
We could display the users activity, online state and a users responsiveness as additional information which can help to select a trade peer.
How can we provide those data in a tamper-proof way?
We have already a very basic proof of activity by using a time to life (TTL) for the User Profile data which is distributed to the P2P network. After 2 weeks an inactive user profile gets deleted (e.g. the user republishes at app start and on a scheduled interval their profile to avoid that it gets removed by an expiring TTL).
A similar but more short time signalling mechanism could be used for showing if the users app is online. Simple sending out a ping to the network every x minutes would be a possible solution. We don't want to have it too frequently as it would spam the network.
Probably a RefreshMessage for the UserProfile would be good enough for that.
Similarly to that we could send another message which represents User activity in the app (e.g. mouse movements, keyboard strokes). This data would be less reliable as it could be faked by a malicious user who distribute that data by code and not by the designed model. Only way to avoid that would be a kind of captcha solution but that is too disruptive.
To measure the response time we could use the ACK messages in case of already connected users. One can measure the time it takes until a message was acknowledged by the peer. But that does not mean the message was read, just that it technically arrived (either as direct message or when a mailbox message got consumed when the user came back online).
So that data is not very useful. Also that data is only reliable if collected from the peers a user had communicated already. Sharing that data as public data would be insecure as it cannot be validated.
As not all text messages do require a response, it will be hard without any extra feature to figure out what message expects a response. Maybe the first private message, which usually expects some sort of response. But I fear thats too messy as well.
Only way I see would be that we have special UI features which marks a sent message as "request" which expects a "response", similar as the trade protocol expects responses. But I think that UX burden is not justified by the added value in the current setup.
Though the maker's response time after one has taken their offer could be used. But how to make sure such data could not get faked when distributed and shared is not clear. We also do not want to leak information about who traded with whom.
Maybe someone else has other ideas, but so far I only see it feasible to show if the users app is online and if the user was active.
The app being online could be used for reputation similar as the account age but I am not sure if it add much of value as reputation.
The user activity could be faked so that would be insecure to use for reputation.
Beta Was this translation helpful? Give feedback.
All reactions