Problem:

open nostr on phone, scroll through posts, cool (client 1)

open nostr on desktop, scroll through the same posts, not cool (client 2)

Solution:

client 1 creates a bloom filter, a short data blob that "fingerprints" all event ID's you've scrolled past (or looked at for > 0.5s) and store the bloom filter as a nostr event every 10 seconds or so

client 2 downloads the bloom filter, and before rendering your timeline, checks if you've seen the posts already and hides those you've seen (or reorders with lower priority)

bloom filters can get "full". if they reach capacity, clients simply roll over to a new one and start adding new events to that one. bloom filters can be stored as ephemeral events, you don't need to keep them around. its enough to remember which posts you have seen today / this week / maybe this month (max).

Reply to this note

Please Login to reply.

Discussion

❤️

because of the event IDs there is even no need to for hash calculations

I implemented exactly this in Humble Horse

another bloom filter idea: when subscribing to notes from a relay, users could include a bloom filter with event ids to ignore. relays can check the filter before sending you the event (that you've already seen).

has very little additional computing cost for relays, potentially saves a ton of bandwidth.

iirc this idea has been floating around already, not sure if there's a nip for it

nostr:nevent1qvzqqqqqqypzq5xeflpdskqvdq4swxj59793uvdzqzc9pzatjk3nhmcg2h0js8trqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qghwaehxw309aex2mrp0yhxummnw3ezucnpdejz7qgkwaehxw309ajkgetw9ehx7um5wghxcctwvshsqgpu6tsg6uwdh6e38z8wf4g8ezlht53fku7p9gurwp9p2lm9tal77uxs52xf

Would be good for when everyone is boosting the same post from jack 200 times in a row

A single "last viewed" timestamp probably solves 99% of the problems. Lists should have their one.

I don't want to see different things on each client.

Sounds infeasible

It's also very simple, lightweight and easy to implement. Pro and cons.

but it won't scale

You just want to sync some clients at the same temporal point, where do you see scaling issues?

The only downside I can see is if a relay is down and so the first client doesn't fetch some post, you lose them.

I can totally see myself trying to view some content on my phone… doesn’t load properly… move to desktop… doesn’t load at all 🤣

True story lmao

*coughs * make it opt-in *cough*

imo user tracking functionality should always be optional and user controlled.

Yes, I really want this feature.

The problem also arises when you change between different nostr feeds on the same device.

E.g. you change between the 24h and 4h feed, and you scroll through the same posts.

If we solve this problem I believe nostr will get more new users over from X.