Published npm package nostr-social-graph and its demo on https://search.iris.to It builds a social graph from Nostr follow events. You can query followed users, followers and follow distances. You can change the graph root user, efficiently calculating new follow distances. It maps public keys to integers as internal representation, consuming less memory and storage when serialized. My graph of 23 000 users and 120 000 follow relationships is 2.2 MB on disk. The package also includes pre-crawled datasets of follows and profiles that you can optionally use. They're used on https://beta.iris.to and https://search.iris.to for hydrating the search index and profile cache. https://beta.iris.to uses the social graph for filtering of replies and notification, so you don't need to see that reply guy again (unless he's followed by people you follow — need to add "muted by followed users" support). https://www.npmjs.com/package/nostr-social-graph

Replies (12)

Looks great! What are the levels of trust? I see grey, purple and orange checkmarks for profiles. Is that based on the amount of mutual followers?
Waiting this since I joined Nostr in late '22 👀
Sirius's avatar Sirius
Published npm package nostr-social-graph and its demo on https://search.iris.to It builds a social graph from Nostr follow events. You can query followed users, followers and follow distances. You can change the graph root user, efficiently calculating new follow distances. It maps public keys to integers as internal representation, consuming less memory and storage when serialized. My graph of 23 000 users and 120 000 follow relationships is 2.2 MB on disk. The package also includes pre-crawled datasets of follows and profiles that you can optionally use. They're used on https://beta.iris.to and https://search.iris.to for hydrating the search index and profile cache. https://beta.iris.to uses the social graph for filtering of replies and notification, so you don't need to see that reply guy again (unless he's followed by people you follow — need to add "muted by followed users" support). https://www.npmjs.com/package/nostr-social-graph
View quoted note →
Just made it fetch missing follow lists from your follows when you change current user
Sirius's avatar Sirius
Published npm package nostr-social-graph and its demo on https://search.iris.to It builds a social graph from Nostr follow events. You can query followed users, followers and follow distances. You can change the graph root user, efficiently calculating new follow distances. It maps public keys to integers as internal representation, consuming less memory and storage when serialized. My graph of 23 000 users and 120 000 follow relationships is 2.2 MB on disk. The package also includes pre-crawled datasets of follows and profiles that you can optionally use. They're used on https://beta.iris.to and https://search.iris.to for hydrating the search index and profile cache. https://beta.iris.to uses the social graph for filtering of replies and notification, so you don't need to see that reply guy again (unless he's followed by people you follow — need to add "muted by followed users" support). https://www.npmjs.com/package/nostr-social-graph
View quoted note →
Sirius's avatar Sirius
Published npm package nostr-social-graph and its demo on https://search.iris.to It builds a social graph from Nostr follow events. You can query followed users, followers and follow distances. You can change the graph root user, efficiently calculating new follow distances. It maps public keys to integers as internal representation, consuming less memory and storage when serialized. My graph of 23 000 users and 120 000 follow relationships is 2.2 MB on disk. The package also includes pre-crawled datasets of follows and profiles that you can optionally use. They're used on https://beta.iris.to and https://search.iris.to for hydrating the search index and profile cache. https://beta.iris.to uses the social graph for filtering of replies and notification, so you don't need to see that reply guy again (unless he's followed by people you follow — need to add "muted by followed users" support). https://www.npmjs.com/package/nostr-social-graph
View quoted note →