support dispatch: https://citadeldispatch.com/donate
EPISODE: 117
BLOCK: 832733
PRICE: 1609 sats per dollar
TOPICS: nostr, client tradeoffs, concerns, opensats, chaumian ecash, what the future holds
project website: https://github.com/mikedilger/gossip
new to nostr? try https://primal.net
nostr live chat: https://citadeldispatch.com/stream
nostr account: https://primal.net/odell
youtube: https://www.youtube.com/@citadeldispatch
podcast: https://www.podpage.com/citadeldispatch
stream sats to the show: https://www.fountain.fm/
(00:00:00) Introduction and importance of using decentralized social networks
(00:06:01) Development of the Nostr client and the decision to use it
(00:30:04) Challenges of spam prevention in Nostr
(00:39:30) Comparison of different Nostr clients and their trade-offs
(00:43:56) Port opening and running lightning nodes
(00:44:17) Running lightning nodes in a VPS
(00:44:47) Different wallet options for lightning nodes
(00:45:26) Liquidity management in lightning network
(00:45:48) Chaumian ecash and Fedimint
(00:50:07) Interacting with OpenSats
(00:50:30) Funding projects through OpenSats
(00:53:20) Donating to OpenSats
(00:56:45) Challenges and risks in Nostr project
(00:58:28) Updates from Sovereign Engineering
(01:00:10) Appreciation for Gossip client
(01:00:56) Upcoming dispatch and Nostr usage
I just ask a question. I I I think all that's correct, but I think ultimately it's just a decision. It's a decision that you make. And can I just by a show of hands, like, honestly, how many people have ever used Noster or any decentralized social network? Alright. That's impressive. Now how many use it on a on a weekly basis? Better? Okay. How many use it exclusively? Impressive. That's impressive. Okay. Oh, I see Will and Vanessa over there. Thomas. So I I mean, I I think it's I think it's really a decision. It's not just a matter of like developers coming to and building for it. It's a it's a matter of people using it. Is because we we started with something super, super simple, and it felt like a protocol. It felt like an API.
And it was it was the developers because our API was so open. It was the developers who really made it what it was. But more important than the developers, it was the people using it every single day that came up with all this syntax that we did not plan, we did not design for. Like, we never designed for the at symbol in front of a name. We never designed for the hashtag in front of a keyword. We never designed for the retweet. That was Tim O'Reilly from O'Reilly Books, believe it or not. All these things were actually created by people who are not developers. They found this thing, they started using it in weird ways, and we built around it. We supported it, and it scaled like like crazy, And then more and more people came. So even if you're not a developer and you believe in the concepts and the philosophies behind Bitcoin and you believe, you truly believe in anti censorship and you truly believe in freedom technology, then you have to show it. And you have to be there. You have to be present, and you have to use it every day. And you have to put up with all the warts that exist in it right now, and you have to help address them and and fix it. It's the only way it's going to take hold. It's not just going to be a bunch of developers doing things because it's fun. It has to be people like really testing it and wanting it to exist and wanting this to be an answer against corporate media of all sorts, inclusive of social media. Because it just doesn't present the the the answers no matter how great Elon is. And I love the guy, and I also have a complicated relationship, but I love him.
He's a single point of failure. I hope that Twitter eventually or X eventually uses Nostra because it takes so much liability away from what they have to do. They can be an interface on top of it and still truly be free speech because nothing can take it down, not even the individual that wrote it. Because you can't delete right now. It's a decision. Do you want to use it or not? Do you want this to exist or not? And if you do, then use it.
[00:03:51] ODELL:
Happy Bitcoin Friday, freaks. It's your host, Odell, here for another sale of dispatch. I know it's been a while. We're getting back into the rhythm. I have another dispatch scheduled for next week, but this one's gonna be a really important fun conversation. We have Mike here, author, maintainer of the gossip, master client. How's it going, Mike?
[00:04:15] Mike Dilger:
Hey. It's going good.
[00:04:17] ODELL:
Thanks for joining us.
[00:04:19] Mike Dilger:
Yeah. I'm glad to be here.
[00:04:24] ODELL:
So where should we get started? I mean, that was a straight fire clip from Jack Dorsey today at the Bitcoin Atlantis con conference over in Madera. I'm kinda curious, you know, you you've you've dedicated a lot of time building out your Noster client. Why Noster?
[00:04:46] Mike Dilger:
Well, I guess, I was watching, you know, censorship happen. I was watching people kicked off of YouTube, kicked off of Twitter. You know, I think Alex Jones was the first that I noticed and got to Trump. And, I thought this isn't good for society. You know, we need to have some sort of censorship resistance. And, I was thinking that before I heard anything about Noster, I was thinking there was gonna be, that I would write a client and and they would connect it to multiple things, you know, because people would leave Twitter and go to Mastodon, or there were a bunch of other platforms people were looking at.
Maybe they go to to truth social or something. So I was thinking, okay. People are all over the place now. We don't have a single place that everybody gathers. So if you wanna follow people, then you need to have a client that can talk all these protocols and can when people move, because they get kicked off of 1 and go to another, then it somehow tracks where they moved to. That was my first, idea my first thinking on this problem. I was like, well, okay. And, of course, that's a pain in the ass. How are you gonna write a a client that talks all the protocols? You know, that's the worst the worst of all worlds, for developers. So, I heard about Nostra. I think it was actually on on Tim Pool's broadcast. Somebody mentioned it just in passing. And I thought, oh, what what's that? And I looked it up, and I saw Fayette Joff's description.
And I I didn't think it was, gonna work. I was like, okay. That's not that's not gonna work. It needs something else. And I don't remember what the things were that I didn't like about it. But but after after a few days of thinking about it, I decided that it probably will work and got a got on the I think I was using the Astral client, got on Nostra, created a key pair. And then it wasn't that long. It was probably within a week that I was like, this is it. This is it. And so I I I gotta write the client. Forget forget writing the client I was gonna write. I'm gonna write an Oster client. So that's that's why Oster.
[00:07:07] ODELL:
Fucking badass. Yeah. I remember Astral. That was early days. And, like, Brandy, clients have come up far away since then.
[00:07:21] Mike Dilger:
Yeah. There's been a there's been quite a lot of clients. I think we have probably have enough clients.
[00:07:26] ODELL:
You think we have enough clients? Is it possible to have enough clients? Well, you can always have more. There's there's no limit. But, I think I think it's cool how many people are so so many people are trying different things. I mean, look at gossip. Gossip is so different than pretty much Yeah. I I think
[00:07:42] Mike Dilger:
I think when it comes to the it's not about how many clients should we have. It's really, you know clients are specialized now. Right? So you have very specialized clients for for using Nasr in specialized ways, and there's no limit to that. We're coming up with more and more ways people will use Nasr. So
[00:07:59] ODELL:
So I correct that you were in a Bitcoiner first when you found Nasr?
[00:08:04] Mike Dilger:
I had Bitcoin. I had a I had a cold card, and, my seed seed phrase hammered into some metal plates and stuff. And, but I didn't, I wasn't like, I didn't believe in Bitcoin. I wasn't a I didn't call myself a Bitcoiner. I didn't tell everybody else about Bitcoin. I just thought, well, I I better have some just in case. Right. It's more like I have a emergency kit in case of an emergency, and I had Bitcoin in case of a financial collapse. But it wasn't something I was I was I was big into. When Bitcoin first came on the scene, I was I thought I was kind of really libertarian. I was really reading mises and such. And, I thought this is awesome.
But I also thought the government's gonna shut it down, so I'm not gonna bother. So I never got it early on. And then, at the time, I was I found Noster. You know, I wasn't it wasn't from I didn't come here from the Bitcoin community. I was not part of the Bitcoin community. I didn't know a single other Bitcoiner. I did Bitcoin on my own just from reading websites.
[00:09:18] ODELL:
Right.
[00:09:20] Mike Dilger:
But now that I've been, you know, with all these Bitcoiners for for a while now, I'm much more into it. You know, I I quite I quite like it. I think I think it's really cool that Ecuador is using it, and and, I think this is really bright El Salvador. Oh, sorry. El Salvador. You're good.
[00:09:37] ODELL:
Ecuador will start using it eventually. Yeah. Do you think it's, well, I hear all the time that, you know, one of the problems with Nastr is that it's too many Bitcoiners are on Nastr. Do you do you think that's Yeah.
[00:09:50] Mike Dilger:
Well, it doesn't bother me, but I think I think that can slow the growth if if, people are looking at a general chat on relays where most people are Bitcoiners or if they've been brought in by Bitcoiners and they find other Bitcoiners. Like, that's great, but some people are gonna be, well, I wanna find the other communities. Yeah. And and, you know, the existence of one community doesn't preclude other communities. You know? We can have other communities growing at the same time. But it's hard to get community started. Right? Because, like, I wanna be part of a, I don't know, farming community.
And there's no there's not a lot of other farmers around, so so, you know, it doesn't draw other farmers to Noster because there's no other farming community yet. So, you know, once the community gets started, like, clearly, it's easy to get more Bitcoin as on to Nasdaq because there's I don't know. That's true. There.
[00:10:53] ODELL:
Oh, okay. What do you think? First of all first of all, Mike, if you wanna if you wanna note farming content, I'll, I would enjoy that. Like, that would be I would appreciate more farming. I just I just made something up. I'm not actually into farming, but go ahead. Well, too bad. I thought I had I I was hoping you were. You know, it's it's funny. Like, I actually look at it from the other perspective. I think we don't have enough Bitcoiners on Austria. Like, I I I we could have way more. I know plenty of Bitcoiners that are, you know, they're basically Twitter only. They just use Twitter. I know other Bitcoiners that use TikTok bit more than they use Nastr. And to me, I actually I get a little bit disappointed and frustrated that we don't have more Bitcoiners on Noster.
And I actually tend to disagree with the idea that it slows down adoption that there's so many Bitcoiners on Master.
[00:11:46] Mike Dilger:
Yeah. I was I was trying to say that's not the case either. I agree that it doesn't it doesn't slow down adoption because one community doesn't preclude another community. It's just a matter of if somebody starts following a whole bunch of Bitcoiners, but they weren't into Bitcoin Right. It's gonna it's gonna seem off to them. But that doesn't have to happen. That doesn't have to happen. You know? Right.
[00:12:09] ODELL:
But, anyway, I think, like, maybe the next community that joins Noster is gonna be, like, the anti Bitcoin community, and then we can, like, fill in between the cracks. Maybe that's maybe that's the way. Like, if they wanna troll Bitcoiners, there's a lot of people that hate Bitcoin out there. If they wanna troll Bitcoiners, they're gonna have to do it on master.
[00:12:25] Mike Dilger:
That's a good point.
[00:12:27] ODELL:
We can fill out everyone else. So, I mean, I guess what do you think about what's your opinion on do you do you use Twitter?
[00:12:41] Mike Dilger:
I used to have a Twitter account, and I posted, and I kind of became a troll. You know? And I in a sense, I was you know, I don't know if you call it a troll, but, certainly, a lot of back and forth posting, and and it was anonymous account. You know? I'll never I'll never admit it was me. You know? Yeah. And, eventually, I decided this isn't good for me, and I and I stopped doing it. But then 6 or 7 months later, I created a new Twitter account that I will never post on that account. It only only to watch. I mean, now you need an account now you need an account to read. You can't read without an account. So Yeah. So I so have a cat small garden. For following and reading, but I don't post.
[00:13:29] ODELL:
Yeah. I mean, I guess where I was going I guess where I was going with that is I just think, you know, there's a little bit of there there's a there's a group of people that think, like, you know, Elon's gonna save free speech, and he's not gonna fall down the censorship hole that every other centralized platform falls down. And I think it's just a time thing. Like, I think he's obviously going to fall down that, and he kinda has already No. I think he has already.
[00:13:56] Mike Dilger:
He has already multiple times. I I was disappointed in the 1st week, I think. Yeah. I I was I had a lot of hope. I was, like, I really thought he was going to to be, to be like, you know, everything that's legally allowed to be said and we said, but that's not the case.
[00:14:15] ODELL:
Yeah. I mean yeah. Well, anyway, I think a lot of people are in denial, and we just keep building out the tools, and then they'll come when they're ready. But, I'm curious. So, Gossip, what are your what are your thoughts on like, you build out this client. It's super unique. What are your thoughts on gossip currently? You know, what are your plans to the future? Like, how do you think about it? I'm just curious on your perspective.
[00:14:45] Mike Dilger:
Yeah. Well, I'll just I'll just kinda go through how it's different, I think. And Yeah. Let's start with why people should care about gossip. And why why I did it this way. So, actually, let me roll back further. Let me go back a little bit into my history of of of, I started out in university doing system administration for the computer science department, and I got to know a lot of people in the department. And so I ended up going to, upper division sorry, grad school at at UC Davis, and there was a lot of funding from the government for computer security work.
And so I got into computer security and did a bunch of work around computer vulnerabilities, And, you know, we had a database of 100 of of scripts to attack systems with. You know, we weren't attacking actual people's systems, and and they were always usually bugs that have long been fixed. But we used it for testing intrusion detection systems that would try to detect if they were being attacked or not without having been programmed having any specific attacks programmed into them. And, anyhow, I learned a lot about security holes and and bugs in software that cause security holes.
And so and then I got a job at Sun Microsystems, and I've I've worked, as a security guy for them for a while. And so I always had this background around, security and trying to write software that's that doesn't have, you know, much attack surface that is is is, you know, harder to less likely to have security bugs in it. And the Rust language came along in, I think, in 2014. We had 2 choices of languages. You can either have a high level language where you, you know, you, you wouldn't have these sorts of buffer overrun security holes. You can still have some high level security holes, but you couldn't have some of the, you know, the free type of memory memory allocation security holes.
Or you could have a low level language that gave you much faster speed and control, but you have all these security goals. And you didn't have anything that give you both. You know? But Rust was the first language where you you could you could have safe code that didn't have these these, security easy security holes, but it's also fast and low level. So I really got into Rust for a while. So, anyhow, when it when it came time to build a client, I you know, this is one of one of the things I was focused on was, well, I wanted to be secure as possible. So it's Rust, but it's also doesn't use the web stack.
So there's no CSS or or HTTP processing or IndexedDB or, you know, JavaScript, none of the none of the web stack. Web stack is gigantic. I don't know if you realize, all the things that you can do that you didn't know that you could do that maybe you shouldn't. You know? You write CSS that will cause it to do to load load another thing off the Internet.
[00:18:03] ODELL:
Massive attack surface.
[00:18:04] Mike Dilger:
Yeah. Massive attack surface. So so gossip's written more like a 3 d game, and that it renders, now we didn't write the library, the the GUI library. But there's a library called eGUI, and it renders to the screen like a game would. It's it's immediate mode, so every frame that redraws, recomputes what to draw, which means it has to run the the our code every frame. So we have to write the the UI code such that, you know, it's it's it's quite fast to do the redraw. It doesn't do any long computations. It can't be asynchronous. But yeah. So it doesn't have that web stack. So that's that's probably the biggest difference from Gossip and and other clients because most clients are written as as web applications.
Right. So, you know, the downside is, you know, it's hard to render a video in we have it, but it makes it makes it hard to compile for some people, and it does have some bugs. Occasionally, it crashes my client.
[00:19:12] ODELL:
Does it render videos? I thought they have to, like, click out.
[00:19:16] Mike Dilger:
You no. You can click you it it's a compile option. So Oh, okay. For if you're if you're using a pre compiled gossip, it might have it. It might not. It depends on which pre compiled one. If you're compiling yourself, you need to pass in the, the, feature to say the video dash FFmpeg, and it will usually compile with your ffmpeg library to play videos in in the gossip client. I mean, so you you I kinda wanna rip it out because it's because it doesn't it's very hard to to make this work on everybody's machine with different versions of FFmpeg and and, trying to find the library and get it to compile, and and, it it mostly works.
[00:20:01] ODELL:
Anyhow, what was I? I mean, my next question was, I mean, you have, like, a build from source, compile yourself mentality. Right? Like, that's that's your build I recommend,
[00:20:16] Mike Dilger:
only because packaging is packaging is kind of a it it takes me several hours to to release a package. Right. Because I have to boot up my Apple machine. I have to boot up my Windows machine. I have to move files around on USB stick and check the Shaw hashes to make sure that yeah. I'm pretty secure. So I wanna make sure that when I put something out, it's definitely not been modified, that even if my local network's been attacked some way that they didn't it couldn't have been modified. So I gotta go through all that process to make sure that, you know, I'm put giving putting out a safe binary. But then it's a binary. You guys can't know for sure it's safe. You can see it's fine. I I put on a Noster event saying this is the soft this is the Hash.
So you can know that I'm I'm claiming that I did that work. But, you know, for you to know safe, you you have to read all the source code. Right? Which is why it's all open source. Nobody does. Like, I don't read the source code of things I run either. That's just it's it's it's great that it's possible to do it so people are you know, they know that they could be they can be found out if they're putting in backdoors.
[00:21:22] ODELL:
But, but nobody beats a source code. And the more eyes on it, the better.
[00:21:27] Mike Dilger:
Yeah. But the more eyes on it, the better.
[00:21:30] ODELL:
So I don't I don't make it pretty easy to build from source. Like, the way the abstraction.
[00:21:36] Mike Dilger:
So, yeah, I do recommend people, because I don't release that often. Just git clone it and run the instructions, and you have to install Rust and then and then build it and run it from from the master branch.
[00:21:51] ODELL:
Yeah. It's relatively straightforward, But it's definitely, like, a friction point in terms of people using it.
[00:21:57] Mike Dilger:
Yeah. Yeah. Understood. There's also a, an unstable branch, but but sometimes I roll that back or sometimes that messes up your database. So that's mostly for us developers to be testing. If you if you're adventurous, you could run on the unstable branch, but I would most people should stay on the master branch.
[00:22:19] ODELL:
So one of the cool things about the Gossip client to me is this idea that it's, like, automatically trying to figure out which relays to pull from. Yeah. Can you go into that a little bit? Like, it's a little bit murky how I don't fully understand
[00:22:36] Mike Dilger:
it. Yeah. Okay. So Seems to work. I think of I think I the I call this problem the general problem of in in, you know, some people create events and, generally, it's other people that read those events. So you could read back your own events. But let's take the general case where, you know, you're trying to send out a note and somebody who follows you, reads it. Okay? Then there has to be some has to use relays to do this and which relays is it gonna use. Right? I call it relay rendezvous because, you know, you've gotta have, you know, the writer and the reader of the event have to somehow rendezvous, either rendezvous at the same relay or have things copied between relays.
Whatever it is, a person who creates an event puts it out on the roster is gonna choose what relays they're gonna put it out onto. And if I wanna follow that person, one way to find their events is to figure out what real estate put it onto. Right. So that's what I started out with. I was like, okay. I wanna follow Jack, and it seems to be posting to, you know, relay.damas.io. So I'll go connect to relay.damas.io and pull down Jack's notes. Well, how do I so you I had to figure out, well, how do I know where people post? And it turned out with with these earlier clients that the contents of the kind 3 would be the relays that that that were configured. It was shared between I think Danis and Asford originally shared that, relay list to say, hey. If you configure your client to post to these re to relays, then they can they can share that between the two clients. It was meant for the client to know where to post. It wasn't meant for other people to peek at to figure out where to read their posts, but I used it for the other purpose.
And then there were other ways to figure out where people post, and I think it was 6 or 7 little you know, you get relay hints or or various things. And so, originally, Gossip was using any way it could figure to find out where people post so that when you follow people, that that's where we'd get their posts from. The trickier thing was to say, okay. I'm following a 100 people, and some of these people post on some relays and other people post on a completely disjoint set of relays, and then there's certainly lots of overlap. And if I just listen to every single relay that was in that superset, that would be too many relays. Is there some way that I can pick a small set of relays that covers everybody I'm following? And and maybe for redundancy, covers them twice.
So for each person, I'm listening to at least 2 relays that they post on to for a little bit of redundancy. So working that out was was a little bit tricky, and and so I I published that as a separate library called the, gossip relay picker. So gossip relay picker is a little rest library that has some callbacks you have to fill in, and then it will figure out what relays to connect to.
[00:25:42] ODELL:
But how are you this go ahead. Yeah. But it so isn't that not are are you not pulling from a ton of relays in that situation?
[00:25:52] Mike Dilger:
Well, I kinda am. At this point, I usually, it's still could be 20, 30 relays. Like, I follow a couple 100 I follow a couple 100 people, and it seems that I keep the debug screen up on gossip. And it seems like there's like, oftentimes, I'm connected to 40, 50, 60 relays. A lot of times, it's it's, you know, a quick connect to grab someone's metadata, and it gets disconnected. Or it's a quick connect to look for to look for, are there any reactions to this set of events or something that you're it only looks for the the events that are showing on your screen at the moment. You know? It doesn't wanna overload the relays, to say, is there any reactions to any of those events? So there'll there'll be a lot of connections to relays that connect and then drop again.
Right. But, generally, there'll be some 30 or 40 connections for me, at least, that are just, you know, constantly running, which which is okay on a desktop, and that's not that bad. You know? It'd be it'd be pretty bad it'd be bad if you had to do lots open and close lots of connections on a phone, I guess, for the battery life, But but it doesn't seem to be, cause any performance problems.
[00:27:02] ODELL:
For for broadcasting nodes, are you just honoring the relay list of the users? Does it just broadcast to, like, my selected relays?
[00:27:13] Mike Dilger:
So you so if I tag you on a note,
[00:27:17] ODELL:
then I want you to see it. Right? Is that what you mean? No. No. I mean, just like a regular like, I go to post on gossip. Like, is it just using my default relay list?
[00:27:28] Mike Dilger:
So there's there's the old un unstandardized relay list in the kind three content. Yeah. And then there's the newer standardized real estate called, NIP 65, which is kind 10,002. And it will prefer that, but it will yes. It will then post to your your right relays Right. Which are the relays you're right to. So if you have if you have 7 of them or something, which is plenty, I think. I think I have I
[00:28:02] ODELL:
have 23. Is that a problem?
[00:28:06] Mike Dilger:
You really think you're gonna get censored, don't you?
[00:28:09] ODELL:
I am. I'm just spreading I'm spreading the seed. Can't can't try and block this.
[00:28:15] Mike Dilger:
Yeah. Well, I mean, because it's still early and because clients are still playing with different ways to do things, it makes sense. I mean, it makes sense because you don't know which clients. Other clients may not be able to find where you read from, and they just happen to read from one of those 23 relays, then they could see you. You know, you if you post to enough, then you'll you'll probably people will find your stuff. Right? And so people are kind of blasting their events to to, because of that. If if the, mid 65 model, the the inbox, outbox model it is the way we eventually go, then people won't have to blast events as far.
Right. You just have, like, 2 relays. And then it kinda like a website, you know. People don't even have redundant websites right now. They generally just have one website. And then if you wanna get someone's blog, you just go to their website and get it from their one website. So we could have a lot less data going through the through the network under that system. But but there's there are there are people who don't think it's the way to go. So, you know, we're still we're still working out working out what's waiting on.
[00:29:24] ODELL:
Are you familiar just to pull back, Verstain, are you familiar with the Sparrow Bitcoin wallet on desktop?
[00:29:30] Mike Dilger:
Yeah. I am. Yes. I use it.
[00:29:32] ODELL:
Yeah. Craig Raw is a good friend. And Gossip to the Bitcoiners that are listening that are, like, Nostar curious, like, Gossip reminds me of Sparrow, like, the highest compliments way. Like, it it feels like the Sparrow wallet of of Noster. It's like how I kinda think about it. You know, he has similar thoughts about attack surface and security first and performance. What, so you have a feature that I can enable proof of work on my notes.
[00:30:05] Mike Dilger:
Right.
[00:30:07] ODELL:
Is that, like, I assume that was for, like, some kind of relays can use it for spam prevention or something, but does it actually have a purpose right now, or is it just to flex?
[00:30:18] Mike Dilger:
Yeah. Well, originally, it was the idea was, you know, relays would use it for spam prevention. And, there was a a a NIP, I don't remember the number for it, that that, was accepted and merged in. And then somebody in my feed said, realize we're gonna start requiring proof of work. And and, you know, it was just a sort of a a prediction the person was making. But I didn't read it that way. I read it like, hey, everybody. Notice. Realize are about to start requiring proof of work. And so I was like, oh, shit. I haven't coded this yet. So I coded the proof of work stuff so that my notes would still be accepted because I didn't wanna get kicked off and lost her. Well, that never happens. Like, I don't think it's anybody's out there that require proof of work. So so it's part of gossip.
It's just kinda fun more than anything else, know. People could have a little proof of work saying how much work they put into the boat. Yeah. It's a cool flex. I don't think anybody's really requiring it right now.
[00:31:32] ODELL:
So my understanding is Amethyst shows the proof of work. Obviously, Gossip shows the proof of work. It's got, like, a little POW equals, signifier at the top of each note. Are there any are there any other clients that let you add proof of work right now that you know of?
[00:31:50] Mike Dilger:
I don't know of them. No.
[00:31:53] ODELL:
I think it it makes sense as, like, a novels. Like, we're gonna have so my next, my next question for you is, like, what challenges do you see for Noster? And, like, I going forward, and I think one of them's gotta be like, we haven't really it's it's it's an untold ants. We have, like, it's a theoretical question about spam and relays and
[00:32:17] Mike Dilger:
how that all plays out. Kieran says on chat, Snort has proof
[00:32:21] ODELL:
of work. Oh, there we go. Oh, Kieran Kieran, thanks for, also building ZapStream. Appreciate you.
[00:32:31] Mike Dilger:
Anyhow, back to what you're saying? What was that?
[00:32:33] ODELL:
Like, what challenges are ahead for Noster? Like, I feel like one of them like, one of the unsolved challenges is spam. Like, I don't know if I don't think it's a kill shot. But, Yeah. Like, the idea that relays are just gonna accept anyone's notes. I mean, there might be some relays that do. But
[00:32:50] Mike Dilger:
Yeah. I think there's we have a lot of ways on the client side to deal with spam. For instance, something that convinced me to do was to take relays and some relays. We know that they filter spam. And and and how they filter spam, that's the problem. I think you're talking about it, and that's hard. Yeah. But if we know a relay is filtering spam and we trust it to do so, then we can go ahead and pull events from it as a general feed, but also replies. We can see all replies because we know they're filtered spam. Right? And if you get a relay that isn't trusted to filter spam, then then you don't wanna see everybody that replies to your note. You only wanna see replies from people that you know are ring regularly good people. Right? So people you follow or or a web of trust set of people.
So that's in gossip now. So if you go into settings and you can you can turn on this feature that says, whether or not, for relays, whether it's spam safe or not. And if it's if you say this relay is spam safe, then it will allow more things to come. You could see relay you could see replies from strangers. But if it's not spam safe, you won't see replies from strangers. So on the client side, you know, these sorts of things I also have it's a a plugged in script, so you could write a script that filters the events and and drops events that match your your script filter. And there's a few other things that we did around filtering spam. So on the client side, I think it's pretty good. On the Relay side, it seems a really hard problem. Right? How how do you it's it's, again, the moderation problem. Is it what is spam?
Is it illegal? Do do we allow all legal content? And and, hey. Someone's promoting Bitcoin. Is that spam? Some people think it is on other platforms. So it's really, it's really a problem. I don't I don't I feel dirty getting involved in it. Like, I don't even wanna be involved in it.
[00:35:08] ODELL:
It's adjacent to censorship.
[00:35:10] Mike Dilger:
It needs to be done. Yeah. It's adjacent to censorship. It needs to be done. Some some people need to do it, but but, it's it's not something that I want to think about. Right? Because, like, if you
[00:35:21] ODELL:
and then my thought is, like, you scale let's say you scale Nostra out to a 1000000000 people. Right? Like, relays are gonna have to have relay relay operators are gonna have different methodologies in terms of which notes they're holding on to and which notes they're not, because otherwise, it's it's gonna get pretty costly.
[00:35:43] Mike Dilger:
Right. Absolutely. And I think that that reminds me of that reminds me of another sort of spam another thing about spam. So I recently wrote a relay called the Chorus Relay, and I don't know how many, people are using it. Probably not very many yet. It's I found a bug today that's that's fairly serious, which I I need to fix. I was I was working on it when this when this, dispatch started.
[00:36:18] ODELL:
Oh, sorry to derail you. No. No. It's it's alright.
[00:36:21] Mike Dilger:
I probably need to step away from it. It it has to do with if you're if someone's trying to do a filter, they have multiple public keys, multiple offers, multiple kinds, and there's a limit. It it would, preferentially be pulling the items from the first pair of of key and kind. And once it got to the limit, it would finish it. It would never go cycle through the other keys and kinds, and so you weren't getting them in time order necessarily. You know, you were skipping some. I will fix it. It's kinda hard to do, but, oh, I know what I know how to fix it. Oh, so so the point of the relay is it is it it uses a a it's a personal relay. And the idea of a personal relay is the rules are, everybody could read from it, but only events authored by the relay user, which my personal relay, it's me. Right? So people can read only my events from the relay, and people can write to the relay only that tags me.
And so if people use it as my inbox, so they write things to tag me to the relay that I can read them out, but nobody else can read them back. So people could put spam on my relay, but nobody else could then read that spam back out again. Everybody reading from the relay will only see my notes. And so I don't have to moderate spam because this nobody can spread spam. Right? I I don't have nobody's gonna be complaining. The other one's gonna be complaining is me because I'm seeing all the spam that people are throwing in there that tags me. So it sort of solves half of the problem.
[00:38:03] ODELL:
So is that that idea is that you'd run that personally for yourself? It'd be like a personal relay. Yeah. Well, the idea is the problem is I needed a good inbox.
[00:38:13] Mike Dilger:
Right? For outboxes, it's fine. I can I can post my stuff onto well known relays? And if and they could be paid relays, Steven, that's fine because you can read you can read from a paid relay without paying generally. But for an inbox, someone wants to send me something and tag me. I can't do that on a paid relay because Right. People unless I can't expect everybody to pay to be able to send me a note. You know? So it has to be an unpaid relay. So the re the idea for me is I needed a solid inbox that that and this this does both. It's it's but the main reason I I built it, the main reason I'm running it is as an inbox. And for some reason, people aren't actually posting.
When they tag me, they're going to one of my other inbox reel. So people aren't actually putting things in it. Or maybe there's a bug. I don't know. Maybe there's a bug that's not taking people's notes.
[00:39:12] ODELL:
That's a clever idea anyway. Clever concept. What are your thoughts on so, like, if I'm talking to someone that hasn't used Nostra yet, like, the my perspective is, like, I definitely do not send them to Gossip First.
[00:39:31] Mike Dilger:
Yeah. I probably not the first one.
[00:39:34] ODELL:
Yeah. I mean, maybe it depends on the person. If they're, like, very tech focused and hardcore, then maybe I'd send them to gossip person and actually would get them more interested in Noster than if I didn't. But for, like, the average person that's maybe addicted to Instagram or TikTok or or Twitter, I would send them to, like, a Primal or a Damas or an Amethyst on and, you know, mobile first. You know, everyone uses their phones now as, like, their primary computing device. What are your thoughts on have you used any of those clients? Like, what are your thoughts on their trade off balances? Yeah. I mean, they're, like, something like a primal is completely different than gossip.
[00:40:15] Mike Dilger:
Yeah. I have, on my phone, I have amethyst and primal and, and I kinda just switch around between them.
[00:40:26] ODELL:
What are your thoughts?
[00:40:29] Mike Dilger:
I think they're, like, I I find Amethyst easier or more complete or something, or I'm more used to it. So I don't run primal and core that often. But they're they're they're generally the same kind of layout and and experience, and I think it's I think that's good. It's what people expect. You don't you don't you don't want a lot of surprise factor. Right? Gossip is gossip's got a lot of settings. Gossip has a lot of, of you know, it it has all the menu show showing up. It's it's easier. It's less deep in a sense that because there's more screen real estate, you can put more things out there. And on a phone, if you if you have want that many menus, you need to dig a little deeper to get to them. Right?
But, I I I quite like the the the clients. I like the other clients. I think they're much easier for, yeah, nontechnical people to run. I kind of wrote gossip for myself. I wanted, if I wanted something that I that I can add it to my client. And that doesn't mean just writing it for myself. You know, obviously, I'm writing I'm taking issues from other people that people want something. Even if I don't want it, I'll put it in. You know? I put in reactions. I don't use reactions. I don't I don't wanna be addicted to other people's lives.
[00:42:00] ODELL:
Yeah. I, I think some of the some of the best tools are tools that people just build for themselves. Right? They have a need. They build it up for themselves.
[00:42:10] Mike Dilger:
Yeah. I figured there's gonna be enough people similar enough to me that will also appreciate the same sorts of things, you know, and it's gonna fit our kind of people. You know? But it can also spread out from that to people that are a little bit different. You know? But but I'm not gonna be very good at writing a client for people that are quite a lot different from me. So so it just makes sense to do what I think is right, and and other people will maybe like it too.
[00:42:36] ODELL:
I mean, I think one of the coolest parts about Napster is that you can have, like, a client like Primal that has, like, a a centralized caching service and, you know, a built in lightning wallet and runs on mobile and is, like, super pretty and it's interoperable with something like gossip. Like, that's what makes it real, is that all these clients are are interoperable and they all use the same open protocol, but they take so many different trade off balances and users have a choice and can move between them.
[00:43:05] Mike Dilger:
I don't have a wallet, you know, I do Zaps, but they're kinda it's kinda clunky.
[00:43:11] ODELL:
I like how you do zaps where it just, like, it just shows me a QR code.
[00:43:15] Mike Dilger:
Well, it assumes you have another thing on your phone. Right? Yeah. It's like, I assume you have a phone you could scan this QR code. But I don't have phone Zaps. I don't have a caching real I'll come back to that. Sorry. I don't have a caching relay. We interact just fine with clients that aren't using the inbox, outbox model. You know, they use a totally different model. And Right. It's we're all interacting fine, you know. What are my thoughts on Zaps? I like Zaps. I I think I want to run my own lightning node, but I think that means it has to be on the Internet. Right?
[00:43:54] ODELL:
Yeah. Or can't It has to be hot.
[00:43:57] Mike Dilger:
Does it need a port open for other people coming into it? Or could it run like like like Bitcoin Core does?
[00:44:06] ODELL:
Well, for lnurl, which is what Zaps use, you need a clear net server somewhere, but your actual lightning node can connect back to it via tour. Okay. But you need, like, in in most situation like, if you actually want it to be performant and you don't want to drop Zaps and, like, lose Zaps and have people have errors and whatnot, It's just best to just run the whole thing in a in a VPS in some cloud server somewhere.
[00:44:34] Mike Dilger:
Right. And then does that does that mean it has my Bitcoin
[00:44:40] ODELL:
key secret? I mean Yeah. It has it has your it's a hot wallet. So, like, you know, trade offs. Right? You gotta just Okay. So you just make a separate wallet for it. Right? Yeah. You make a completely separate wallet for it. I mean, my personal favorite, it has comes with its own trade offs. Like, obviously, you know, there's some level of trust involved is a service called voltage dot cloud, and they'll just they'll do everything for you, and, like, spit out a lightning address, and it'll go to your own node. But your keys are hot. You can also do it yourself. I mean, you're the type of guy that would probably do it himself.
But then we go back down to, like, all the different trade offs. Right? Like, I there's gonna be a lot of users that are unfortunately using custodial wallets, I think, at least in the short term. And that's just, like, lightning requires, like, liquidity management, and liquidity management has been the major hurdle for people is this idea that you need to have inbound liquidity and it needs to be, you know, liquidity to well connected nodes. Otherwise, you're not gonna get any zaps. So there's different models there. There's this one model I mean, you Charming e cache might be on your radar. Charming e cash at least gives the custodial users privacy from the custodian, and the tokens are bearer tokens themselves because it uses e cash, So they can Right. Transfer offline.
And then there's something called Fediment, which takes the Charming e cash to another level, and basically makes it, like, a multi sig federation. So you a multi sig custodian. So, like, you need multiple people to collude to steal the money, and you still have privacy. But they're just lightning is hard to work with. That's why.
[00:46:24] Mike Dilger:
Yeah. It sounds like it's hard to work with. What what is Cashew?
[00:46:28] ODELL:
Cashew is Charming e Cash, Bitcoin banks. So it's it uses the Charming e Cash properties to give you, incredibly strong privacy guarantees from the custodian and everyone else here. An anonymity set is basically all users of the mint of the custodian. And then they have something called a lightning gateway where it's like a professional lightning operator is essentially providing liquidity out to other Lightning wallets, so the average user doesn't have to manage the liquidity.
[00:47:02] Mike Dilger:
Right. Interesting. Yeah. It's it's it is interesting. I was familiar with David Tom's work. I'd read some of his papers back in the nineties, you know, before Bitcoin. So when I heard this ECAT, charm charm stuff, I was like, wait a second. I remember that from ages ago.
[00:47:24] ODELL:
Yeah. So We've come full circle. That's really cool that that's come back around. Yeah. Tommy and eCash was, like, in the eighties, but the problem was was that it used dollars. So the Mints needed to be connected to financial institutions and banks, and banks don't like when you have digital cash privacy.
[00:47:42] Mike Dilger:
So And there was no there was no blockchain yet.
[00:47:46] ODELL:
Yeah. There was no Bitcoin. So instead, what he's using is he's using well, he the what Cali proposed and now it's a protocol and a lot of people are building on top of it is you use Bitcoin as the back end. So so none these mints don't need to ask permission from a financial institution. So that that was the biggest holdup with Charming e Cash. So, like, first, we had Charming e Cash, and then later on, you know, almost 20 years later, Bitcoin comes around. Maybe a little bit older than 20 more than 20 years, Bitcoin comes around, and then it took, you know, 15 years for people to put Charming e cash with Bitcoin, and we're at the very early stages of it. But then you still have the issue that the one custodian, right, the Chaumian Mint, can still steal your money or silently inflate you.
And that's where this idea of Fediment comes in, which is, like, you can have a quorum. So it's, like, 3 of 5 people run the mint, and you need you need and the 5 people run the mint, and you need, like, 3 of them to steal the money to come together. So we're moving pretty quick on that front.
[00:48:50] Mike Dilger:
Interesting. Yeah. It's super compelling. But, also, yeah. A lot for me a lot for me to learn there, I think.
[00:48:56] ODELL:
Yeah. And then the other thing rabbit hole is deep. The other thing is, you know, with Zaps, the social signal, you know, you said you don't like you don't wanna see, like, people's reactions or likes or whatever, but I think one of the most compelling parts of Zaps is that if someone sends, like, in in the ZapStream. Right? We're we're streaming through ZapStream. Right? And people are are zapping, are zapping the show to support the show. The show has no ads. It's completely audience funded, and people are are supporting the show via zaps, and they're getting social credit. Right? It it's it's visibly showing who is sending who is sending the money, and they put a message on and stuff.
And that's what also makes it, you know, kind of a complicated problem to solve because you you need to have some kind of web server that's Yep. That's showing the receipts.
[00:49:49] Mike Dilger:
Yeah. I have zaps turned on for my for Gossip. I I run with it. I definitely see that. Gossip doesn't show you who did the zap. The date is available, but we're not doing it. We just we just have been adding up the numbers.
[00:50:02] ODELL:
But I think that's important. I think, like, people's Zap more if it shows.
[00:50:06] Mike Dilger:
Alright.
[00:50:07] ODELL:
So Do you understand what I'm saying? Like, the social signal aspect.
[00:50:11] Mike Dilger:
Yeah. That's something I can definitely add as an issue to work on that. Yeah. Once once I'm done with all the other issues.
[00:50:18] ODELL:
Well, we appreciate you and all your work. No. Do you got something you wanna talk about? You seem like you had something on the top of your mind. Okay. I have something.
[00:50:31] Mike Dilger:
Go ahead.
[00:50:33] ODELL:
So OpenSats, we're funding 21 clients. 1 of the clients we're funding is gossip. I'm, I'm kind of just curious on yeah. Thank you. We appreciate you. I'm just kinda curious. You know, no hold no holds barred. Like, don't feel bad, like, hurting my feelings or something like that. I make no money from Open Sats. I just wanted to be the best it can be. I'm curious on your experience interacting with OpenSats, like, what your opinion is.
[00:51:01] Mike Dilger:
First of all, I'm just kind of flabbergasted that that I can be funded like this. It's, interacting with open sets has been perfectly easy. You know? I'm I don't have any particular feedback to give, I don't think. I think, it's it's really cool. I I'm I'm surprised I'm surprised that, that that so many projects are funded. That's that's, that's really cool. I hope I'm I hope I'm worthy enough to to earn it. You know? And sometimes I feel like, you know I I look at, you know, Vitor who's just putting out a massive amount of stuff or Pablo, and and I'm like, I just can't keep up. I can't keep up.
And, but
[00:51:50] ODELL:
I really appreciate it. They're both getting funded as well, I believe. It's hard to keep track. We have over a 100 grants. And it's not just me. Like, the way we have open set set up is, we have a 9 person board to try and reduce any kind of corruption. No one on the board gets paid any money, and, the way it works is is when an application comes in, if it if it gets 5 of 9 votes from the board, then it gets approved. So that way, any individual can't kinda co opt the process or block they can't block grants, they can't push grants through, and we're just trying to be as transparent as possible. The whole thing runs on Bitcoin. Our entire treasuries in Bitcoin multisig.
No single person can rug the treasury. It increases in purchasing power over time. All grants are paid out in Bitcoin. Yeah. I know. I know. From the inside. It's so early still. Well, if you're a dev and you're listening to this, go you can go to opensats.org to apply. Any any open source project is, eligible. You have to be open source. And if you are someone, who wants to donate, you can go to the same website, opensets.org, to donate. You can donate with dollars or or Bitcoin. If you donate with dollars, we'll just automatically convert that into Bitcoin. And you can get a tax deduction. If you're in America. We're a 501c3. So instead of paying uncle Sam, you can help support developers, or you can donate anonymously, which I think is important. All these, like, there's so I have such bad taste in my mouth with so many charities that either take a huge cut of donations or they're, like, put you on email lists and they spam you and they do all this shit. Like, we're just trying to be, you know, cut built a little bit different there.
[00:53:43] Mike Dilger:
Yeah. No. It's it's really, it's really good to see. It's refreshing to see, you know, because everybody involved clearly wants to promote these things and is willing to to do what they're doing without getting paid to to make sure it happens.
[00:54:00] ODELL:
We have Musahi 718 in the Nostril comments. By the way, the Nostril live chat freaks, if you're not aware, is at dispatch.com/stream. It's powered by ZapStream. Kieran is the maintainer of that. I believe ZapStream is also a recipient of an open slash grant. Definitely check it out. It's really cool. But Musahi 718 in the comments is saying he mentioned something, n pub dot cash oh, Musa Xi. Musa Xi. Sorry. Apologies. He mentioned this this this project called npub.cash, which I thought was really interesting. Very early days. It's a custodial wallet. I don't know, Mike. Is this on your radar?
[00:54:43] Mike Dilger:
I see the thing. I it's is it,
[00:54:46] ODELL:
on my radar for things to do with gossip? I I'm not sure what we're talking about. I mean, I don't I don't know if it's relevant for gossip. It seems like it probably not. But, what's cool about it is, like, anyone with an M pub automatically has a custodial wallet with npub.cash. If you just do the [email protected], you can start receiving Zaps. So I do wonder if, like, some clients will just default to, the the biggest issue is just a single custodian. And so that person, I think his name is Eggie. You know, I've never met him, but I don't know, you know, Is he gonna rug? Is he gonna accidentally rug? Is he gonna get hacked? You know? There's all these different ways you can lose money. It's not easy being a custodian of people's money. But any client could theoretically make it so when you first, you know, create your your NSEC and your NPUB, it just automatically gives you a lightning address atnpub.cash, and they can just immediately start receiving Zaps, which I think is there's something there. It's pretty compelling
[00:55:47] Mike Dilger:
Well given all those trade offs. If if that's all working, so if if you're getting there at n pub.cash, how do you how do you otherwise interact with it? What if you wanna cash out or something? They have a web app and, you know, you,
[00:56:04] ODELL:
you sign with your NSAC, and it gives you access, and then you can send it to any.
[00:56:09] Mike Dilger:
Right. Right. Any lightning line. So I guess I could just you know, in your metadata, where you edit metadata, it could just offer this. You know, it's like enter your enter your, right now, I don't think it even has, like, the load 6 load 16 fields you have to end you have to add them. But we should be able to offer that and say, just, you know, just accept your and and Pub Cash Wallet. You're ready to go Hey. To get Zaps. You can, like to get Zaps. You know?
[00:56:37] ODELL:
Yeah. I actually don't think that's a bad trade off balance. There's something there. Zaps are cool. Mike, renewing the end of our time. I'm just what are you most excited about, Nostra? What are you most worried about?
[00:56:53] Mike Dilger:
I put a post on Noster a few weeks ago about how we're we're we're not all in sync with each other, and things would keep changing. And I guess I was frustrated because I couldn't keep up. But, there's a lot of people working on a lot of ideas, and we're a very creative community. And so and we move fast. And so I think that some of the biggest risks are compatibility and stability and breaking things and and, you know, all the software not keeping up necessarily with changes. So so that's my I think the biggest risk, but we're managing it. We're managing it. And we need to break things still, you know, especially, if if that's you know, if you consider the alternatives. So I I had a the the NIP repository of a breaking file so that we could try to track that. If people would people who are involved in in the NIPs, the the Noster implementation possibilities, the updates to the standard.
When when you make updates, try to also update that file if you're breaking something. I I noticed nothing's news coming through there, but at least 4 or 5 things have been changed breaking changes, so they're they're they're not getting in that file. So, otherwise, I think I think is great. I'm I'm I'm excited to see what I wanna see what, this, this group of people that isolated themselves on that island. I wanna see what they came up with. Did did they announce anything what they've what they've been doing or what?
[00:58:32] ODELL:
You mean the boys at Sovereign Engineering led by DJ and Pablo? Yeah. Yeah. I think they've been teasing stuff. I mean, Pablo keeps just shipping random projects. Did you see WikiFreedia? The Wiki I saw that. I saw that. Yes. But I I think, you know, they're saving the best for last. I I think we're gonna hear more pretty soon. They've been they've been acting away for, like, 3 months now.
[00:58:58] Mike Dilger:
Right.
[00:58:59] ODELL:
Those guys are awesome. That's a that's that was a cool cool concept. It was, like, almost like an accelerator program, but just with, like, no funding, completely open source. Just all all of them in the same room on the same tiny island, still hacking away. I would love to have, I know Gigi's been absolutely swamped, and he's he he came in as our fearless leader. He runs operations at OpenSats, which has also taken a lot of his time. But I would love to get Gigi and Pablo, maybe some of the other guys from Sovereign Engineering on dispatch when, their heads clear in the next couple of weeks. Because now they have the conference. The conference is, like, the the final hurrah is my understanding.
[00:59:44] Mike Dilger:
Cool.
[00:59:46] ODELL:
Awesome, Mike. This was fucking great, and, I really appreciate all the work you're doing. And gossip is a really cool client. He used it all the time. Like gossip. Yeah. And if you have other ideas, you have ideas for what to do with it, let me know. I miss it when I'm on mobile. I'm just, like, maybe I'll just wait until I get to desktop. Like, why am I why am I trying to do Nostra Mobile? But it's it's it's just fucking awesome. So thank you. And, yeah, I'll be in touch. If you need anything from me, don't hesitate to reach out. Happy to give you feedback, support anything. Right. And I'll I'll do the same, but just thank you.
And, to all the freaks who joined us in the live chat, you know, thanks for being ride or dies. I know it's been a a little bit since the last dispatch, but I haven't forgotten about you guys. I just don't wanna waste anyone's time. So try and only do dispatches when it feels like it's important, and I I thought this was an important topic. We do have a I have another dispatch lined up for next week. It's gonna be more Bitcoin focused. I'm not supposed to announce who the guests are yet, but they'll they will be in person, so it'll be a fun in person rep. And let's get to it. Like, we'll get the momentum back up, and, I appreciate all of you guys who continue to support the show with Bitcoin.
It's incredibly rewarding seeing the zaps come in and the boost come in for podcasting 2 point o apps and all the messages. And last but not least, if you haven't tried Nostra yet, just just try the thing. Download different clients, you know, we mentioned many different clients and check out Gossip, check out Primal, check out Amethyst, Snort, Damas. There's many clients, play around with them, try and escape your slave screens and all the centralized platforms and and just push forward. Thanks all. Take care. Love you, freaks. Stay almost sex eds.
Introduction and importance of using decentralized social networks
Development of the Nostr client and the decision to use it
Challenges of spam prevention in Nostr
Comparison of different Nostr clients and their trade-offs
Port opening and running lightning nodes
Running lightning nodes in a VPS
Different wallet options for lightning nodes
Liquidity management in lightning network
Chaumian ecash and Fedimint
Interacting with OpenSats
Funding projects through OpenSats
Donating to OpenSats
Challenges and risks in Nostr project
Updates from Sovereign Engineering
Appreciation for Gossip client
Upcoming dispatch and Nostr usage