Read

Search

Communities

Bookmarks

Mea culpa: things I did wrong in Nostr

nostr
0
0
0
0
0
3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d
3bf0c6...fa459d

Aug 10

Things that we mostly can't fix, but that maybe could have been done better if they were here from the beginning -- or something like that.

  • The NOTICE message would have been better if it had structure like OK messages have. That would have allowed a more direct communication between relays and users, instead of relays being inside a client black box.
  • Choosing secp256k1 felt cool and maybe it still feels cool because it is the Bitcoin curve, but since many people have pointed out that other curves and algorithms are much faster maybe picking those would have been better.
  • Writing a spec for direct messages and implementing them was bad. In my defense, it was an attempt to please the public, but still I should have not have done that, or thought more about it before doing it.
  • Thinking that kind 1 should be used for all the things "text" just restricted the ability of clients to do different interfaces. If we had different kinds for replies, quotes, comments and "root" posts from the beginning that would have been better.
  • For a long time I didn't realize Nostr wasn't useful just for "social networking" things. I wonder what else could have been better designed in the relay-client interface if the needs of non-social-networking apps were kept in mind.
  • The querying system is sometimes too generic, it could have been better if it was more restrictive, but more complete. For example: allowing generic querying over tags is weird, can lead to O(n²) issues in some cases and relays are left to fend for themselves -- on the other hand we can't query for the absence of some tags. But I don't know how any of these things could have been better even today, so maybe it wasn't so bad.
  • Making the events be JSON: sometimes I think this was a bad idea and a binary format would have been better, but most of the times I think Nostr wouldn't have become any popular at all if this was the case -- also binary is slower than JSON in JavaScript, so I guess this wasn't a completely bad choice. Perhaps if something like NSON had been adopted from the start, though, that would have been better for everybody.

When I decided to write this I had one item in mind, but when I started I forgot what that was. I'll add it here back when I remember.

𐡷