I am building @Vertex with @Pip the WoT guy to provide nostr profile and relationship information ("web of trust") in a usable and actionable format for clients to enhance their applications, such as spam prevention, ordering by relevance, getting follow recommendations, etc. Every single service is a DVM and I am finishing drafts for a DVM-NIP that I want to propose, and get community feedback. @david This is the way - not proprietary APIs.
Gigi's avatar Gigi
My gut feeling tells me that this stuff should be done in a nostr-native way, ie with DVMs or similar. Each server we add is just a cobblestone of the path that will eventually lead us back to hell, so we either have to do it locally or with stuff that's easily and dynamically replaceable. Thoughts? CC @npub1l2vy...ajft @Don't Believe The Vibe 🌱🍋🍊 @hzrd149
View quoted note →

Replies (7)

I look forward to seeing your product including your DVM-NIP. I could easily offer PageRank, GrapeRank, follower lists, and all sorts of other scores by API to devs because it’s an easy thing to do, once the graph db is running. But API was never my end goal. I love @Vitor Pamplona ‘s suggestion of publishing the data using NIP 85, kind 30382 events.
I’m going to publish one kind 30382 event per pubkey (180k or so) which includes their various WoT scores and metrics, as determined from my pubkey’s perspective (bc all reputation is relative). The proposed NIP-85 includes tags for Follower count as well as a generic “rank” from 0 to 100 which I suppose could mean anything — I’m thinking I’ll adapt the GrapeRank influence score, which ranges from 0 to 1. I may add other tags … maybe one for PageRank score? … although that’s not currently in the NIP.
One step at a time. I’m currently working on a server that runs strfry + neo4j (already got that working), which imports data from LMDB to neo4j (currently working on the ETL pipeline for that), calculates PageRank, GrapeRank and other scores, and uses them to manage the filters that strfry uses when it imports from other relays. This will be the next-gen personal WoT relay. So we take things one step at a time. Step 1: you will go to Amethyst, view Alice’s profile and see kind 30382 event data authored by my server, that is already functioning today. Which scores will users want? PageRank? GrapeRank? Follower count? *Validated* follower count? Something else? We will need users to tell us! Step 2: same thing, except that the kind 30382 events are authored by YOU and stored on YOUR personal WoT server.
Thinking I’ll pair neo4j with @relaytools as the basis for next-gen Personal WoT Relay. First step will be some scripts that synchronize the relay’s LMDB with neo4j. Looks like the node-lmdb library may do the trick. Second step will be scripts that manage the graph db as your own personal Nostr Knowledge Graph. Third step will be calculation of PageRank, GrapeRank, and other WoT-related metrics. These tools will be readily adaptable to any relay that uses LMDB, which includes strfry, khatru, and also nostrdb (notedeck) if I am not mistaken.