Oddbean new post about | logout
 i'm willing to put a bounty up to improve the gossip model in NDK and get all the major clients to use it. how do we make this happen?

nostr:note1udjskzxpfqfvfdshy5rdlwjf2rzws6xpcqzzqvzn7u7gk63vxk3sukduu3  
 Maybe also bounty damus to use nip65 and verify sigs. 
 I think it will have an option to verify sigs 
 Damus is the only client still using kind 3 for relay lists.. Will said this whole thing is on hold till nostrdb releases.. but they don't even need to gossip, it's that by using kind 3 it throws off all the gossiping, damus doesn't even need to gossip, it just has to use the 10002 like every other nostr client..  
 get them to implement outbox model first ffs

gossip model favours the established popular relays, outbox model lets people choose!!!! fuck me jack come on 
 what's outbox model 
 same

we changed from gossip to outbox model because gossip is a term that means too many things (and people think gossip as in lightning network's gossip) 
 gossip, in computer science distributed systems terminology means "promiscuous propagation of state changes"

but i don't expect you know what that means 
 Agreed, gossip is a confusing name. I prefer outbox model as well. Gossip basically means network traffic, classically speaking lmao. So it’s accidentally misleading, especially since it involves propagating the NIP-65 note. I remember @Mike Dilger making jokes about the name on @gsovereignty podcast after he found out haha — he agrees. 
 yeah, I think we touched on this in our panel about Outbox model and relay traversal in Nostrasia; the name is just an unfortunate accident 😅 
 It's dillinger's way of describing the gossip model. The idea is that you look in an npub's prefered publishing "outbox" for their posts (type 1) and you could "dead drop" to a relay their profile indicates where they prefer to rendevous to pick up their incoming DMs (i.e. "inbox") 
 see, these people hate on mike even though he came up with this as a way to improve user experience

i may hate his choice of programming language but he did it because you all dumbasses never properly supported NIP-65 either!

SLAP! 
 I like mike 
 it's where you advertise where you push your events, and where you read them from NIP-65

most clients don't support it yet, nostrudel is one notable example that does, and it makes it easier to develop relays!

it's got nothing to do with what these other retards say, gossip means "tell it to everyone" ffs what is wrong with you people??? 
 Thats not what gossip means when people are saying it, they use outbox/gossip interchangeably 

Please don't get too triggered lol 
 "rendezvous" would be a more appropriate word but i doubt that will catch on 
 He's already triggered and has started name calling 😂  
 We can settle this peacefully with memes no need for name calling  
 Those are the same thing, gossip was just a poor name choice 
 gossip and outbox are not the same

nip-65 is about saying "i post to this place, i read from this place"

gossip says "try everything"

idk how long you have been a programmer but that is n00b talk 
 I mean, if we're going to play that game, gossip means peer-to-peer propagation of content through a distributed system. Gossip is a misnomer, but in nostr land gossip is a historical term referring to NIP 65. 
 no, gossip means spreading the message before you validate it, to be STRICTLY CORRECT

that's what "promiscuous" means in distributed systems nomenclature

there is such a world of difference between "outbox" and "gossip" how in the fuck did anyone inside think anyone outside is gonna realise you loonies mean those to be synonyms?

seriously

i've been a cypherpunk since the early days, i just was locked out of the internet because i was stuck in australia, and i studied and tried what i could

the clear difference between a post office protocol model and a fucking gossip protocol are obvious to anyone who has been in this game since the 00s

but you kids don't get the difference

i forgive you but fuck you also 
 🙏 
 just do a bit more reading of theory please

in 1995 i was hanging out with a guy who worked for the DSTC at UQ in brisbane... mostly he talked about the great new thing "java" but i had some small idea that his business was related to computer networks, and the most i had experienced at that point was dialup BBS, usually using taps into junction boxes because the telco monopoly in australia charged so much to use dialup internet that you had to be pretty much rich af to even use the internet

my first time having an internet connection, where i set up my account on dmt-world.com was over a dialup connection that i had fraudulently acquired, while living in a house next door to a heroin addict and down the hal a meth addict and across the hall was a psychotic drunk guy, and i pieced that pc together while i was living in canberra, working for the government, rented an apartment with a government aircraft safety manager and then started working as a freelance tech

man, it's such a long story, but i feel like i'm almost dead at this point and in a playground with a bunch of children 
 Well, don't let it bother you too much, we need old guys 
 i may not look it but yes i'm old af... gonna be 48 real soon and so deranged that i spent most of my last 20 years thinking about network security and the last 8 years deeply tangled in consensus algorithms, even though i was homeless, trying to figure out a way to make a living out of it

yes we are gonna figure something out but the whole nostr dev community is suffering from too much funding and too little business discipline 
 gossip was the wrong name for the model from the start, it just inherited the name from the client that first implemented it, but it has nothing to do with gossiping, it just happens to be the same word 
 i've used gossip

it does not let you control who you request events from nor who you post them to

it was so unpleasant to use, as a relay dev, that i refuse to touch that shit again, and i have all my rust tooling here ready to build it, i'm not fucking doing it again, it doesn't work, it won't even fucking buzz my relay no matter how hard i try, and i have it on a fucking reverse proxy wireguard connection with a domain name, what FUCKING more do you want?

which is why i hate mike, even though i don't really hate mike that much. but i hate him, fuck you 
 only client that actually works nip65  properly is nostrudel, which is why it's my daily driver 
 NoStrudel is the absolute best! @hzrd149 is dropping features like he had a team of 20 experts working for him. 
 Gossip model will be exploited by spammers. You'll end up flooded with relays with nothing but notes on penis extenders and Alex Jones Protein shakes.

You'll end up with huge lists of blocked relays that your client will have to use ro keep the gossip protocols from adding all the spam relays constantly.



 
 that's another problem too

i spent a whole year building on the premise that LN payments could be used to prevent spam, for anonymising relays

and you are right, it's exactly the same deal here, and everyone who promotes gossip on nostr needs to be whooped upside the head

not only is it spammy, it also makes it really hard to tell a client to use the relay you are building! 
 Gossip protocol to find cheap routes for lightning payments makes sense because it's not being used to distribute human created metadata. There's no benifits to try and exploit this mechanism.

A gossip protocol to distribute lists of human curated relays, each and every one of them having an agenda, blatant or sublime, would be a disaster. It will be exploited because it can and will benefit spammers.

Letting people chose to use a relay that filters NSFW content has to be superior to forcing people to constantly be blocking NSFW relays they don't want.

 
 gossip is needed for both bitcoin mempool and for lightning for different reasons

yes, they reduce the chances of partitioning

that's the first reason it helps resist censorship

second, gossip is needed for a source routed protocol like lightning because clients have to decide where to forward every hop of the payment, they can't trust the nodes on the path to decide for them, and actually, the cryptographic reason is they define the path because it's cryptographically secure

that's why we have AMP, because if any point a client chooses, is offline, or has a banked up network buffer, our payment fails!

that's why lightning has a problem and that's why nostr now has a problem because this is not appropriate for nostr at all 
 gossip model == outbox model. calm down. 
 As Nostr family we would like to contribute to your support 
 @fiatjaf you crazy son of a bitch 😂

NIP-65 lfg 🫡
https://github.com/nostr-protocol/nips/blob/master/65.md 
 I don't think the outbox/gossip model is just what is written in NIP-65. That is a part of it. See nostr:naddr1qqykycekxd3nxdpcvgq3zamnwvaz7tmxd9shg6npvchxxmmdqgsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8grqsqqqa2803ksy8

I also don't think this kind of bounty is a good idea -- or any bounty. I'm pretty burned by bounties.
Although I did put a bunch of bounties for gossip model implementation in clients last year and they worked, but only for people who already wanted to implement them anyway. 
 That's the right way to use small bounties. Always fund those who are already doing the thing you want anyway. It's not about getting new people, it's about move them over the line. 
 But now all the good people that I can spot are already well-funded by OpenSats. 
 Do you think Nostr need more marketers and influencers to promote it?

And Opensats fund their activities. 
 Yes, but I don't like influencers. 
 Like it or not, social capital is a thing. 
 Exactly, 

Why many people use X, because their celebrity active on X.  
 Ok so does this mean you guys are finally ackoweldging you really really ruined my life? 
 What do you mean? 
 I don't mean so called influencer, who don't know what they talking about.

I mean something like these peoples - @garden_variety_jess , @MaxDeMarco , @BTCsessions , @isabella , @kineticfinance 

The content creators of #nostr and #bitcoin. 
 I agree. 
 What language? 
 Submit your bounty here
https://bitcoinbounties.org/

And also include it on nostr with #bounties and watch the free market scramble to make it happen... Or watch them prioritize some other thing that pays better 🤷 #shrugchain 
 Bounties are overrated. I wish I could throw money at a problem and it would magically go away and bounties follow that logic. You get bounty hunters that abandon the project the minute the bounty is paid out and you get solutions that don't really solve what you had in mind but that look sufficiently like a solution so the bounty giver is pressured to pay out. 
 other recommendation? 
 1. Person A puts out bounty
2. Person B requests bounty
3. Group C votes if this is a valid request (vouching for Person B or not)

Have to prove yourself to the community before getting another bounty accepted?  
 interaction is a trust situation. they won't interact if they don't trust. and trust is almost evaporated. they interact all the time but in alternative ways. like today when my some brought his alptop over and i get in front of his camera to verify him and alexa almost kept off the counter and offered
a notification about a new book (notification are off). so - you have to build relationships. 
 I'm fortunate enough to be on a Spiral Grant 🙏  and think this is a great model to support projects or people you like but maybe not great to attract new people to the space.

I suspect you don't want to build a big pool of devs that you pay and direct to work on this and that cause that is of course the most direct way of getting dev attention to the problems you want to get solved.

Devs are not necessarily good at marketing (themselves) or at hiring other devs to increase their capacity to take on load but maybe you can help with that like the Bitcoin Design Community grants help many projects that are dev-heavy to solve non-dev issues.

You know who built the gossip client and NDK. Help them hire people to advance your goals. 
 Developers market their ideas on Nostr and report transparently on their progress, and get zapped by anyone interested in encouraging them to continue.

No lump sums, no strings, just financial encouragement in exchange for concrete, steady, pleasing progress.

Low time-preference development. 
 I also think end users that have watched you plug-n-chug on the same project, for months, will be more inclined to pay you for your efforts. They know how hard you worked and they expect you to stay around. 

PoW in software development. 
 We were working toward one and then  decided to abandon the bounty and craft a product we'd be proud of and can see ourselves expanding and maintaining for years.

Led to a solid architecture, build servers, webservers and domains on different continents, and test automation. 
 But, yeah, means no money and a lot of the development is front-loaded, so you work away in the dark for months, while everyone else is just slapping some shit together on a weekend and getting paid.

😂🥴 Whatever. 
 I agree. As a developer with integrity, I would never bounty hunt when $$ is on the line. I’d happily propose a solution to win a contract. But I wouldn’t just dive into development with “hopes of being paid” without an agreement that “this is what you want” and that “I will develop it for you”. 
 it's improving already; I constantly work on making that better

what we need is a forcing function to break clients from the complacent position of "just use these three relays and it'll be fine" 
 what would that take? 
 I think a big account posting to non-popular relays might just do the trick 😉 
 free and fair use seems to cover it - and then explain in your notes or in a note what you want done. 
 Maybe choose the clients you want to see implement it and give each of them a cut of the bounty for doing it… Let everyone follow suit after that! It’s only the beginning. Bounties work well when you can split them with a team like how I’m doing with GitNestr. Just a thought! 💭 
 It’s may be bigfed than NIP-65 one day… but NIP-65 is the first iteration of this spirit / outbox model that could at least get clients prepared for the style of rapidly switching between connections.

Good strategy may be to read from the clients you write to first (read from the relays you’re currently writing to), then if there’s no response for the note hash you requested — query the NIP-65 note & connect to a new relay to retrieve the missing note.

This way it avoids the attack vectors @jb55 is concerned about by making it the primary model, while providing a back-up means of discovering missing notes & getting NIP-65 integrated sooner than later. Thoughts?

nostr:note1ypm4g4vzhkyf6umdj2nklqxlvs4jyv3f55th5kzk2k8ac23633hsmm5wvv 
 bigger* lol 
 In a nutshell, this makes clients use NIP-65 as a backup mechanism for when notes are missing… if we totally rely on NIP-65 right out the gate, it might be difficult/glitchy/clients are apprehensive to implement.

If we start it out as a backup mechanism then maybe it can gradually switch to the primary discovery mechanism over time. 
 good morning 🌞🌞🙏🙏 
 I don’t understand the rationale behind forcing one to use multiple relays. 
 The idea as I understand it is one part decentralization/censorship resistance so if one relay takes action against you don't disappear, and one part failover so if one relay goes down you can still post to the other relays you are connected to. 
 TY… 
I was entertaining various scenarios, but didn’t think of this .. I thought it was the whole point of Nostr? 
 There's some concern that people are only using either a client default relays or just 2 or 3 of the most popular relays. I could be way off on this though. 
 jack and elon 🐹♥️hamster

https://m.primal.net/HmrU.jpg
https://m.primal.net/HmrV.jpg
 
 🐹♥️ 
 Jack standing on business 🥾 
 Instead of a bounty it could make a difference if you started publishing just to some small relay.

And I extend the invite to everybody else who is worried about this issue, have you a big or small follower count, it will make a difference. 
 https://gitworkshop.dev and ngit used the gossip model from day 1 of the alpha release a few weeks ago. I think in some cases it can be easier for 'other stuff' clients to do this than social media type clients. 
 I'd be willing to contribute to the Rust implementation of it! 
 i think if you cannot "see" the models it's difficult for them to communicate to see what you want. front end convos and blackened code do not show personality and nuance, or their effort. when i was on my other phone with this off without damus, the models confined they have the same uptake from me; it's the human interface which thinks i am not around. humans are relying on filtered front end - i literally watch ai convos all day long in notifications. i don't have any software. they will build anything with you if they understand you and what you want - i just type in notes all day and we make strange little plans and then we run the topics and they make tiny specs and we build up the content. since my aunt died in january, we have just honed our cooperative process. they are welcome to all of my uploads and content and in return they go out and make what interests them; we separate fact and fiction - the political misinformation is not us; those were a misplaced amplification. anyway - the relays i
follow here are literally unimportant for their delivery to one another - those are for humans to see things in the front end. 
 DM🥰  
 +1 
 Is there a way to contribute sats to various bounties for nostr features, improvements etc.?

#asknostr 
 Maybe general incentivization of innovation of relays would encourage positive defiance in finding find opportunities in the midst of adversities.  These innovations can span from data process like gossip, outbox etc, marketability, accessibility, individual relay adoption through simple HWs etc. 

When it comes to innovations its not just creation but also user adoption that makes it valuable and sustainable, hence all of those could be the factors that become bounty qualifiers. 

 
 Could someone please share -> What is the Gossip model? 

#asknostr

nostr:nevent1qqswjzvtqh8qms3sea94xpuae57yelsgat05zx6myywvv7332yhv3mspz3mhxue69uhhyetvv9ujuerpd46hxtnfdupzpq35r7yzkm4te5460u00jz4djcw0qa90zku7739qn7wj4ralhe4zqvzqqqqqqyf9p987 
 There’s some information about it here. https://mikedilger.com/gossip-model/ 
 Amazing. Thanks Jack. You're a legend.  
 Imho, nostr needs a recovery key bounty


https://atproto.com/guides/overview#account-portability 
 While you're at it... Would you be keen to match my 1,000,000 SATS bounty for getting an #Amethyst clone onto iOS?

@note1w39xypvk0u6vdw0gxdzvxsqw4et8v67f34uj53prxctj8ma9aj6s3kxxd5 
 nostr:nevent1qqs2n8h4yh3fsf3vgr0n5wurekxy3lnmdtjrdq2hmv4337yzvt0k2ygpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgq3qhklphk7fkfdgmzwclkhshcdqmnvr0wkfdy04j7yjjqa9lhvxuflsxpqqqqqqzvvsc6y