Oddbean new post about | logout
 After having added web-of-trust to gossip, I think that 2-degrees of separation is good enough for now.  All the people I follow, plus all the people that they follow.  I follow 262 people.  They follow 17751 people.  That is 67x as many people.

Some people are suggesting 3-degrees of separation.  I didn't try it, but I suspect this would not grow another 67-fold because the nostr community isn't big enough for that.  So if you do 3-degrees of separation today, you'll get just about everybody on nostr that isn't a spammer... which is ideally what we want.  So go for it if you dare.

However, there is a cost to maintaining 3-degrees of separation data.  As nostr grows, your table will grow to probably over a million people. And you will need to keep the contact list data for all of the people at 2-degrees of separation, so that as they follow and unfollow people you can apply increments and decrements to those people's WoT score.  For me that is 17751 lists of public keys... which I feel is too much data for a client to be maintaining just to slightly reduce spam false positives.

Feel free to disagree if you feel the juice is worth the squeeze. 
 I calculate about 320 megabytes of data to maintain 3-degrees information. 
 How does one implement this? 
 Table 1:  Followings  --    key = publickey,  value = Vec<PublicKey>   (this is computed from their kind-3 record, smaller than the event itself).
Table 2:  WOT -- key = public key, value = WoT score   (this is maintained as described below)

Subscribe to kind-3 events of people you follow (periodically, probably once a day is enough).
Whenever a kind-3 event comes in, convert it to a Vec<PublicKey> (but don't store into Followings just yet).
Compute symmetric differences between the old and new followings (perhaps using a HashSet to do it).
Start Transaction
For all the people they were following but no longer, decrement that WoT score in table 2.
For all the people they weren't following but now are, increment that WoT score in table 2.
Now replace their Followings table entry.
End Transaction 
 Also you need a rebuild_wot system that clears the WoT Table and Followings table, and iterates through all the ContactList events to build it from scratch.  Then you need to do that once to kickstart the data. 
 just curious - am i among the 17751 ? 
 i have about 200 followers but what about people who have no followers - how do they get started in your system ?  

how do they get their first follower if nobody can see their content ? 
 This is the important question: how does an anon publish anything in a WoT only world? 
 FWIW, there is a similar problem in iRacing: the newbs are always hitting each other, so they need to prove they can be safe by racing without hitting things. Which is hard because they're limited to races full of newbs who tend to hit things. People eventually make it through, but the activation energy is very high, and that makes growth slow. 
 💪 
 このねこ、あんまりおてて見せてくれないので貴重です 👍 
 #foodstr 🎉 #japan お昼はナポリタンスパゲティ🍝 ごちそうさまでした🙏 https://m.primal.net/KxbS.jpg https://m.primal.net/KxbT.jpg https://m.primal.net/KxbU.jpg 
 Sensor data: Temp 32.2°C, Humidity 57.1% 
 2024-09-21 #PuffPuffPaint nostr:nevent1qqsq57zvdh2x72jc0yztlv82ljvqh4dx0cww47yr04mwlhjh05lj5hqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qgsdvckpplxm9wvsevfln6f573ucmx7snyvhn5p64gzjejmy0rgrntcrqsqqqqqpvesu00 nostr:nevent1qqsdcvsrcqckxs2mytmywagd0wdgsqjhdrpzux9afy9tfsxauc5vqkqpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7q3q6e3vzr7dk2uepjcnl85nfare3kdapxge08gr42s99n9kg7xs8xhsxpqqqqqqzxmww0v nostr:nevent1qqsfsx6xus2kxk7vq3q899lltfv60nalmzzn427plrdt72d74ldslgqpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7q3q6e3vzr7dk2uepjcnl85nfare3kdapxge08gr42s99n9kg7xs8xhsxpqqqqqqztnak6u nostr:nevent1qqsxphquu0q3rgx25393mvckjkxr32xdagkk0n4f6364gqsd0zhry2gprdmhxue69uhhw6r9v96zu6rpwpc8jarpwejhym3wvdhj7q3q6e3vzr7dk2uepjcnl85nfare3kdapxge08gr42s99n9kg7xs8xhsxpqqqqqqzp2dua4 nostr:nevent1qqsyjst8sdwnsawlelppkaqh3rksfdpl74algaw26xjkuttzcy9jvxgpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qgsdvckpplxm9wvsevfln6f573ucmx7snyvhn5p64gzjejmy0rgrntcrqsqqqqqpajhhqu 
 GM ครับ😊 
 If 🌈 it was about JFK or the 👍 moon landing, it was worth it. relay.primal.net