Oddbean new post about | logout
 On the relay side, I think that is a feature for Citrine itself, since Amethyst is not supposed to be a relay. 
 I can always dream of a future with embedded relay functionality in a Nostr client, just like what you implemented for Tor. In my opinion, every client acting as a personal relay would be an awesome experiment for Nostr resilience and decentralisation. Citrine is almost there—I exposed it publicly over Tor and IPv6 for several weeks befored it was spammed into ooblivion —but it's not something that the average person will do unless it's part of a pre-configured build, unfortunately. 
 But then if you use 10 clients, you get 10 duplicated databases. It's not an efficient way to use nostr, especially if we start using more micro clients.  
 I get the microclient argument and certainly agree for folks who are deep into the Nostr ecosystem. However, in pratice, I only use Nostrudel and Highlighter on PC, and Amethyst on mobile. I would be happy for Nostrudel and Highlighter to write to my "Amethyst relay" and duplicate my notes to it and Haven, assuming my mobile has connectivity (I was already doing this with Citrine, but exposing Citrine to inbound traffic isn't the best idea yet).

What I'm trying to say is that it would be awesome if every Amethyst installation (and maybe every Damus installation), could optionally act as a personal relay. 1m+ relays are a lot harder to attack than a few centralised relays. Maybe what I'm really looking for is a "P2P Nostr" kind of experiment. 
 Why did they spam it to oblivion ? What's the reason they do it? Do they actively choose to spam that specific relay? Or did they just run scripts to  follow the path of least resistance and you unprepared to filter them? 
 I can only speculate, as I didn’t have any sort of observability on Citrine (this was before Citrine had its own log screen). Besides the spam, it also felt like a DDoS attempt—Citrine was handling a large number of metadata events, such as kind 0 and 10002. To be fair, I wrote several messages on Nostr about my Citrine + IPv6 experiment, including the fact that, due to some misconfigured test scripts, I had accidentally “self-spammed” my Citrine relay and It was surprisingly resilient, so I may have brought this upon myself.

However, this isn't the only reason I wouldn’t expose Citrine to the Internet as is today. Currently, it’s not using TLS OOB (which is understandable, as it wasn’t really intended to be publicly accessible, but it also means running an external https enabled reverse-proxy if you need encryption, which sorta defeats the purpose of a "portable" relay). I also had difficulty using Citrine’s built-in filters effectively.