i just had an epiphany about the function of follow lists as being like a consensus hint for replication pattern of data, combined with relay lists.

if you have a relay that you pay a subscription to be able to write to it, it makes sense that the relay would proactively real-time subscribe to other relays where relevant events may pop up, in the background, if other relays also use this "pull-subscribe" pattern they automatically replicate like a programmable replication algorithm, when the relay has some set of users, their events and relevant events are all received in real time.

each relay then becomes a replica with high availability for its users most requested data, and each overlaps with copies going across the multiple relays that the user has configuration.

each of the lists is different on each relay and the data goes exactly where it's wanted, automatically, all using built in protocol primitives and a simple background service on the relay.

this enables nostr data to be widely distributed and replicated in accordance with the preferences of the users, all automatically and instantly.

it's just about designing the queries and adding the service and relays become a mesh for user data.

Reply to this note

Please Login to reply.

Discussion

Yes, this is a great improvement over dumb paid relays that only store what their users write to it. However, if the relay wants to be even more proactive, and allow its users to discover great content from people they don't follow directly, then you need more sophisticated tools that deal with reputation.

For example, instead of using the follow-list of a user, you could use it's 2-hop-follows, or 3-hops. But then how to mitigate spam? This is recreating personalized pagerank basically.

For each user, you create a list of "probably interesting" people by computing the personalized pagarank and applying a threshold for spam mitigation.

So you end up with his follows, and his most "reputable" follows of follows, and so on. And you don't have to build all of this from scratch, you can just call RecommendedFollows of nostr:nprofile1qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qghwaehxw309aex2mrp0yhxummnw3ezucnpdejz7qpqkpt95rv4q3mcz8e4lamwtxq7men6jprf49l7asfac9lnv2gda0lqpsy38p , and all of this is taken care of.

https://vertexlab.io/docs/services/recommend-follows/

it's still a good distribution pattern tho

Yes it is good.

A better one is to do:

follow list + recommendation list

Yes, this is a great improvement over dumb paid relays that only store what their users write to it. However, if the relay wants to be even more proactive, and allow its users to discover great content from people they don't follow directly, then you need more sophisticated tools that deal with reputation.

For example, instead of using the follow-list of a user, you could use it's 2-hop-follows, or 3-hops. But then how to mitigate spam? This is recreating personalized pagerank basically.

For each user, you create a list of "probably interesting" people by computing the personalized pagarank and applying a threshold for spam mitigation.

So you end up with his follows, and his most "reputable" follows of follows, and so on. And you don't have to build all of this from scratch, you can just call RecommendedFollows of @Vertex , and all of this is taken care of.

https://vertexlab.io/docs/services/recommend-follows/

nostr:nevent1qvzqqqqqqypzqnyqqft6tz9g9pyaqjvp0s4a4tvcfvj6gkke7mddvmj86w68uwe0qqsy4xvtlny9g78heswlg0dn8jgws95zws23p0vy0z9pm3yp7recenctmdahw