Daniel Wigton on Nostr: Caveat: I haven't personally used web sockets. The reason is latency and simplicity ...
Caveat: I haven't personally used web sockets.
The reason is latency and simplicity (of implementation)
Generally a client isn't interested in making new connections, it is interested in being able to send and receive data quickly to a small set of relays. Web sockets, once established, have much lower overhead than http. This allows all kinds of low latency communication.
Dealing with raw sockets is a pain, however, but solutions for web sockets exist in every language and platform. This allows relatively easy web clients as well as native clients.
The main genius of nostr is that it is humble. It doesn't try to do too much, and used common web technologies that, while not optimal, are at least acceptable and easy to work with given the existing layers of abstractaction available.
This is also a drawback. Nostr is kinda inefficient for it. But adoption is harder than optimization.
The reason is latency and simplicity (of implementation)
Generally a client isn't interested in making new connections, it is interested in being able to send and receive data quickly to a small set of relays. Web sockets, once established, have much lower overhead than http. This allows all kinds of low latency communication.
Dealing with raw sockets is a pain, however, but solutions for web sockets exist in every language and platform. This allows relatively easy web clients as well as native clients.
The main genius of nostr is that it is humble. It doesn't try to do too much, and used common web technologies that, while not optimal, are at least acceptable and easy to work with given the existing layers of abstractaction available.
This is also a drawback. Nostr is kinda inefficient for it. But adoption is harder than optimization.