Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Platform idea: Nostr #655

Open
melvincarvalho opened this issue Jan 7, 2022 · 6 comments
Open

Platform idea: Nostr #655

melvincarvalho opened this issue Jan 7, 2022 · 6 comments

Comments

@melvincarvalho
Copy link

What is nostr

Nostr is a simple social network that sends signed JSON blobs to relays based on a client generated keypair

It is popular with btc and lightning network enthusiasts but is not tied to a block chain, only uses ec keys, and schnorr sigs

Each client connects to a number of relays, over websockets and send and receives social network posts or chat messages

The client then collects the posts and displays it in a user friendly twitter-like or chat-like UI

Where's the spec?

https://github.com/fiatjaf/nostr

Where's the client?

Clients are unhosted apps of which there can be many. They are not tied to any domain. An example client is here:

https://branle.fiatjaf.com/

Just making this issue as a place holder, to see whether nostr/sockethub could be a good fit. As we scale out relays more, and aggregators, nostr can hopefully interact with more services

Nostr Screenshot

image

@silverbucket
Copy link
Member

Hi @melvincarvalho - while it's not a priority right now to support platforms like this, it's definitely something that would be possible for a future addition, especially if there was an app that could make use of it.

@melvincarvalho
Copy link
Author

@silverbucket thanks!

Nostr is a small eco system right now. But a few people are working on apps, built primarily over websockets.

I wrote a short blog post explaining how it works:

https://dev.to/melvincarvalho/the-nostr-protocol-nip01-5ach

Hopefully in time it can build up a network effect and integrate with other distributed social web systems

@cameri
Copy link

cameri commented Jan 7, 2023

Nostr has been gaining a lot of popularity recently:

Caution: Number of pubkeys is not very meaningful since it is trivial to create a new key-pair and most Nostr relays don't require proof of work.

https://nostr.band/stats.html

https://nostr.io/stats

@raucao
Copy link
Contributor

raucao commented Apr 12, 2023

I've been thinking about the Nostr architecture and its place on the larger Web a lot recently, reading more of the specs and implementing a simple integration for Kosmos accounts. Since bitcoiners (but at the moment basically noone else) are going to use it anyway, unsolved problems be damned, I think it's worth making things more interoperable and connecting nostr and nostr keys more with federated systems for some easy win-win situations. Also, I'd like to explore using it for chat in Hyperchannel.

One of the main problems I see with the current architecture, especially if or when there is a real influx of millions of people, is that clients cannot really scale in a decentralized way by following more and more relays, which is going to be inevitable when people are distributed across more and more relays. Here's where server-side aggregation (and other functionality) will, if not be outright necessary, at least have the potential to improve performance and UX considerably in my (current) opinion.

So here is also where Sockethub, as a WebSocket-based, encrypted-session-offering, commodity, zero-config, opensource, proxy server could come in!

Let's say I'm on a fairly slow, high-latency connection on my phone and want to fetch someone's profile, or maybe all potential chat messages in a public chatroom, or all timeline updates for the 500 people I follow. I could either go directly to 20 different relays from that connection and wait an excruciatingly long time until I actually (hopefully) get all the data I want, or I could go through a proxy like Sockethub and have it fetch things from all relays it knows it can read from, over a data center connection (or at least a fast home connection).

Sockethub could also filter out unwanted information from pubkeys that don't interest me, or that are on a spam blocklist I follow or whatever, before sending it to my clients, further minimizing traffic and improving performance.

@melvincarvalho @cameri @silverbucket Does this line of thinking, and the potential use case of Sockethub in this context, make sense to you?

@raucao raucao changed the title consider supporting nostr Platform idea: Nostr Apr 12, 2023
@silverbucket
Copy link
Member

I chatted briefly with @melvincarvalho about this some time ago and from what I remember he had similar ideas, using Sockethub as an aggregate, but I'd be interested to hear if anyone has anything to add or clarify. While I have a general idea of the architecture, I have not read too much about the technical details.

@raucao
Copy link
Contributor

raucao commented Apr 18, 2024

A new TypeScript library for Nostr was just released, and it looks fantastic: https://nostrify.dev

And by the way, the relay situation is still the same for me, one year later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants