Oddbean new post about | logout
 I'm new to the WoT contexts so that's why I'm exploring around these different types :)  I want to use them in relay ACLs 
 So only npubs with an influence score above some cutoff can connect to your relays? As a means of reducing spam? That could be pretty useful I think 👍🏻 
 yep! 
 Oh I want to see that in action! 🔥🔥 
 I published influence scores using the below two naddrs if you’d like to take a look and see if they would work for your purposes. The first one I just published, and the second one I published about a week ago. These are kind 39902; I still may change them to be a modified NIP-51 format. But it should be straightforward for you to extract the scores and use them as a filter.

njump.me/nostr:naddr1qqfkjmnxd36k2mnrv4fkxmmjv4e5c6tnwspzpef89h53f0fsza2ugwdc3e54nfpun5nxfqclpy79r6w8nxsk5yp0qvzqqqymmchc3qr4

njump.me/nostr:naddr1qqfkjmnxd36k2mnrv4fkxmmjv4e5c6tnwspzqppa7qyts3akd0uerhakj64vdztnan86fnklhpch8hme5n8kvm48qvzqqqymmckk9yzg 
 cool, i see it.  i tried to generate one for myself just now.. it did seem to get farther, then i went to test page 7 but the event it wants to publish does not have the scores in it.. (looks blank).  is that how you generated this one? 
 I made some changes locally on test page 7 to generate these reports, including setting it to publish only the top 1000 scores. I can push those today if you’d like to try it out. 
 is your hesitation to using nip51 list is just the score part?  what if the nip51 didn't include the scores just the list is named after a range of scores (top 1000 for example).  just thinking out loud here.. for my purposes I don't need the scores just the list of the pubkeys and currently can import from nip51 people lists.  I can also refresh the list, so say the top 1000 changes, I re-fetch that list and sync it.  (just like follows).  it also would be cool for clients to browse a feed from these lists. 
 No real hesitation — I could very easily do both formats. Or make it optional. I’ll go ahead and change it to NIP-51, top 1000, push changes and let you know when it’s done (hopefully within a few hours) 
 brainstorm.ninja is updated to export scores in NIP-51 format, top 1000 scores only, with title: Grapevine WoT Scores List. You can see my list at listr.lol 
 I tried it again just now.. I also tried wiping out my browser local storage first to see if that helps.. I still can't get it to show a list of the scores for me.. I get the first and second stuff loaded ok, it seems to complete.  But on the test page 7, now it just wants to publish an event with a single key tagged (my pubkey).

num pubkeys in local storage: 40851
num pubkeys included in event: 1
number of tags: 8
file size: 0.000002 MB
Publish button is active.

{} 
 also tried re-calculating the Wot and Influence scores, and I've been watching the console letting it complete all it's redux event stuff before clicking things, still no luck tho. 
 What does your settings page look like? https://i.nostr.build/M8i092Yw6b01YYDR.jpg  
 https://i.nostr.build/sQEue5fhjjD8aWgY.png 
 oh, is step 3 required?  I was thinking that was optional.. 
 Go ahead and give step 3 a try - it’s the simplest way to get some profiles that are more than 2 hops away. 
 But I see that you did turn the toggles all off afterwards, which is probably needed to keep from slowing down the score calculations. 
 yes, I started doing that (yesterday I just had it on the whole time) but then I saw the instructions on the page so i just toggle on and then off when i navigate away. 
 tried it with step 3, now that's all populated, did the re-calculation of Wot and Influence score, still same thing on the page7

num pubkeys in local storage: 42759
num pubkeys included in event: 1
number of tags: 8
file size: 0.000002 MB
Publish button is active. 
 What does your grapevine calculations page look like? https://i.nostr.build/V550enxIo46ZYFNH.jpg  
 "OH YEAH, LOOK AT THIS, FOLKS! I'M TALKIN' ABOUT THE MOST POWERFUL SETTINGS SCREEN I'VE EVER SEEN! IT'S LIKE A WORK OF ART, BRO! AND YOU KNOW WHAT REALLY MAKES MY DAY? SEEING ALL THOSE OPTIONS JUST WAITIN' TO BE CRUSHED BY MY MIGHTY MOUSE SKILLS! AND SPEAKING OF CRUSHIN', I JUST LOVE THE FEEL OF MY NOSE TINGLING WHEN I SMELL THAT FRESH, NEW-TECHNOLOGY AROMA! IT'S LIKE A DELICIOUS COMBINATION OF SILICON VALLEY AND SWEDISH STEEL, FOLKS! OH YEAH, THIS IS GONNA BE GOOD!" 
 same as yours.. https://i.nostr.build/98YGFuT7FbCSy8zW.png

should I try a different browser?  I could try FF.  (currently chromium with Nos2x) 
 "WOW, LOOK AT THAT! THE NEW CHROME BROWSER IS A REAL BEAUTY, FOLKS! I LOVE HOW IT'S PACKED WITH ALL THOSE CHROME CHROME CHROME CHROME... YOU GET THE IDEA! AND LET ME TELL YA, I'M HOOKED ON THIS NOSTR THING - IT'S LIKE A BREATH OF FRESH AIR IN THIS DIGITAL WORLD! SO FAR, SO GOOD, BROTHER!" 
 Yup, might be worth trying. I have only tested it with Alby, not nos2x. Perhaps it’s an event signing issue? Do you see any console messages? 
 ```
{"event":{"created_at":1723424859,"content":"","tags":[["P","tapestry"],["wordType","influenceScoresList"],["w","influenceScoresList"],["d","influenceScoresList"],["title","Grapevine WoT Scores List"],["description","a list of nostr users and their associated Grapevine WoT Scores as calculated by the Tapestry Protocol"],["c",""],["p","7cc328a08ddb2afdf9f9be77beff4c83489ff979721827d628a542f32a247c0e","","1"]],"kind":30000,"pubkey":"7cc328a08ddb2afdf9f9be77beff4c83489ff979721827d628a542f32a247c0e","id":"d11a85b5558a0b06e75629b93a024d544ac81733fd453f98204a1054d5ee76b0"}}
``` 
 I don't see anything that sticks out in the dev console... it just shows this event and that's it .. (and then the rejection when I reject it from nos2x) 
 The fact that you have one pubkey means that the function in question is being called. Hmm. 

I have an idea what it might be. Just made a minor edit to the function and pushed it. I’ll tell you when it’s live. 
 One pubkey in the tags field that is 
 I do see one error on the console prior to attempting to publish the list, it has a websocket error connecting to relayable..  but other than that, no other messages.  It prompts me for my pubkey, and I authorize it, then it pops up that mostly empty list.  Then when I click publish, same event.  Could it be a race condition when it's asking for my pubkey?  It shouldn't need to re-ask that really, since I was already signed in.. 
 I don’t think that should be it.

Change is live, tell me what you get now. 
 ok now it has a list! all the scores are NaN or null but it has a lot more ptags.  I tried publishing this one.. it said it published, just looking through the relays for it now 
 Ok progress! 

Try navigating to some profile pages and see what the influence score is. Should all be in the range between 0 and 1, mostly close to 1.

Or go to the table of all users (icon top right next to settings icon) and look at the scores there. 
 I can see your list on listr.lol 
 And on njump.me/nostr:naddr1qqfkjmnxd36k2mnrv4fkxmmjv4e5c6tnwsq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3q0npj3gydmv40m70ehemmal6vsdyfl7tewgvz043g54p0x23y0s8qxpqqqp6nqhgqxju 
 Oops, wrong url 

This should work:

https://njump.me/naddr1qqfkjmnxd36k2mnrv4fkxmmjv4e5c6tnwsq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3q0npj3gydmv40m70ehemmal6vsdyfl7tewgvz043g54p0x23y0s8qxpqqqp6nqhgqxju 
 Sweet!!! check it out https://i.nostr.build/0C5K2FOd2ZfthUiZ.png 
 WOOHOOO!!! 
 Although we still gotta get the scores fixed … those are probably the wrong 1000 pubkeys! 
 yeah haha!  this is cool, ya scores would be good.  I tried one more trick, giving nos2x automatic get-pubkey, still scores were NaN 
 Are they all NaN or null in the table? 
  https://i.nostr.build/D5446KiD2aJAblP7.jpg  
 Oh i just noticed this page, ok nice!  So the influence scores are *not all Nan in the profiles, when I search for 0 or 1, i find those.  so the event must be getting those NaNs in the first 1000.  and wot scores are there too.  they're all just integers, is that right? (except the NaNs), your screenshot shows float values..
https://i.nostr.build/gDycFefuEFG6PMxm.png 
 Ok cool, glad you found that! And looks like I’ve recreated the same error as you (see my other post).

DoS and WoT scores should be integers, but Influence, Average Scores, Certainty and Input should be float. A lot of influence scores will be either 1 (almost certainly not a bot/scam/bad actor; ie a “regular user”) or 0 (bad actor until proven otherwise). A lot of influence scores will be 0.9xxx, meaning probably not a regular user, but maybe less than 1 bc got dinged by a mute or two, or maybe just doesn’t have enough high quality follows yet to have achieved a score of 1.000 
 I just tried using a different profile on chrome and there is an error calculating the influence score — all are 0, except for my main profile which is NaN. Strange. I bet this is encountering the same error you’re getting. Maybe bc I had previously logged into chrome with my main profile? Some memory problem (I’m using redux) and it’s not being sufficiently cleared at logout, like maybe redux is showing two profiles labelled as logged in … Also I see an error calculating the certainty, which is a step in calculating the influence score, bc all the certainty values are NaN (except for the logged in user). 

I’ll have to dig in to see why that’s happening. Won’t be able to tonight though. In the meantime you could perhaps try several diff browsers — I’ve been using brave on macOS mostly and that calculates scores correctly for me. Or try a browser you haven’t used before for brainstorm. https://i.nostr.build/jijQxtDG2XnNQFk3.jpg  
 I see why you wanted the NIP-51 list — you already had NIP-51 imports working.

Perhaps I should build a control panel so you can decide who goes on the exported list, either top N or cutoff by some threshold. And I can add the DoS and WoT scores to the list — maybe optionally since that will increase file size. 
 yes, i have the UI already pulling lists, and it can sync them, "by name".  So if i was creating lists I'd probably use the same set of names, and replace them when I recalculate. 
 Once I figure out how to fix the NaN bug, maybe I’ll work on a control panel so you can better tailor the lists to your needs. Let me know if there’s any particular feature that you’d like to see! 
 One thing you can do: on the table, filter using multiple columns. Influence above 0.5, DoS less than 4, stuff like that. And top left of table shows how many profiles made it through your filter. Perhaps I could add a button to export the filtered table as you see it, as a nip-51 list … ? 
 ah, yes i see the filters now.  I applied the one you mentioned and my pubkey was the only match.  all good, yeah once i get some numbers flowing I'll have more an idea of what I would filter by.  curious how many thousands we're talking about etc.. 
 Usually I’ll end up with something like 35k downloaded, maybe 34k with a nonzero influence score. Anyone connected to you by follows will have a nonzero score, even if many many hops away 
 I think I’ve fixed the NaN bug - one of the variables used to calculate influence scores was not being updated properly. Log out and back in and should be fixed now. 
 sweet, running a download/calc cycle now 
 If it still doesn’t work, go to Grapevine Settings and make sure none of the parameters are NaN — I think that is what was causing the problem. Reset button at bottom should do the trick. 
 this is working good now! scores look legit and i published an updated list 
 WOO HOO!!!! 🔥 😃 
 Let me know if you want to increase the number of profiles per list. Or any other changes or features you want to see. 
 this is really, really cool, 🎇 ill get it going locally so i can play around w different filters or relays or see how to help. some really interesting numbers and i want to explore feeds of things like 'lowest influence >.006 <.1 is still over 10000 pubkeys for my calculation haha 
 Awesome! I think it’s going to be fun to think about what to do with scores in ranges like that. Your goal is to eliminate spam from your relays, which means prohibiting anyone with a score below some cutoff. But what is the cutoff that will best serve your purposes? Do you find out empirically? Pick a cutoff from first principles? Or use some other method? And what other data besides follows and mutes would you like to incorporate into the score? That’s the beauty of this method: it can synthesize data from multiple sources, and you can weight each source in whatever manner best suits your purpose. For example, I haven’t included zaps yet but might do that next. 
 it's interesting to me for the relays yes, but also as a nostr power user, I'm also interested in seeing new/different content from this context to switch up my feed.. I am going to load some more lists up and browse them with amethyst or gossip (both have easy list switching and outbox model).  i did that with the top 1000, it was very similar to my follows feed :)  I also will start publishing using a different relay list and maybe increase limits to 40k-50k and see how the clients perform when loading em. 
 Cool, makes sense. I def like the idea of using these scores for new/different content. Have you checked out the Content Discovery app on brainstorm? The system is set up to make recommendations in any context. I just need to add a button to export the lists. These lists should be much shorter but much more focused. Right now for example there are 4 users on the list for the “philosophy” context, generated bc people wrote nostrapedia articles on the topic of philosophy and then other trusted users liked those articles. 
 i'll check it out.  i experimented around, and currently melting gossip and amethyst with a list that's 3500 (.298mb).  It's chewing through it though, very interesting.  This size was about as large as I could get before hitting a problem somewhere with ndk.Publish, or the relay itself (although I set the relay to allow very large lists, so it should have worked to go up to 10k events and ~.9mb. 
 Trying out WoT scores now, looks like >25 wot for me, is about 3000 entries 
 From what you see on page 7, the last update def pushed. It’s as if a function didn’t get called that should have on page load. But the publish button should call it again. If you click publish, does anything happen? You should see a popup and also see a message in the console, both of which should show the event id. 
 yes, I did try clicking publish.  The event was the same (one pubkey, which is just my pubkey).  I didn't let it publish though, I tell nos2x to reject it and am just looking at the dev console and nos2x event json to confirm the potential contents.