Mazin on Nostr: I assume you have received several good explanations by now, but in case you ...
I assume you have received several good explanations by now, but in case you haven’t I wrote this almost 2 years ago:
How do we check “follower count” on nostr?
1. Your client sends a request to all your connected relays asking for contact lists that follow you
2. Relays answer back with the events requested
3. The client aggregates the event total, de-duplicates, and displays the count
Each relay has a set limit on how many stored events it will return per request. For some relays it’s 500, others 1000, some as high as 5000. Let’s say for simplicity that all your public relays you query use 500 as their limit. If you ask 10 relays for your followers the max possible answer you can get is 5000. In reality you won’t ever get 5000 unique responses, you’ll likely get something closer to the same 500 from each relays you query. That won’t change if you have 20,000 followers or 100,000 or if you query 100 relays instead of 10. You may get back a “different” 500-5000 each time, but you’ll still cap out at 5000 (non-unique) because that is the most events your client will receive.
Primal, nostr.band, and other aggregators that store counts in their own DB will always show different numbers than clients reading directly from relays. Generally speaking, neither number is correct!
i feel like people are more interested in telling me how they feel about having follower counts than explaining why there’s such drastically different reports on them 😂
Published at
2024-09-05 11:24:50Event JSON
{
"id": "839ba86abb958fb49205dfa7e3c292d01f0100253d60dfe36b4b3c52ae63afd7",
"pubkey": "3d842afecd5e293f28b6627933704a3fb8ce153aa91d790ab11f6a752d44a42d",
"created_at": 1725535490,
"kind": 1,
"tags": [
[
"p",
"cbc5ef6b01cbd1ffa2cb95a954f04c385a936c1a86e1bb9ccdf2cf0f4ebeaccb"
],
[
"p",
"cbc5ef6b01cbd1ffa2cb95a954f04c385a936c1a86e1bb9ccdf2cf0f4ebeaccb"
]
],
"content": "I assume you have received several good explanations by now, but in case you haven’t I wrote this almost 2 years ago:\n\nHow do we check “follower count” on nostr?\n\n1. Your client sends a request to all your connected relays asking for contact lists that follow you\n2. Relays answer back with the events requested\n3. The client aggregates the event total, de-duplicates, and displays the count\n\nEach relay has a set limit on how many stored events it will return per request. For some relays it’s 500, others 1000, some as high as 5000. Let’s say for simplicity that all your public relays you query use 500 as their limit. If you ask 10 relays for your followers the max possible answer you can get is 5000. In reality you won’t ever get 5000 unique responses, you’ll likely get something closer to the same 500 from each relays you query. That won’t change if you have 20,000 followers or 100,000 or if you query 100 relays instead of 10. You may get back a “different” 500-5000 each time, but you’ll still cap out at 5000 (non-unique) because that is the most events your client will receive.\n\nPrimal, nostr.band, and other aggregators that store counts in their own DB will always show different numbers than clients reading directly from relays. Generally speaking, neither number is correct! nostr:note1rg39c6hwy29eucrztq7hupd7gtvqjtfeansgsqresh9dx9jqt8gsklyq75",
"sig": "f83568a639e6061c665d33bd421194b30e1e85b1f4e6db7d57c1d753697f806d697db5ef1dae50352b5322df485ff89c70312525f1ffef5ea8f49fd1a1e38a91"
}