Replies (13)

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.
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?
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.
fiatjaf's avatar fiatjaf
Can anyone teach me how to do this? https://emschwartz.me/binary-vector-embeddings-are-so-cool/ There is so much jargon about this stuff I don't even know where to start. Basically I want to do what https://scour.ing/ is doing, but with Nostr notes/articles only, and expose all of it through custom feeds on a relay like wss://algo.utxo.one/ -- or if someone else knows how to do it, please do it, or talk to me, or both. Also I don't want to pay a dime to any third-party service, and I don't want to have to use any super computer with GPUs. Thank you very much.
View quoted note →
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 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.