Without binary protocol option there is no speed. JSON is low entry barrier but it's atrocious.

Relays should serve JSON AND CBOR, simple client flag can achieve this.

We can't be serious about speed without it.

nostr:note1le3wcpdycl7nlxjxj6rrk4j2psq3khj6s8dkjekhsgza4wlfl4zsuvj08r

Reply to this note

Please Login to reply.

Discussion

Reject the woke JSON, reject NOSTR being nonbinary.

I disagree that's what's holding speed back. The issue is that clients talk directly to relays "just in time", and relays themselves are slow because they're getting overloaded by malfunctioning clients and don't have the right protections.

Pure clients can partially solve this by reading from an internal database synchronously ​​and populate it asynchronously (like Damus does with nostr-db), but there's limits to smartphones being able to do that without wasting precious disk space, battery life, bandwidth, etc.

Which is why I think the server model used by Ditto and Primal wins for mass adoption. Pure clients need to exist for freedom reasons, but it's a choice people need to want to make.

Hold it how's Primal different from Damus. It speaks a different protocol to the relay. That's it?

They serve views with this instead of querying relays directly: https://github.com/PrimalHQ/primal-caching-service

Then they got bullied hard for that and added the ability for users to choose their relays. But I'm still not sure if the clients actually connect directly to those relays, or just add it as an extra parameter to their service. Either way i think their idea was valid all along.​

Primal's relay is just another relay with a different protocol.

A relay is just a web server.

Correct. No need to go all "oh primal's so different" because they call their relay "server" or "cache" or whatever.

#Reticulum

CBOR will save what, 12 bytes per event? that's stupid, we need protobuf