Nostr is a stupid simple P2P protocol that works, built by builders
https://github.com/nostr-protocol/nostr
Fun facts about Nostr:
* Nostr stands for "Notes and Other Stuff Transmitted by Relays". It is an odd acronym, but I like it.
* Nostr uses websockets and relays to build a really simple P2P network. We also steal a few ideas from bitcoin (ECDSA ids, schnorr-signed events).
* Relays are simply dumb data stores for events that clients publish and subscribe to.
* Clients don't trust relays to be honest, so all events are self-signed. Your pubkey is your userid.
* It is stupid simple to build a Nostr client. You can easily do it in less than 400 lines of JavaScript. And it runs in the browser.
(shameless self plug) https://github.com/cmdruid/nostr-emitter
* Nostr is powerful enough to host chat apps very easily. Here is a rip of Telegram, running on Nostr:
https://anigma.io
* There's a lot of fun things you can do with Nostr. Check out all these cool projects!
https://github.com/aljazceru/awesome-nostr
* We are constantly discussing how to improve the protocol. Come join the conversation here:
https://t.me/nostr_protocol https://anigma.io https://damus.io https://github.com/nostr-protocol/nips
Thank you for reading my nostr shill post. I did not create nostr, nor do I get any monies for promotion. I just think it's really cool and I have a lot of fun building stuff that punches though nats.
If you have any questions about nostr please feel free to ask.
Also, Happy Thanksgiving to everyone! I hope we're all feeling fat and sassy today. :-D
[+] [-] egypturnash|3 years ago|reply
https://abovethelaw.com/2022/11/hey-elon-let-me-help-you-spe... is a pretty decent rundown of a mix of these things; it is specifically pointed at Elon Musk's decision to buy Twitter and make it a haven for "free speech" but it is a glimpse at what is in the future for anyone setting up a "free speech" platform.
My experience as someone who has been running a Mastodon server since 2017 is that while "we are all for FREE SPEECH, we only block what the government ABSOLUTELY requires us to block!" sounds noble, in practice nodes of the Fediverse that say this become havens for people who are only there to be assholes to other people, and any sane admin will sigh and block the whole server, because it's just going to be a continual source of rude nasty bullshit.
[+] [-] imiric|3 years ago|reply
P2P services OTOH work on a decentralized and pull model. Users share and only subscribe to the content they're interested in. Censorship is distributed, and it's a problem for people who don't wish to see specific content. It's the way the internet works, and the existing approach of removing sensitive content applies to P2P services as well. Since there are no advertisers to appease, it's not an existential problem.
[+] [-] Cameri|3 years ago|reply
[+] [-] fiatjaf|3 years ago|reply
[+] [-] jonstaab|3 years ago|reply
[+] [-] kdragon|3 years ago|reply
I like that nostr abstracts this problem away from the relays. Relays only focus on storing data and handling subscriptions. They can choose to censor and/or curate content if need be, but it's not their concern.
It's up to the client to come up with a solution, and that client can be a platform or a protocol of its own.
edit it also feels really great to work on that problem from the application layer. I can come up with a solution that isn't confined to the parent protocol.
[+] [-] barnabee|3 years ago|reply
Commonly filtered things (account block lists, post flag lists, filter rules, etc.) could be shared via the same system — indeed there could even be competing versions and everyone could follow their preferred filter source.
Users would also likely run statistical and machine learning based spam and content filters locally (perhaps on a personal relay/server of some sort, or an account on a shared one) configured to their preferences.
I would expect the infrastructure running such a network to be in the same position as Signal, who do not know the content of messages and can't censor them, leaving individual clients to figure out blocking etc. (albeit the client side options as well as ways to share configurations etc. would need to be much more advanced for a social network or similar than for a messaing app).
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] assetlabel|3 years ago|reply
[+] [-] ekianjo|3 years ago|reply
There are solid laws protecting copyright everywhere yet it is stilm trivially easy to find copyrighted content available for free online. Laws dont mean anything unless they are or can be enforced.
[+] [-] anon291|3 years ago|reply
[deleted]
[+] [-] Cameri|3 years ago|reply
[+] [-] olah_1|3 years ago|reply
But I wouldn't be surprised if he was discouraged from continuing this work because ultimately people like ActivityPub because server admins can be little dictators that censor and ban at will.
[+] [-] StillBored|3 years ago|reply
From the sounds of it, you have the protocol but not the policy. Which is by itself huge that they are separate, but now the clients (?) needs flexible policy, no? Otherwise its just going to turn into a billion people all talking in the same room, or your going to have a ton of tiny rooms with no activity. The discoverability of interesting rooms will be difficult. Its sorta the IRC problem in a nutshell (or discord/etc). Balancing the noise, vs the quiet is the difficult part (AFAIK).
[+] [-] leke|3 years ago|reply
[+] [-] bawolff|3 years ago|reply
There are a number of web servers that host content (either for free or for money) [called relays].
Clients download recent posts
Identity is based on public key, allowing users more control and the ability to easily change relays.
So is RSS + pubkey based identity the right way to think about this?
[+] [-] klabb3|3 years ago|reply
There are still features that many apps will need such as tying multiple devices to an identity, abuse prevention for relay operators, etc.
[+] [-] procrastitron|3 years ago|reply
I agree, except for the bit about public keys as identities.
I think public key identities are a step in the right direction, but there’s still a gap between that and what the ultimate solution is going to wind up being.
We need to have some layer of indirection between user identities and public keys so that users can do things like rotate keys, have multiple keys, and recover their identities.
I don’t know what the right solution to that is; I think it’s an open problem and probably one of the most important ones to solve. Keybase probably came closest to a good solution, but it wasn’t decentralized.
[+] [-] chromatin|3 years ago|reply
- Proof of work: computing some hash, which is not enough to be onerous but enough to reduce spam
- micropayment over Bitcoin lightning network
[+] [-] chromatin|3 years ago|reply
One of the neat things about nostr is that while it has already been used to build a decentralized Twitter like social network, the protocol could also be used to build encrypted P2P chat, traditional discussion forum, alerting/push style notifications, and numerous other applications.
[+] [-] remram|3 years ago|reply
[+] [-] akkartik|3 years ago|reply
[+] [-] Cameri|3 years ago|reply
[+] [-] ilaksh|3 years ago|reply
[+] [-] kdragon|3 years ago|reply
A lot of p2p protocols cheat with relays, it is really hard to traverse nats otherwise.
Nostr can be used for peer discovery to bootstrap a direct p2p connection.
You could also use a client/relay hybrid application, similar to other p2p networks. That would be fun to build. :-)
[+] [-] nine_k|3 years ago|reply
Relays are important for two reasons: peer discovery and communicating when one of the parties is offline. Same as with other p2p networks.
[+] [-] rgbrgb|3 years ago|reply
[+] [-] kdragon|3 years ago|reply
You can request very broad subscriptions from relays! For example, here is a site that subscribes to everything, showing you a gods-eye view of events streaming into a relay:
https://nostr.info/relays
Events have different "kinds", so you can filter this based on the type of traffic you are looking for (like public posts or user profiles).
Platforms like damus.io are more user-friendly, and offer better tools for discovering users and content.
You can subscribe to a user's feed via their pubkey, so discovery methods typically revolve around learning pub keys.
[+] [-] fiatjaf|3 years ago|reply
I doubt anyone has ever been successful into signing up on any social platform and just followed the big names that are suggested automatically at the beginning or based on some "key interests" you select.
But hey, if you want that, it's easy for a third-party website to grab a ton of public Nostr data and build custom recommendation lists and whatnot.
[+] [-] TheSkyHasEyes|3 years ago|reply
See FAQ, second question.
[+] [-] stonogo|3 years ago|reply
[+] [-] ffggffggj|3 years ago|reply
[+] [-] jasonlotito|3 years ago|reply
It's not shilling. It's recommending. Shilling is a bad thing. It's a simple thing.
[+] [-] kdragon|3 years ago|reply
[+] [-] eps|3 years ago|reply
Can you elaborate on this point? It would seem that meshing relays would've facilitated the dispersal of updates.
[+] [-] assetlabel|3 years ago|reply
Nothing in the protocol specifies relay-to-relay communication, but nothing stops them either.
[+] [-] Reventlov|3 years ago|reply
[+] [-] googlryas|3 years ago|reply
[+] [-] kdragon|3 years ago|reply
[+] [-] usgroup|3 years ago|reply
[+] [-] fiatjaf|3 years ago|reply
[+] [-] quickthrower2|3 years ago|reply
[+] [-] yjftsjthsd-h|3 years ago|reply
[+] [-] Cameri|3 years ago|reply
[+] [-] huimang|3 years ago|reply
[+] [-] remram|3 years ago|reply
There is tremendous value in a much simpler protocol, especially if it can deal with the identity migration issues that Mastodon has faced since day one.
[+] [-] nine_k|3 years ago|reply
OTOH websockets are hard outside the browser :(
[+] [-] terminal_d|3 years ago|reply