Downloading every reaction note to get a count of likes is so fucking dumb lol
What happens when we are bigger are posts get thousands of likes?
Just download 20mb of data to compute one count?
We need to fix this
Downloading every reaction note to get a count of likes is so fucking dumb lol
What happens when we are bigger are posts get thousands of likes?
Just download 20mb of data to compute one count?
We need to fix this
Same challenge with follower count 😂
These are the logic of social media. With this one you're not implementing a new function, you're aiming to disrupt a social model. I believe it's gonna be hard
just download the reactions of people you want, just like you do with kind:1
it was always dumb to ask for everything, either reactions or any other note, but clients decided to go the dumb route.
Or let the relays just give you the count with a few bytes
I don't need to do that because I don't tally anything, I display all the reactions like any other reply, but I would use relays to count if I needed to use that feature.
One relay is going to report 5, another one 7. How do you combine them? Max? Sum? Guess?
But, push a new meta event from the relay. If clients want to use it, that's great. If not, that's also great.
Use the highest count
The relays might have completely different people pushing to them though, and then you'd need to sum them.
If it happened a lot you could include some optimized data hinting at the npubs behind the counts. It's not an easy problem.
Smart relays using negentropy to stay in sync with others in the network. You could even expose count over HTTP given an event ID.
It's better to keep information in the messages themselves so the protocol stays focused. But if relays want to talk to each other using some sort of magic that's cool too. At the end of the day, most clients will be using more than one relay, so they need to combine that information somehow.
Sounds like a pivot from relay dev to protocol designer
Exact count is a psyop. There is no global. Few.
It's the bandwidth more than the count I have beef with.
A relay can already give you a count with a few bytes, and it will be equally as inaccurate as trying to fetch them all individually
The personal and local relays will soon all be syncing, based upon some criteria (like a follow list), so you'd have the reaction events, already, from the npubs you actually care about, and can just count that.
If you want more info, for some particular note, you can look at an aggregator website, like nostr.band, or ask an API.
I only see when my frens react.
How about clients just don’t display total counts and if you do want that you can rely on a trusted server to check that for you
Cuz reliance on trust is what got us in this mess to begin with.
What part of don't trust, verify has everyone forgotten?
Sir this isn't Bitcoin
Either way you see trusting relays to give you the notes, it's identical to asking them for the count
Yea literally
I never mentioned bitcoin. I am as mply pointing out that relying on trust is problematic and leads to the emergence of "trusted third parties" which is counterparty risk tofunctionaltity.
Agreed that client downloading 20mb for a count is inefficient and that's dumb way to count though.
Why not micro relays on every "full" client? Data is pretty cheap most places and solves the trust issue for day to day operations.
Jus's a thought.
What’s a “micro relay”? Isn’t that basically a trusted server?
Lol no. I mean the relay implementation can be skinny and stuffed in local client.
But nm. I have argued this before enough to have been told by the creator of this protocol that centralization is a feature and relays are private property.
So. It doesn't matter what I say. This is how it will be. We are just rebuilding the old world with new faces and phrases.
Be well
I don't think it's necessarily a question of size. It's just that you can only trust your own relays.
The Android relay I run on my localhost is more trustworthy than one run by someone else, on their machine, regardless of who they are, because I can see the entirety of it and verify everything.
I just setup Citrine on my phone and it's running really good. Do you know if there are other relay apps for Android, or is Citrine pretty much it for now?
no, because the notes are external content not generated by the relays, the relays cannot be trusted ever, the client needs to verify everything. you're advocating for clients to "just trust me bro" which is completely wrong. the practice of displaying a single integer count is the problem, and clients downloading tons of events just for that are the problem. anyway, there's a COUNT nip since a long time ago that I helped shape precisely to unburden relays from this bad practice.
And you’re trusting the relays to give you the right count…
I'm not because I don't use the feature. but if you're going to ask for everything just for a count, might as well trust the relay for that, because it's meaningless anyway and the relay doesn't have to send everything and you don't have to download everything just to discard it afterwards. but just because I don't use it doesn't mean that other don't as well, so if clients will do it because they can, they will, and in that scenario, it is best to have a better solution with tradeoffs both agree.
???
Maybe signature aggregation can help lighten the load somehow?
Global reactions vs. follower reactions. I assumed it wasn't downloading them all if you don't ask for it. nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnhd9hx2tcewvzaw


Extra bullish on the 5AM version of nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8
He's grumpy
I was thinking about that, it's actually a pain.
We can aggregate data, but we loose the signature, so it's useless. Perhaps one solution is to somehow use a Merkle tree structure?
Or maybe reactions are not so important.
As an aside, I get that signatures prevent relay manipulation of the data; but, what prevents client manipulation of what is presented to the user?
Maybe aggregated data is good enough if the underlying source reaction notes remain available to be spot-checked for signature verification.
that's what databases are for
i've tinkered a lot with the badger eventstore... i've done to things to it, one was to make it single threaded per query and another was to design a garbage collector
making more sophisticated indexes would be fairly easy to do, and honestly out of all the things i've done with eventstore/khatru/go-nostr/relayer codebases (btw relayer is much better than khatru) the stuff i had the most fun with was writing the bulk concurrent transaction processing with badger to implement the GC utilisation census
i'd love to do more stuff in this direction... high performance computing is one of my most favourite things
Do we see a small-noters vs big-noters war incoming? 🤣
Agree though, feels a bit clunky just for likes. Maybe relays aggregate them and you can still verify if you want. Nobody will do that but this is not really imporant data anyway. Or we go #onlyzaps