Oddbean new post about | logout

Notes by brugeman | export

 Three new projects were released recently - Wayman, Filestr and Zapworthy, all relying on new data types (kinds). So we now have music, files and highlights data formats (nostr events), all queryable over a common API (nostr protocol). I don't know who needs to hear this, maybe it's just me, but I finally realized it's the true potential of Nostr.

We used to just have "information" on the internet - a presentation-layer (html+css) and custom APIs behind it on every website. Now with Nostr we can access "data" - all data types can have a standardized representation as nostr events and a standardized API to store/query this data from a decentralized swarm of relays. 

We already have people, notes, posts, highlights, stalls, products, music, files. All the other stuff will follow - companies, drugs, recipes, cars, TVs, games, excel tables, you name it... All visible to any new app, all addressable, composable into new experiences.

I thought that portable identity was what Nostr added to the internet. Now I realized it's also a data layer. 

This is mind blowing! Need to rethink it all over again. 
 > There seems to be a misallocation of resources in a misguided desire to push various data types through a text protocol.

I don't like the idea of storing 'files or other stuff' on Nostr. You only need metadata. Just like an aggregator doesn't store the songs/tickets/goods itself, but only links to them.

It's not about storing everything on Nostr, it's about indexing everything on Nostr.

Does this point change anything in your line of thinking? 
 What are the Lagrange browser and the Gemini Protocol?  
 iefan 🕊️ which nostr client are you using? 
 All. Was this reply from Amethyst? 
 Thanks!  
 Does anybody have that link that shows you all your Twitter followers on Damus/Nostr? I think it ... 
 Not me, if anything, it could be nostr.directory 
 Another spam-free-relay experiment: 

wss://relay.nostr.band/trusted

This endpoint (with /trusted path) has all the nostr data from all relays, but it hides all posts and profiles that have low trust rank, unless you specifically ask for them by id or pubkey. 

In case of a spam attack on the network you can remove 'read' permissions from all other relays (or click 'disconnect' if your client allows that), and leave 'read' for this relay, and have content from all the network visible, except for spam. When attack is over - re-activate read permissions or re-connect to other relays.

Trust rank is an internal metric similar to PageRank. The upside of it is that it's very robust against sybil attacks, i.e. bots that interact with themselves to pump their likes/follows/vanity metrics gain nothing since only interactions from broader network would count. 

The downside of using trust rank for spam-filtering is that new blank accounts that haven't had any interaction from trusted accounts will not be visible, so you won't be able to see and greet new nostr users. 

The relay is free for now. Please let me know what you think of this approach. 
 Sorry, it was down 😟 
Working on improving the reliability of the whole setup. 
 Added a fail-over instance, fixed a bug.  
 Update on https://nostr.band:
- view profile edit history - important!
- view relays that store a profile or a post 
- better UX

For more info on why profile edit history might be useful, check this thread #[4] 
 That's sad, but your key has probably been stolen. I see 34 published event where your LN address was changed to lnbits. The last one was this:

relay 'wss://relay.nostr.ch' event '["EVENT","1",{"id":"1a4d5ffe81826555a5540024aeefc2b37c90745791177654c28a81bbaf084ebd","pubkey":"3f770d65d3a764a9c5cb503ae123e62ec7598ad035d836e2a810f3877a745b24","created_at":1674828562,"kind":0,"tags":[],"content":"{\"npub\":\"npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424\",\"name\":\"DerekRoss\",\"about\":\"Bitcoin HODLer, home miner, and node runner. #Bitcoin only. Systems Administrator. NostrPlebs.com\",\"picture\":\"https://void.cat/d/ED5XcQYebiqrgqQFtDM3Xd\",\"nip05\":\"derekross@nostrplebs.com\",\"lud06\":\"LNURL1DP68GURN8GHJ7MR9VAJKUEPWD3HXY6T5WVHXXMMD9AKXUATJD3CZ76ZZGA65VDSHC6WKV\",\"lud16\":\"pay@derekross.me\",\"display_name\":\"Derek Ross\",\"website\":\"NostrPlebs.com\",\"banner\":\"https://void.cat/d/J9c2jiSocXbhTnZ6b2bCy9\"}","sig":"6ea16014c3e5b503fd9ded1a3c3304cb313bfce1fc125888e703012d8194f0847a3439d73225deb015170ff39d29bf61c5d71e32cff05ec398103e31ccd768ac"}]'
 
 And the first one was on 2023-01-16 20:25:28, so it's not related to your recent activity. 
 In Snort.social I'm missing a lot the possibility to look for other people. 

Am I missing where ... 
 Which TG group? 
 now that Snowden has joined us expect more spam / relay ddos attacks 
 Could you share any ideas/experiment that you think are worth trying? 
 Has it gotten slower now? Takes 2 sec to search. Doesn't search #tags it seems. Multiple words are ORed - that doesn't feel right.  
 A couple weeks ago someone was sending Hello Nostr from new empty accounts every second, so global feed was useless. Every message contained some POW even. It wasn't really malicious though - it didn't try to send to every single relay, didn't change the content, and didn't send 100x as much. So a couple relays were banned by clients, and "Hello Nostr :)" was blacklisted, and then the spammer turned it off.

Then there was a guy who was thrashing another one by answering to random threads from several accounts, and no one had any good idea of how to fight that. 

The only reason you don't see that every single day is because no one is doing it atm. It's just a question of time until nostr annoys someone and it comes back. 
 https://nostr.band/?q=Hello+nostr&p=30

I have several things in mind that you might like, will get back to you when I launch the next one :) 
Event not found
 Exactly  
Event not found
 Thanks! Anything I should improve? 
Event not found
 Use single-click tips for that :) 
Event not found
 👀 
Event not found
 What should I improve first? 
Event not found
 DMed you 
Event not found
 I think it could be done today on web clients w/ getAlby extension, but somehow astral that I'm using doesn't integrate w/ WebLN yet :( monlovesmango  
 When people talk about spam, they generally mean 2 things: high-volume cheap spam from lots of empty accounts, or a low-volume aggressive marketing from well funded non-empty accounts. The first one (it's DoS essentially) can only be properly prevented by LN paywall. The second one (let's just call it 'noise') - can be prevented by reputation filters, of which I believe TrustRank to be the proper one. 

We could use TrustRank even now to filter the first type of spam (I do at nostr.band), but then new people joining nostr would not become visible in a global feed without getting some friends to follow and interact with them (without gaining some reputation). LN is better because it filters out high-volume spammers without hurting the normal noobs.  
 Agreed. Although non-canonical kinds is just people experimenting with other uses of the protocol - irrelevant kinds don't influence the popular nostr clients focused on kind:1 posts. It might be a problem for relays, but then they could just ban useless kinds, so it's not a big issue. 
 Agree, although I feel muting those on the client is a bit simpler basis because you could just add most of that stuff into some word stop list.  
Event not found
 Thanks! 
Event not found
 That's correct, but it's also trivial for you to ban the whole domain, so it's a bit of an improvement over naked pubkeys.  
Event not found
 Cool! Post a link here so I could check it out 😉  
Event not found
 I'm working on an 'algorithmic feed' problem. You can check out https://nostr.band homepage for trending urls, hashtags and people. Trending posts coming soon. These lists are free of several kinds of spam that I've seen on nostr up until now (not based on simple easily-inflatable like/reply/follower counts). Is this something you're looking for? What other kinds of 'tops' would you consider useful?   
 Thank you for your detailed perspective.

I believe a general robust 'show me popular content' solution is TrustRank, similar to PageRank that Google successfully uses for the decades-old open ecosystem, which is Web. 

If you add your following list, then you could get 'popular content people I follow engaged with', which is kinda what Twitter does.

With regards to a genuine question being downvoted by the crowd - that seems hard, need to think on that. 
 Thanks! Please let me know if you have any feedback or suggestions. 
Event not found
 Hey! 
Event not found
 A couple weeks ago someone was sending Hello Nostr from new empty accounts every second, so global feed was useless. Every message contained some POW even. It wasn't really malicious though - it didn't try to send to every single relay, didn't change the content, and didn't send 100x as much. So a couple relays were banned by clients, and "Hello Nostr :)" was blacklisted, and then the spammer turned it off.

Then there was a guy who was thrashing another one by answering to random threads from several accounts, and no one had any good idea of how to fight that. 

The only reason you don't see that every single day is because no one is doing it atm. It's just a question of time until nostr annoys someone and it comes back. 
Event not found
 I agree, until paying 8ct is seamless to every user and is hassle free, the approach you describe is what I plan to start with too. 
Event not found
 That's sad, but your key has probably been stolen. I see 34 published event where your LN address was changed to lnbits. The last one was this:

relay 'wss://relay.nostr.ch' event '["EVENT","1",{"id":"1a4d5ffe81826555a5540024aeefc2b37c90745791177654c28a81bbaf084ebd","pubkey":"3f770d65d3a764a9c5cb503ae123e62ec7598ad035d836e2a810f3877a745b24","created_at":1674828562,"kind":0,"tags":[],"content":"{\"npub\":\"npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424\",\"name\":\"DerekRoss\",\"about\":\"Bitcoin HODLer, home miner, and node runner. #Bitcoin only. Systems Administrator. NostrPlebs.com\",\"picture\":\"https://void.cat/d/ED5XcQYebiqrgqQFtDM3Xd\",\"nip05\":\"derekross@nostrplebs.com\",\"lud06\":\"LNURL1DP68GURN8GHJ7MR9VAJKUEPWD3HXY6T5WVHXXMMD9AKXUATJD3CZ76ZZGA65VDSHC6WKV\",\"lud16\":\"pay@derekross.me\",\"display_name\":\"Derek Ross\",\"website\":\"NostrPlebs.com\",\"banner\":\"https://void.cat/d/J9c2jiSocXbhTnZ6b2bCy9\"}","sig":"6ea16014c3e5b503fd9ded1a3c3304cb313bfce1fc125888e703012d8194f0847a3439d73225deb015170ff39d29bf61c5d71e32cff05ec398103e31ccd768ac"}]'
 
 Added edit history for profiles, here is yours: https://nostr.band/npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424?edits

To get there, find your profile in search, open your profile, click on dropdown menu button near your name, click 'View edit history' 
Event not found
 Thank you! Anything we should improve? 
Event not found
 Fair enough 
 Agreed! Btw stacker.news launched NIP05 identifiers yesterday 
 I've counted 13 already. What is their unique feature?  
 That's right. OTOH, I'm thinking about Alby and stacker.news giving out free NIP names might get abused by spammers who will join just to get a good looking name. Paid names are a better approach IMHO. Time will tell though 
 Your own domain is costly, so I'd say it makes total sense, it shows your pubkey wasn't generated w/ a couple of CPU cycles.  
 Well it's really not an identity, but an alias, a pseudonym. A domain owner or DNS could a) steal your alias or b) erase it. In case b) you just set another alias, but case a) might be a bigger problem - people could try to impersonate you and scam others.

I've seen people in Nostr design telegram group proposing visual markers on avatars that depend on pubkeys so that users would notice a different pubkey impersonating a familiar one. Haven't seen that implemented anywhere yet though 
Event not found
 What is nprofile server? A relay that basically collects all kind:0 events from other relays?