oof nip-17 group chats are quite spammy. if there are 20 people in the group you need to send 20 notes for each message you send. 100 notes each time a user sends a message to a group of 100 people, etc. that wouldn't work well on the damus relay with write rate limiting.
Discussion
Yikes
A separate paid, inbox relay?
Why not do some fancy crypto where a single message can be read by any of the pubkeys in the group?
Or at least put the encrypted blobs in a single note that goes to the union of relays.
SimpleX works like that too, unfortunately. The solution is basically, which is what SimpleX has been planning for a long time, to introduce a second layer of relays, "group relays", that forward messages to all the users. Group relays would have privileged access to the underlying real (network layer) relays that allows them to perform this function.
NIP-17 is awful. I canāt even get it to work. Obviously Iām doing something really dumb, but spent a few days before giving up.
This is exactly where #nostr could fail. The NIP process is long and tedious, yet incomplete. Is anyone thinking about the scalability and long term impacts of these proposals? More time should be spent on that as opposed to all these dumb little proposals that have almost no usage. Letās get the foundation right first.
Which part is not working? giftwraps ?
Tbh I donāt know. Tried running the following code, expected it to show up on this npub on a client that supports NIP-17. But didnāt receive any message.
https://gist.github.com/fishcharlie/4197914636ce17a8e2817d2537ea3eeb
Happy to help if you have any questions I can answer
https://gist.github.com/fishcharlie/4197914636ce17a8e2817d2537ea3eeb
Here is my code. Ran this code, expected to receive a message on this npub when using a client that supported NIP-17. But didnāt receive any messages. So not sure even how to begin debugging.
Swapped out my pubkey for yours, and it worked just fine first try. My best guess is it's a relay selections issue. First, make sure damus isn't rate limiting you when you send the message, which can happen sometimes. Second, make sure the client you're using is asking for DMs on the correct relays. In Coracle, you'll want to mark damus as an "inbox" relay in your relay settings.
Ok I didnāt mark any relay as an āinboxā. Iām still really new to the whole inbox concept. Is there documentation for it? Or do you have a quick explanation of it?
Iāll try setting it as an inbox when I get some free time later today.
I really appreciate your help!! I was actually using Coracle to test this in the first place š.
The relay stuff is definitely a work in progress (both from a protocol point of view as well as on coracle). The idea is that kind 10050s are a relay list specifically for DMs (see NIP 17 for details), and clients aren't supposed to send messages anywhere else. Coracle only looks at inbox relays when fetching DMs, which is likely why you didn't find the test events.
Yeah, I've found that documentation is really a big thing in open source projects. And I have a deep appreciation for people who contribute to open source. But I definitely think that especially with nostr NIPs, we could do with better documentation. I think just having examples would go a long way when you're implementing the NIPs.
This. Documentation is tough. Itās the boring part of software engineering. But if youāre gonna build software that you expect others to use, itās critical. Even more so for a protocol like this. You have to brute force it to be a priority.