@masukomi I'm under the impression that we still use pubs even if we don't follow them. For example, if a pub follows you and you follow me, then the pub will download messages from me directly and hand them off to you. I haven't followed any pubs in at least a few weeks (except @libra.fraction.io) and I don't think I can tell the difference.
If you unfollow a pub it makes no sense that your client would reach out to it to share with it. Maybe it does, but if so it really ought to be considered a bug.
Yes, if you just unfollow, and not block, a pub and that pub encounters your info via someone who is connecting to it the pub will share your feed onwards.
But this is the point of ~/.ssb/gossip.json
, right? My understanding is that our clients intentionally look up type: pub
messages and collect every address we can so that we can hit them up later and say "hey do you have any messages for me?" even though we aren't following each other.
I think it works the same way over LAN: if Alice and Bob are both friends with Charlie, but don't follow each other, they'll still pass messages about Charlie to each other through the LAN as long as they don't block each other. Even people with public IP addresses seem to get all sorts of SSB traffic from people they don't follow, so I think pub invites provide social centrality rather than just network peering.
I think pubs are useful tools if you don't have any followers, but at least currently I don't think there's any benefit to following pubs once you have enough friends to be within 2/3 hops of most pubs.
Re. not telling a difference: I follow most of the pubs, and there's still a message in this thread that I can't see...
Do you have the message key? IIRC Patchbay doesn't show me these messages...
If I unfollow all the pubs, will I be able to post and get new messages only from devices on my own locally-connected network, whether wifi, mesh, or ethernet?
My experience points to "no", but I'm not an expert. My understanding is that your client is constantly connecting to every pub it knows about, and that those pubs will replicate your messages as long as:
- you have an internet connection
- the pub hasn't specifically blocked you
- you're within their hop distance (usually set to 2/3):
- 1 hop: the pub follows you, or
- 2 hops: the pub follows someone who follows you, or
- 3 hops: pub follows someone who follows someone who follows you
For people who want to get technical: you can get your current peering information with sbot status
, which currently shows that I'm connected to:
"gossip": {
"@gTsBPQbdSd763h0qoZsBjPlgWbhKKmMFW8kmTv/XrV8=.ed25519": {
"address": "net:192.168.0.17:8008~shs:<REDACTED>",
"source": "local",
"state": "connected",
"stateChange": 1539877878307,
"failure": 0,
"client": true,
"stats": {
"duration": {
"mean": 27012.073684210525,
"stdev": 28568.670479627122,
"count": 95,
"sum": 2566147,
"sqsum": 146853000481
},
"rtt": {
"mean": 13,
"stdev": 0,
"count": 1,
"sum": 13,
"sqsum": 169
},
"skew": {
"mean": 2.5,
"stdev": 0,
"count": 1,
"sum": 2.5,
"sqsum": 6.25
}
}
},
"@DwACvb3CeQGuk75+i3IhFCZ6T4YF9mMBShTY5xsZ/yE=.ed25519": {
"address": "net:ssb.drisc.io:8008~shs:<REDACTED>",
"source": "stored",
"state": "connected",
"stateChange": 1539877880345,
"failure": 0,
"client": true,
"stats": {
"duration": {
"mean": 35383.485049833886,
"stdev": 25386.54338817994,
"count": 301,
"sum": 10650429,
"sqsum": 570836747441
},
"rtt": {
"mean": 285,
"stdev": 0,
"count": 1,
"sum": 285,
"sqsum": 81225
},
"skew": {
"mean": 66.5,
"stdev": 0,
"count": 1,
"sum": 66.5,
"sqsum": 4422.25
}
}
},
"@d64Q93XzBhbr2JCLWkZgvzKwTHMvwFgRdtw4fHFlF5k=.ed25519": {
"address": "net:ssb.mikey.nz:8008~shs:<REDACTED>",
"source": "stored",
"state": "connected",
"stateChange": 1539877892466,
"failure": 0,
"client": true,
"stats": {
"duration": {
"mean": 44309.92792792793,
"stdev": 19320.208485488278,
"count": 111,
"sum": 4918402,
"sqsum": 259367058748
},
"rtt": {
"mean": 379,
"stdev": 0,
"count": 1,
"sum": 379,
"sqsum": 143641
},
"skew": {
"mean": 94.5,
"stdev": 0,
"count": 1,
"sum": 94.5,
"sqsum": 8930.25
}
}
}
}
The 192.168.0.17
is @libra.fraction.io, which is on my local network, but the others are pubs that my client has learned about via type: pub
messages.
My experience points to "no"
That's also what I see.
@bob Yep, exactly. Their existence is useful, but as long as you're within the pub's hops you don't need to follow it directly. I think my ideal would be to join small private pubs whose friends are a subset of my friends, which guarantees connectivity without invoking the rando problem of public pubs.