relay implementations? could you explain a project that does this so I can learn more?
Discussion
Relays. You know... The backbone of the nostr protocol. Not all relays run the same software. There are many different implementations.
Everyone is focused on clients. Without relays, none of them work.
I don't mean to come off blunt. If you're really unaware of how relays work Id be happy to go more in depth. I can point out the most prevelant implementations if it helps.
I'd love to learn more about relay internals btw 👀
What would you like to know? The concept is simple so the implementation is very open to do it a million ways. They are just web socket servers that interpret events as defined by the protocol. How you handle them is up to the relay. I mean you have to handle them a certain way as defined by the protocol but I mean how you handle storing events or responding to requests is all free game. Grain for instance is inple in go and uses mongodb as a database. Strfry is in C and uses LMD. Etc.
What would you like to know more about?
strfy is C++. Big difference XD
Whoops, yep. Not super firmiliar. Big difference. Going off memory. Maybe I was thinking of Bitcoin.
Its not a specific question but related to this thread:
Maybe if embeddings can be made portable enough, they can also be passed around nostr in a decentralized way, where clients and relays would be able to leverage note searching. Kind 1 seems like a big ask, because your essentially trying to classify and search through all possible conversations and context is usually temporal.
More slowly moving kinds, where context is contained within the note, or surrounding notes on a relay would be interesting to organize around. But what about paragraphs? If so, maybe binary embeddings on relays could be a thing to help organize and find related notes.
Something about a vector binary embedding of an entire relays content to perhaps make searching a compressed relays content extremely efficient and perhaps you could embed all of the content across the entire protocol. Then it could be redundant and spread everywhere and all nostr content may no longer need to be fragmented across relays but aggregated with the embedding and globally distributed across all relays. Sounds really complex though.
I'm hesitant about doing it for kind 1 because there is such a wide context, lots of notes collected over lots of relays - don't think it would really work because for the user it there is so many unrelated notes. But imagine a pool of relays focused on some content:
Even if you group across multiple relays, a user is choosing to connect to related content. A user is reading some related articles that have been embedded and so you (service provider) or the client is able to construct some sort of HNSW search, and pass some sort of subnetwork within some distance close to your note.
I suppose it would depend on how good binary vector embedding actually is. 😂
Its a compressed representation, so you lose some resolution to search through, and the space of topics that can be covered in a feed of kind1 notes over some length of time is huge. Less so with a themed community. So by going with something focused you and only improve in performance.
* you can only improve
Dropping a demo in case you'd want to play around with it
Good point
I was mostly referring to projects that create user experiences for creating relays rather than not knowing what the R in nostr means
I still have a misunderstanding. Coding creates relays. Just like clients. They all have some level of configuration. Relay.tools is the only relay "creator" I'm aware of and my original post was not to point out all projects that do this. It would be to point out all different implementations of of a nostr relay.