You speak as if I knew how to calculate PageRank and that was supposedly easier than Grapevine.

In my understanding you can calculate Grapevine by just iterating through Nostr connections sequentially through levels, right? Meanwhile PageRank involves some advanced matrix math I don't understand.

Reply to this note

Please Login to reply.

Discussion

GrapeRank requires calculations that are about the same level of complexity as PageRank.

There are several ways to implement PageRank, one of which uses matrix algebra. The conceptually easier (but less computationally efficient — which doesn’t really matter for our purposes) doesn’t require any advanced math, although it is tedious to code.

The way I currently calculate GrapeRank is the same: tedious to code but nothing more mathematically complex or advanced than weighted averages.

And you’re correct: to calculate GrapeRank, you just do lots and lots of iterations. For each iteration, you calculate the GrapeRank score of one pubkey. You have to iterate through every pubkey multiple times until the scores don’t change, or the changes are below some threshold (I think 10 or 12 iterations was enough in my most recent implementation).

nostr:npub1xdtducdnjerex88gkg2qk2atsdlqsyxqaag4h05jmcpyspqt30wscmntxy uses something very much like PageRank to stratify search results for nostr.band, and it works pretty well imho, as he discusses here:

https://trust.nostr.band/

I’m not aware of anyone else using PageRank in nostr. (Although surely there’s gotta be someone?)

maybe even iris, https://graph.iris.to/

another interesting thing

https://koteitan.github.io/nostr-tsne/

Cool, ty for the links.

Although those don’t use PageRank, do they? Unless I just missed it …