ssbc / ssb-friends

Manages the SSB social graph
MIT License
23 stars 6 forks source link

Hops and pubs #25

Closed arj03 closed 5 years ago

arj03 commented 5 years ago

I have been thinking that right now what we have is a single concept of hops. Meaning a connection between me, mix and someone mix follows has hops 2. While me, pub, someone pub follows also has hops 2. But they are vastly different, so I was thinking that it might be a good idea to model this concept? I realize that the concept of pubs are going to fade away with user-invites (as you follow a person directly instead of a pub). Still pubs are what we have now and the current connections will be a big part of the graph for quite a while moving forward.

Related:

staltz commented 5 years ago

Isn't this just about using different 'weights' in the follow (contact) messages? I understand that ssb-friends@3 allows following an account with a certain weight number. By default we use 1, but for pubs we could use 1.5 or something else greater than 1.

dominictarr commented 5 years ago

I think two things we can do here: model pub ownership as same-as, i.e. a pub is just another device someone owns. and secondly, as @staltz suggests, make hops distances different for autofollow: true which is how pubs indicate a follow. you could even completely ignore pub follows this way. (these two changes would be very easy)

it might be cool to be able to retrace your relationship to a particular person (say viewed on their profile page) which might show also which layers that relation goes through (including different layers). Lots of detail-work their though.

arj03 commented 5 years ago

Yes, I was thinking more granular level of control for these things. The view relationship idea is neat. Right now you just get 1 number per feed. What if there was a way to get an array of array of values that represents the paths. The values would look something like { type: 'friend'|'autofollow'|..., defaultWeight: 1 }. The arrays could be sorted based on what is the shortest with default weights. This way the client can see all paths and choose different weights as runtime, to enable only should friends of friends and not friends of pubs. Or whatever they choose.

Ultimately it comes down to how clients would use this info. cc @mixmix & @mmckegg

stale[bot] commented 5 years ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?