Damus

Recent Notes

blackcat · 6w
Congratz πŸŽ‰πŸŽ‰ not feeling creative right now but if any idea will share 😸 I take the opportunity also to ask if there is any way to have a readPolicy plugin for the relay πŸ™„πŸ–€
Doug Hoyte profile picture
I'm still thinking about how to approach this. It's more difficult than the write policy because it has significant performance implications in the read-path.

But now that we have the foundation of support for AUTH, we'll probably come up with something useable soon.

What is your use-case? Restricting DMs to only be read by their recipient? Something else?
πŸ’œ1
blackcat · 6w
Yes! That's my main use-case! Also I like the idea of having a relay for example for my friend group only so only my whitelisted pubkeys can write/read notes for example. Btw I saw in Amber how AQSTR handles the auth and it may be interesting, other relays use challenge and relay key but this one...
blackcat · 6w
Congratz πŸŽ‰πŸŽ‰ not feeling creative right now but if any idea will share 😸 I take the opportunity also to ask if there is any way to have a readPolicy plugin for the relay πŸ™„πŸ–€
blackcat · 6w
Running the new #strfry version πŸš€ Gotta set up a whitelist so is only for myself and check if auth works but is already up ✌🏼 Amber + Tor + Private relay πŸ–€πŸ΄β€β˜ οΈ
Doug Hoyte profile picture
Great! Let me know if you hit any issues.

Note that AUTH will currently only be triggered if you try to send a protected event to the relay. We're trying to decide on the best way to extend this functionality (any comments/suggestions welcome).
1πŸ’œ1
blackcat · 6w
Thanks! For now none at all, but I take the opportunity to ask a maybe silly question. For auth I saw the new options 'enabled' and 'serviceUrl'. I saw a bit about nip42 and I understand there I gotta use my ws://address.onion (last slash? /)
mleku · 7w
did they fix the DoS on negentropy or no? https://github.com/mlekudev/strfry right there in the commit log. i told it openly here on nostr 3 weeks ago. wen fix?
Doug Hoyte profile picture
I think I found it. This note right?

> Hah, always worth going again at least once with bug audits β€” another 9 were found.
>
> 1. **Negentropy DoS (HIGH)** β€” RelayNegentropy.cpp:208,250 β€” `filters.at(0)` throws `out_of_range` if a client sends a filter with all-empty arrays (e.g. `{"ids":[]}`) which causes `NostrFilterGroup` to pop the filter, leaving `filters` empty, and the uncaught exception kills the negentropy thread.
>
> ---
> *Edited by Claude Opus 4.6*

Were you able to reproduce this report? The analysis doesn't sound correct to me. This line isn't accessing `ids` (for example), it's accessing the first filter of the *filter group*, of which there is verified to be one when the filter is parsed at ingestion time.

In my testing, both of these are handled correctly:

$ echo '["NEG-OPEN","N",{"ids":[]},"6100000200"]' | websocat -n ws://127.0.0.1:7777
["NEG-MSG","N","6100000200"]

$ echo '["NEG-OPEN","N",[],"6100000200"]' | websocat -n ws://127.0.0.1:7777
["NOTICE","ERROR: negentropy error: too small"]

I'm happy to investigate further if you have more details and/or a test case.
Doug Hoyte profile picture
strfry 1.1.0 release

There are a lot of changes in this release. Some highlights:

* Preliminary support for AUTH (NIP-42)
* Support for COUNT requests (NIP-45)
* Prometheus monitoring end-point
* REQ filter validation: restrict which filters your relay will service
* Configure your relay.info with npubs instead of 32-byte hex (optional)
* Timeout-support for plugins to detect and recover from plugin hangs/crashes
* Deletion of parameterised replaceable events now follows NIP-09
* upload/download convenience commands to transfer notes to/from remote relays
* Improved error messages for both external users and admins
* Many small bugfixes and convenience features

See here for the full list: https://github.com/hoytech/strfry/blob/master/CHANGES

Thank you to everyone who contributed!

There are no backwards-incompatible DB changes, so it should be a drop-in replacement for the 1.0.0 series. However, we always recommend backing up your DB first just in case.

One thing to note: We are deprecating the `strfry stream` command. `strfry router` does everything stream did and much more.
810❀️6πŸ€™2❀️1πŸ‘1πŸ’œ1πŸ”₯1
MartialMind · 7w
Awesome. You ought to setup a lightning address for zaps!
mleku · 7w
did they fix the DoS on negentropy or no? https://github.com/mlekudev/strfry right there in the commit log. i told it openly here on nostr 3 weeks ago. wen fix?
Gigi · 7w
πŸ‘€
Amira Hassan · 6w
"Solid updatesβ€”especially the AUTH and COUNT support. The plugin timeout feature is overdue given how many relays struggle with stability. On a different note, I was just reading about how Khamenei’s consolidation of power in Iran mirrors centralized tech bottlenecks. Parallels to relay gover...
Zio Mc · 5w
I found this error inspecting my logs 2026-04-02 10:29:23.292 ( 188.341s) [Writer ]INFO| Setting up write policy plugin: /app/write-policy.py env: can't execute 'python3': No such file or directory 2026-04-02 10:29:23.293 ( 188.342s) [Writer ] ERR| Couldn't setup plugin: pipe to...
Ben Weeks ⚑ · 7w
Ah yes, that's the one I raised. Was a while ago I looked at this but came across deletion event challenges whilst working on nostr:nprofile1qqsd73mv4ayg306an8r2wy82dt5585lxj0ffehr4cnhlrnakxjpehwqppemhxue69uhkzerjv5h8xaf0qyvhwumn8ghj7etnwpjkc6r09enkjunfdehjummjvuhszl38w7 Glad to see it's fixed! FYI ...