Replying to Avatar daniele

nostr:npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf I just discovered that Blowater embeds images, mime64-encoded (so let's add a ~33% to the payload) into a kind-4 event. I understand that is convenient not having to put an external upload service in the mix, but I don't think this approach is desiderable at all outside a personal relay or with a custom kind, it puts excessive weight on public realays and currently is not interoperable, other clients just flood the chat with junk data.

Any thoughts on that?

Example:

https://nostr.com/nevent1qqswa737ny7hmnhmdu798xw0f30nhkzncg2y44tqm94d4dush4uks5qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygrmmmmmugka3evlgcqwq3922wsul966nhrayl04svauwldhsjjcq5psgqqqqqzq6kqyqt

Yes, this is not an ideal situation to be in but for a different reason than what you described here. This implementation was before NIP-89 was even created.

The key problem of this implementation is that it cuts big images to small chunks and breaks the atomicity of events, meaning an event can’t exist on its own semantically.

Generally speaking, we can have 2 approaches to solve this problem.

1. Have a binary format for events instead of JSON which can solve many other problems that nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s also cares about. But it requires most relay implementations to change

2. Operate a 3rd party binary storage for encrypted data similar to nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7 which is for unencrypted data.

No.2 is the direction that I want to explore first and it might also be a way for Blowater to have some income.

Reply to this note

Please Login to reply.

Discussion

Thanks for the details. So we agree that this approach is not the best, I see the github issue you just opened, glad you are brainstorming new solutions.

Btw talking about atomicity, I'm also interested in this matter, but applied to text+images contexts. This is another hard point, but it can also be really useful for public content (ex. long format).