Why do we need sophistication, when good enough is always better? Simply because bots and bad actors will always find ways around “hard coded” WoT parameters … whereas individually configured WoT filters shared peer to peer across clients will always be the best performer.
quotingThe GrapeRank library runs server side. The reason it takes a few minutes is mostly due to network latency, not calculation time. But no worries, it continues to run in the background regardless of local browser state. This allows an implementer (client) to trigger calculation and check back on the status periodically.
nevent1q…7qs9
The “default” config used by grapevine.my client ingests and normalizes all follow lists (for 6 degrees out) to establish the network, and also all mutes and reports authored within the same network. I think that’s about 2 million events (no duplicates) retrieved live from the network per calculation, when I run it. These events (ingested by the interpreter module) are not (yet) cached between calculations… so it’s pretty heavy network load.
The library itself is modular, pluggable, and configurable. Modular means any implementer (client or relay) can make use of only some or all of the library modules. Pluggable means that additional event kinds can be added for the interpreter to ingest and normalize (currently only follows, mutes, and reports have plugins made, but this is as simple as a single json file). Configurable means that the behavior of both the interpreter (protocols) and the calculator can be customized per request to allow greater sovereignty for the end user.
https://github.com/Pretty-Good-Freedom-Tech/graperank-nodejs