How would your client know that someone followed you, unless they intentionally post their kind 3 event to a relay you've told your client to watch?

Primal can give you this information because they run their own server that aggregates this information from known relays. Most mobile clients don't have this type of back-end infrastructure, and run everything locally on your device. Trying to aggregate that kind of information locally on a mobile device's data connection would be ridiculous.

Reply to this note

Please Login to reply.

Discussion

yeah you would have to listen to every kind3 update from everyone who has you other their contact list. contact lists are massive, 100KB. if you had 1000 people following you and who were following/unfollowing people, that would be like 100MB of data downloaded just to get follow notifications.

our push notification server (notepush) can do all this for you and push these to the device. much more efficient.

Wouldn't you need to listen to EVERY kind 3 update, period? How else would it know whether an update to some npub's kind 3 was or was not adding your npub as a follow?

you would create a filter {#p: your pubkey, kinds: 3} which would only get contact lists that you are on. Then you would have to keep state to not count duplicates

Got it, so then the relays would only serve up kind 3 requests that actually contain your npub, so your client doesn't have to look at every single kind 3 in existence each time it checks for follower updates, but it's still a massive amount of data to have to download every time it checks for updates, and that would need to be stored locally to avoid double-counting.

Yeah, not something that is realistic on a mobile client without a server that can do it off-device.

Thank you good sirs ! Appreciate your replies