If in the future you receive a note from me like this, how would you react?
"After some deliberation I have decided not to host your content on my relay. You are free to repost your content onto other relays. Your subscription fee of 0 sats will be fully refunded once you provide a bitcoin or lightning address. Considering that content on nostr is generally mirrored, it has already been deleted from my relay."
I'm just wondering (as I write relay management) if the relay should send this kind of message automatically to anybody that has their pubkey banned via relay management. Seems like the right thing to do.
Understood. I've never banned anybody and don't expect to, but I am writing moderation tools for chorus so I want to think through how chorus should deal with this. I'll make it require a reason and include the reason in the notice.
Nostr provides censorship resistance via replication. You use multiple relays and hope they don't all ban you at once. But there is no way we can force a relay to not censor.
Relay operators will censor, almost all of them will remove spammy posts and CSAM.
I have never censored anyone and I don't plan to (because I don't operate a relay that needs it given it is not public access). But I develop the chorus relay and I'm writing the moderation code, and so I thought it would be useful to get community feedback on what that 'banning' process looks like. Sending the banned person a notification seems right to me, including a reason, and a way to download their data.
Nostr provides censorship resistance through replication. You use multiple relays. If stuff is taken off one of those relays you are not censored, you just have 1 fewer replication points. At that point you go add another relay to your relay list.
I am not suggesting censorship, nor am I promoting it. I have no intention of sending anybody such a message. But I develop the chorus relay, and some operators will censor stuff, and I wanted to add code to make sure that when this does happen at least the person being censored finds out about it.
Wow! I just got a "fatal error in execution unit" bug in my CPU that rebooted my machine and displayed the error in UEFI after reboot (but so quickly I coudln't read it all).
Computer is not running hot, has over-the-top cooling, is not overclocked, was not doing anything at the time (not compiling).
AMD Ryzen 9 5900X 12-Core Processor.
The screens went blank and then a short while later "beep" it was rebooting.
GOSSIP USERS: If you run off of master branch, you should pull and update now. Then go read your inbox over the last few weeks. There was a serious bug that failed to load notes that should have been in your inbox. I apologize for any inconvenience.
Now remove the atmosphere, add 30 mps wind speed, add huge amounts of radiation from space, add toxic perchlorates to the soil, remove all water entirely, and put it 225 million kilometers up into space. That is where Elon Musk wants to go. What a nutter.
I guess I'm a contrarian when I say: Even after a massive global thermonuclear war, Earth will still be FAR more habitable than Mars even with tax men and cluster munitions or tank crews. If you have to dig underground on Mars, you could dig underground on Earth and probably avoid all the tax men, cluster munitions and tank crews just as well. If half as much money was poured into surviving post-holocaust perhaps underground on Earth, I think that would be money better spent.
If you mean postgres without custom configuration, absolutely. But postgres can run entirely in memory via mmap just like LMDB does.
Nonetheless I find it too heavyweight to configure and manage whereas LMDB is just compiled in, doesn't need the multiple-client stuff, the SQL parsing, the query planner, etc... if you code that stuff into your client, which can be done when the queries are not too numerous or complex.
So yeah I like LMDB better for this use case, but my brother the postgres core dev insists postgres can do key-value, nosql, all-in-memory, etc, just as good as the other databses. I say "there there little brother, I'm sure it's real good."
I remember when it came out in 2011 or so, people were agahst and in awe of how fast it was.. like this was impossible. And some smart developers went digging to try to find the "problem" because it must be doing something wrong to get that speed. And what they discovered was that it was simply using several really smart techniques in ways people hadn't put together before, like copy-on-write, b+ trees, mmap returning direct pointers to the data instead of copying it, etc.
I also think it is probably at or very near the maximum theoretical performance.
Of course unlike you, I don't utilize that performance on my relay. wss://chorus.mikedilger.com:444/ is currently only serving 15 connections.
Because of reflections and a few invalid keys at the very top, it is only about half that.
So closer to 57896044618658097711785492504343953926634992332820282019728792003956564819968
Has anyone else noticed that people who call you expect you to answer within just a few rings? I'm always running to get my phone and it stops ringing before it gets there. Annoying. Let it ring at least 6 times ffs. I am never going to carry my phone on my body at all times.
I do.
Because we can all get very judgemental about people and races/genetics, my evidence comes from dogs. There is a game called Schutzhund that includes a part where a german shepherd bites the handlers (heavily wrapped) arm and doesn't let go. My german shepherd bitch descends from a Schutzhund champion. And unlike any dog I've ever known, if I wrap a towel around my arm she wants to bite my arm. I never taught her that. Uncanny.
Also, when we walk down the valley, she goes to the opposite side. She tought me to do this... so if we flush any animals either way they run, one of us can catch them (well I can't but she doesn't know this). That was inborn, nobody taught her, and I didn't even think of it, she taught me. I raised her from a pup.
So yes we all have natural talents. Different ones too.
What he is pleading guilty to at least is what he did. He doesn't have to lie about it. He did disseminate classified information. That's traditionally been (and is constitutionally) legal.
This is very true. We are not programming PDP-11s anymore. I think compilers are far far better now though so we can still kinda pretend that we are, as long as we are aware of 2 or 3 footguns that compilers aren't really going to be able to save us from, things like cache coherency, stack versus heap, core pinning, context switching, the costs of data copies across threads, malloc speed, ... ok well actually maybe there are more footguns than I was thinking 'cause I'm just getting started.
Yes I think we should have an event kind that allows somebody to cryptographically bind an IP address and port (SocketAddr) to a relay's keypair. But we would need:
1) Relays to have keypairs
2) Nostr to reference relays by keypair instead of by url
3) A means of distributing the binding event (because of the chicken-and-egg problem) maybe just blast them, or maybe a DHT.
It's a great idea for nostr2, so nostr2 won't be dependent on DNS and shoudn't need to be dependent on SSL certificates issued by CAs that nobody really trusts anyways.
There are a lot of relay implementations and yes some aren't being maintained.
@fiatjaf has four! khatru, pyramid, relay29, relayer.
@Alex Gleason 🐍 ditto,
My chorus
@mleku replicatr
@scsibug nostr-rs-relay
@Doug Hoyte strfry
@Cameri's nostream
You remind me of the really sweet guys from the planet Krikkit who just happen to want to kill everybody. They just couldn't cope with the fact that they weren't alone in the universe, like you cannot cope with this... shall I say "abomination"?
https://www.hhgproject.org/entries/krikkit.html
I probably don't post enough about my ongoing nostr work.
gossip: finishing up stuff for a release that will include new NIP17/NIP44/NIP59 DMs, feed "load more" is now loading a fixed count of events, a lot less relay chatter, and a lot of things that make gossip better but are harder to describe.
chorus: upgraded dependent crates (big changes there), I/O byte counts and bandwidth are now accurate (they didn't used to include the bytes within TLS headers), allows kind 10050, no longer complains about DM kinds in REQ when no kinds are specified in a filter, and I'm currently working on the Management API (https://github.com/nostr-protocol/nips/pull/1325)
relay-tester: added tests for ephemeral events, public submission of relay lists and DM relay lists, sending OK after event, and find by multiple tags. That's 59 tests (and I have 54 more planned)
I will guess. I might be wrong.
The West I will define as Western Europe, extended to it's close allies.
The United States broke away from Britian but re-established ties during the World Wars. So the US and Western Europe became close again. Also, the US subsumed Japan and made it a vassal. So Japan is part of the West
South America came from Portugual and Spain, but didn't get involved in the World Wars (maybe?) and so it remains independent from the military ties that bind the rest. So the West has come to be a name for the allies of WW2.
I guess we don't talk much about South America in our history of WW2 because we are racist.
As for Japan, it is Far East I guess. But in a lot of contexts it groups well with the rest of the West.
Popularity is sometimes a proxy for quality. In a busy world manytimes we just turn to the popular choice thinking it is probably popular because it is the best.
None of us are immune. I probably put too much weight on this metric when choosing rust libraries to rely on.
nostr:nevent1qqs92h979dptsrzsa8dvvs0a5en003sr96gy2lhrdru0zswsv4uaxecppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7z3hnfu
Yes. I pay taxes to both countries. But there is a double tax treaty and provisions in the US tax code (foreign earned income exclusion) that means that I don't actually pay more taxes and essentially (so far) all my taxes have gone to NZ and the US tax bill has been $0 for a long time now. But I still have to fill out the damn paperwork!
Sorry for the delay replying, there was an inbox bug in gossip.
I still have nightmares that I missed so many classes in one subject that I'm going to fail it. Or that I forgot to finish some paperwork and so I got realy close but never quite got my degree.
Still 85/15 at best and that's with a flock of sheep. But I buy coffee, rice, wheat, pulses dry in bulk mail order 5kg-20kg at a time, but from a soulless food distributor (except the wheat)
I'm using a small personal relay, wss://chorus.mikedilger.com:444/
- how did you discover them? I created it. I wrote the software.
- are they with people you know IRL? Yes I know myself well enough at least.
- what do you like about using a smaller relay? Total control, helps me debug my client
- what if anything would you change or improve? I'm not sure right now it's pretty stable, but as soon as I think of it I will improve it.
I wrote the chorus relay https://github.com/mikedilger/chorus which uses techniques similar to strfry to offer crazy performance, but with some extra techniques Doug didn't use to make the performance even crazier fast. But I don't actually know if it is actually faster than strfry since nobody has run performance testing to find out (you know what they say about best laid plans and also about dry-labbing... I can't claim anything since I don't actually know).
But chorus can be configured as a personal relay (doesn't allow events that come in to be immediately read back by others, so it can't be responsible for spam or illegal content, making your life easier) or a regular relay. I use mine as a personal relay and moderate content (so it can be read back out) and use it as both an INBOX and an OUTBOX (and DMs now too).
Yes, gossip is my main project, a desktop client. Chorus helps me to improve gossip since I can clearly see and take to heart what is happening on both sides of a nostr connection.
Part of me is telling me to get out the brush cutter and finish cleaning up the yard. But a significant other part of me is telling me to be lazy and stay on the computer.... and these thoughts went through my head:
Being fat is an evolutionary adaptation to food scarcity. So is being lazy. By being lazy you conserve energy. Don't feel like your fat lazy body reflects some kind of moral failing. You were born fat and lazy for a good reason which just doesn't happen to make sense anymore in the modern food-rich world. If your ancestors weren't fat and lazy, you likely wouldn't even exist!
Samoans and Hawai'ians can be quite fat. Being fat was a huge (pun intended) advantage for sea-faring people. If the ship runs out of food, the fat people are the likely survivors. If you get separated from your boat and float for days, fat people float better, are better insulated against hypothermia, and can last longer having more energy. Ocean travel doesn't require much running or load bearing activities. I can imagine a long history of accidents, storms, and ya know all the shit that life throws at you, and in many of these cases the fatter Samoans and Hawai'ians lived to tell the tale, and more to the point lived to have kids.
Fat shaming doesn't work. We fatter people are piss poor at fighting against these genetics. I have a lifetime of trying and first hand knowledge. It isn't just about food choice (I only buy healthy food) or mindless eating, although bad choices can certainly make it worse. It is a drive that irritates your brain until you satisfy it, and significant weight loss makes programming a computer (for example) impossible to focus on against those constant amygdala wake-ups.
https://yt.thesamecat.io/watch?v=V1bFr2SWP1I
Notes by Magister Michael Dilger M.Sc. | export