Oddbean new post about | logout
 We are beginning the development process for transmitting Nostr events in a peer-to-peer fashion, away from relays. This will start with Gift-wrapped DMs, Private Attachments, Private zaps, Private Text Notes, and Private Reactions; and will be the preferred transmission choice if both users are online, falling back to relays when they are not. Our Push Notification system already transmitted over 500,000 GiftWrapped Nostr events that relays will never see. With a full P2P this will get even better and will open the doors for voice and video calls directly inside Amethyst. Side-stepping relays won't be easy or quick. And I am sure we will get strong pushback from relay operators. But we will get there. And while this might start as an Amethyst feature, it will be a NIP and other clients will be able to join the privacy train. 

Nostr is just starting. 
 Now it's just nost I guess  
 Nostp 
 How exactly is it possible to remove the R ? Im confused. 
 Notes and
Other
Stuff
Transmitted over
Relays 
 It’s a joke about losing the relays 
 Good joke 
 I know thay haha, i mean like how exactly can nostr work peer 2 peer instead of with relays. 
 They are not sure yet. We should leave the nerds alone while they figure it out though 
 easily 
 Its the first im hearing of this development. 
 What are some of the possible drawbacks from side stepping relays? 
 You won't see stuff on all devices or clients, unless the clients share with each other which might be in the plans though.
Also, peer to peer is not hiding behind a relay so people you DM with could see your IP, if that matters.  
 Doesn’t it mean ruining the whole point of nostr which is being interoperable and not centralized ? 
 Wouldn’t ruin the “whole” point, I think it would be usecase specific, notes would always need relays, calling, and maybe even DMs don’t really need relays. Solutions to problems often have a way of sidestepping politics of ideas. 
 Even less of an illusion for "global" 
 p2p is harder especially for offline and prevent ip exposure 
 content privacy or complete privacy?  
 Okay relay operators, go ahead and shut down your relays. 😉 
 This will be interesting. 
 Thank you for your constant work Vitor 🫂

Pura vida 😍 
 👏👏👏👏👏👏👏👏 
 Do you have any thoughts about the technologies used in keet and Holepunch in this context? 
 Amazing. The ultimate mesh network.  
 A rajouter à la note de  @fiatjaf  pose la question du pourquoi nostr a de plus utilisateurs ou d'un microglobing. Avant de faire du marketing à mon avis il fait d'abord rechercher les qualités et défauts du produit, se poser la question du pourquoi certains quittent le navire même doté d'un esprit communautaire indéniable, pour pouvoir le promouvoir.  Il me manque qu'il serait intéressant de faire une mise à plat de tout ce qui a été construit depuis décembre, la substance des notes est indispensable puis l' organiser... J'espère qu'ils ne vont pas vers un déploiement sans vraiment la substance qui fait le produit qualitatif pas seulement l'étendard liberté cool liberté et Bitcoin.. Qu'il laisse la porte ouverte aux feedbacks des utilisateurs  
 I love this idea. P2P 
 nostr:nevent1qqsgahwzr3wrrlaqeajx7qey97d0s8g2q6fhnyk8g6fcxq0vrm2y7hqpw9mhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0dec82c33xgurwwre0fn8zunkxfcxvct9wp3nqeny89mrvun3xemx6un9xvehwat5wce8surkvvu8get8x4ex5atywechyvmnwe4x60mzwfhkzerrv9ehg0t5wf6k2fn8d3hkyctv84skcmqzypglcusfyqd3g98hy8pa954ngvrfnv0xx9m3d3gc9nqa09zswt34sqcyqqqqqqg7stqma 
 This isn’t a bad idea. Additionally you could consider using a blending of the two whereas the relays still serve purpose, either by segmenting data between both transmissions, carrying an authentication, or many other things. I’m not saying you would be required to, but by keeping relays involved you could have secondary layers for encryption, already running use cases or features. I’ll be waiting to see!
You’re always working on it, and we appreciate you brother!
🧡🫂💜🔱 
 nostr:nevent1qqs0n74z3lustcqnmsedge8mmjd06tgnddlkd6u0g2nvy078xecdfgcpz4mhxue69uhk2er9dchxummnw3ezumrpdejqygzxpsj7dqha57pjk5k37gkn6g4nzakewtmqmnwryyhd3jfwlpgxtspsgqqqqqqsshrc6v 
 👀👀👀⚡⚡⚡

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgq3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqqqqzz7hcc2 
 IPFS uses Bitswap as a reputation system to decide which peers to sync with. It can be gamed with DDoSing.

How do you decide which peers to sync with on Amethyst P2P? There are so many users. 
 > How do you decide which peers to sync with on Amethyst P2P? There are so many users.

It can be done, here's just  an example: 
It should be possible to generate an onion address keypair algorithmically from the recipient's Nostr keypair, in a manner that is reproducible on sender-side using only the public key. Roughly similar to how Bitcoin HD wallets (xprv/xpub) work.

There are probably some privacy footnotes with this method, but would give you 100% accurate peer discovery without an intermediary. 

Just to be clear, none of this exists. It's only an example of how it could be done. 
 👀 
 are the energy and bandwidth requirements for this higher or lower? Are you planning on using negentropy for sync?

Does that mean that my IP address would be available to any other user on Nostr? 
 The visibility of the IP address is what I am testing right now. We can always make it go through an internal Tor implementation, which I am also testing right now. But Tor won't work for voice and video calls later. But I think that use case is less sensitive of IP leakage since the user approves the call when receiving it. 

Lots to do yet.  
 you could wait till keet.io is open sourced and integrate it 
 With arti you can configure tor to work fine for video calls on a phone. 
 Are you building from scratch or reusing existing infra? 
E.g. Briar has solid implementation for passing messages over Bluetooth or local WiFi, Holepunch has interesting P2P streaming, SimpleX has good no-user-id concept, lightning has onion routing, Tor or I2P are the standard... 
 I'm very interested in P2P event transmission, but mobile device networking with ICE presents significant challenges, especially given the complexities of global networks 
 In the way I see it, it's about the protocol to check if two people are online and then send the event over there, falling back to relays if it doesn't. The most basic version should work for this simplistic scenario. Then we can improve it over time.  
 So if both parties online it would be P2P, and relays if offline? 
 That's what I said :)  
 Im liking it!💪
Thanks for always innovating.🙏 
 It's a good idea. And basically how torrents work anyways  
 Could you please elaborate on “the protocol to check” ? 
 So, would your IP be shared with your peers?
That doesn't initially look too good for privacy.
Looking forward to learning more about this 'protocol'.
🫂 
 #Nostr 2.0 is incoming.... 👀🤙

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpz9mhxue69uhkummnw3ezuamfdejj7q3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqqqqznscs53 
 Actually, I'm just glad 😅 I don't need these events on my relay because they may be related to shady dealings 
 sexy dealings 
 Nostr is ideal as a platform and catalog for sex workers 🤔 
 Pure P2P is terrible for privacy. Governments can detect activity between two distinct IPs and build a social graph of the interactions. How to prevent this kind of thing? Will there be some trustworthy proxy between peers? 
 What if both users are on Tor?  
 That can help a lot. Another idea would be to push some relay software so that people can receive some sats to run it. So, if you want more privacy, you can pay sats for rerouting your traffic. Tor is great, but the latency is unbearable for real-time video communication. 
 I have a lot of bandwidth and hardware power not in use. Many also do. We should find a way to use that in Nostr's favor. 
 having sats as the basis to use a feature generally wont work as most people dont have them 
 this is what briar does, using the internet via tor and local networks without 
 No strong push back from this relay. I'm only running one b/c this isn't already a thing.

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpvemhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0dec82c33wehx66ryxgurwurk0puxkdth89kkx7trvcerxctkxg6xuumrwa4nqerpxae8yenpvy6hwuf5dsuxsum9dpenjvrxw3k8v0mzwfhkzerrv9ehg0t5wf6k2q3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqqqqz5rkj52 
 Interesting. Looking forward to see what you cook up.

From the nostr readme: “it does not rely on P2P techniques, and therefore it works” 
 does not rely but is also compatible with p2p

nostr dev is also permissionless so no statements about the protocol are law 
 Holy shit!

Fuck yeah!

Go @Vitor Pamplona! 👊

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpzpmhxue69uhkummnw3ezuamfdejsygzxpsj7dqha57pjk5k37gkn6g4nzakewtmqmnwryyhd3jfwlpgxtspsgqqqqqqsv4v8d2 
 The great thing about nostr is that it is not p2p. This seems like a step backwards and there are many p2p protocols in development already. Still looking forward to see what you are building. 💪 
 We can use one of those methods to transfer nostr events. Let me know if I should look at anything you like out there.  
 Definitely check out keet / holepunch. When it comes to p2p I am always worried about users privacy. It’s easy to doxx information like your location to your peers.

Are you going to publish more information about your plans soon? 
 holepunch.to   veilid.com  github.com/freenet/freenet-core 
 veilid and freenet are designed with better privacy

https://www.youtube.com/watch?v=Kb1lKscAMDQ 
 So, a turn server?  Very little info about the architecture here, but since you said relay operators would hate it, now I'm wondering why would I hate it?  Don't see a reason why.. 😎 The thing is, I know you can't do this without servers to bounce the traffic, and push notify uses too much Google servers to feel very OSS nostr.  If you keep your server stack opensource and configurable then relays can help run the network and decentralize.  If not, you're gonna lock yourself into being the one server and I don't think you really want that..

Turn services would be a really cool concept to nostrize to facilitate P2P connections.  I'd run some along side relays for sure, because then I don't have that data resting and clients can p2p any number of things.. 
 this is my assumption too. looking forward to seeing some architecture documents, not sure how this achieves privacy. 
 No servers (otherwise we should just use relays). 

The proposal is to do phone to phone directly.  
 sounds too good to be true! how do phones talk p2p. share the wizardry good sir 
 keet.io 
 🤷‍♂️ must be magic 
 Magic internet communications 
 So how do you traverse the NAT? 
 Yes, how? 
 Ok, this is what I am testing.. Dont take this as a final solution. 

First: IPv6. On IPv4, you have to deal with NAT travel + firewall holepunch. With IPv6, the NAT stuff is gone. All you need is a simple STUN server to open the connection. 

Second: We can use Nostr to signal people's IPv6+port to one another. 

Once that is done, both sides start sendind UDP messages over IPv6 to each other. The first 2 messages should be rejected because of the firewall, but after that the door is open. We try this until we hear a package back. 

Now, the beauty of Nostr is that somebody is always online. Which means other phones can behave as STUN servers to open people's firewals more easily. 

The goal is to use network effects to avoid the need for central servers. Market participants can add their computers or phones to the pool by just replying the Nostr signaling requests. 

It's like a STUN server as a DVM. 

Lots to test, but that was the idea.  
 what if..  forget about STUN for a second, it isn't gonna work for most peers (esp mobile carrier networks).  You could support ipv* by 'relays' running coturn and forcing the use of the turn server vs. stun would not expose IP info between the peers.  Coturn has all the stun options, so if a peer was willing, they could opt in to the IP disclosure and achieve a true P2P connection.

multi hops could also be implemented, by using wireguard networks with relays being a 'hop' server.

https://github.com/coturn/coturn

 
 Yeah that's the easy way to do it. But I think we can do it without coturn. Most of what coturn implements is for the old nat stuff. There days everyone has an IPv6. Só it should be easier.  
 🤔 
 But it is a fallback for the p2p if everything else fails.  
 given how popular vpns are im not sure why anyone would want to connect p2p 🐻‍❄️🤔 
 "These days everyone has an IPv6" - don't think that's the case at all. Most countries seem to be running at around 50-60% deployment, and that's only showing allocated IPv6 that doesn't mean configured and in use.  
 That seems different than what I have but if that is true let's hope we can help them finish the transition.  
 Let's hope you can. It's been in deployment for ~20 years!

Maybe you're mixing cellular and fixed line services. On cellular, the figures are likely higher but on fixed line they're also likely lower. Mobile users aren't, most the time, using a cellular connection though, they're using WiFi. 

https://ipv6-test.com/stats/ 
 I have implemented the calling service in 0xchat, but using the traditional technical solution: 
Relay signaling+WebRTC+STUN+TURN. 

I’m looking forward to your experimental results. :) 
 Which servers are you using for stun and turn?  
 Google’s STUN and our own built STUN/TURN service, followed by support users to input their owned services, similar to the approach of Simplex 
 cool idea, subscribed! 
 Any answer? 
 peers in a p2p network are servers and can act as relays, there is already a few p2p relay networks 
 You can't traverse NAT without a server to setup your connection.  Especially on mobile networks. One of your 'peers' must open their firewall.  By doing so, in my book, it becomes a server.  But the semantics may have changed, I dunno why people think servers are so lame.  They're just computers that are up and online. 
 peers in p2p are servers

from the lead dev of holepunch.to https://x.com/mafintosh/status/1259596991857930243 there is distributed holepunching aka nat firewall traversal 
 Yes, it uses a lot of techniques I'm well familiar with, techniques that don't really work anymore.  Like STUN.  Mobile networks especially, you're just gonna end up sending all that traffic through a turn relay (which is fine).

https://en.m.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT

https://webrtc.org/getting-started/turn-server 
 as p2p apps become popular incompatible shit 'networks' will face tremendous pressure to become proper networks 
 I wish.  A majority of the world is on a mobile carriers network..  I just don't see how it would apply any pressure, can't even get people to use a desktop browser anymore. 
 many mobile networks work p2p, mobiles also have wifi, starlink lol

there will be nsa datacenter peers to use, its what american tax victims pay for 
 Nostr is just getting started. The plebs are rebuilding the internet from bottom up,  top down, left and right.

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpp4mhxue69uhkummn9ekx7mqzyprqcf0xst760qet2tglytfay2e3wmvh9asdehpjztkceyh0s5r9cqcyqqqqqqg5cvj3m 
 Perplexity.ai prompt 

"Rewrite for someone who isn't smarter than a 4th grader."

Nostr is a way to send messages to your friends. They are working on making it even more private by sending messages directly between you and your friend, instead of going through a middleman called a relay. 

This will make it harder for other people to see your messages. 

They are also working on adding voice and video calls. It might take a while to make this change, but it will be worth it. 

This will be a feature for other apps too, not just Nostr. It's important to keep your messages private so that only the people you want to see them can see them.

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpz3mhxue69uhhyetvv9ujuerpd46hxtnfdupzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqvzqqqqqqyjkmnhd 
 This feels like something fundamentally different from the Nostr protocol. Is that the goal?

I’m open to being convinced but P2P is a different model than client and relay. Is this just for a limited set of features? 
 nostr is already p2p compatible 
 the notes can be distributed via any means because they are self authenticating 
 But it’s the difference between a distributed and decentralised network. Distributed is P2P and it has even more trade offs than decentralised networks. 

There are no free lunches 
 Then we will navigate those trade-offs and let users choose what they prefer. :)  
 I’m open to being convinced but what do we need this for? Is it just private DMs? 
 Only use it for the use cases that make sense. For everything else there's m̶a̶s̶t̶e̶r̶c̶a̶r̶d̶ relays. 
 Private DMs, Private DM Attachments, private Zaps, and private reactions on top of Voice and Video calls.  
 Have you written out the architecture anywhere yet? Would love to dive in and understand 
 No, I am just testing things out for now. WebRtc seems to work, but I want to get rid of these servers they use for signaling and use giftWrapped msgs in Nostr for that. 

I'm might have multiple layers. Bluetooth, WIFI for those physically close to one another and some version of WebRtc for the rest.  
 Interesting 🤔 well I look forward to more info 
 reminds me of Microsoft's Skype 
 nostr is already distributed and not p2p except for relays

trade offs are being worked on, we also have more compute and network resoirces than ever 
 Nostr isn’t distributed. Here’s the difference https://www.hivenet.com/post/decentralized-or-distributed-whats-the-big-difference 
 then you either dont understand nostr or distributed

i am not going to bother with that silly article btw tho it likely agrees with me

https://www.vocabulary.com/dictionary/distribute

'To distribute is to disperse widely, hand out, or spread around'

how are nostr notes distributed? how can nostr notes be distributed? are nostr notes on a wide variety of servers? are nostr notes handed out widely to relays? can i put nostr notes on a usb stick and give them to a friend? can that friend send those notes from that usb stick to a relay? can 500 other relays download those notes from that relay? can 1million people download those notes from those relays?

how is nostr distributed? 
 data is very cheap especially on local networks, the lunch is cheap 
 No strong opinions about P2P here, just want to emphasize my respect to your work and enthusiasm. You will get something cool done. 
 Before nostr was created I imagined a decentralized social media platform where everyone hosted their own content.

To illustrate the idea. Imagine user one would host their own conrent and the content of anyone they follow. User one's followers will host their own content along with the people the users they are following.

This creates an incentive to be mindful of who you follow and for those with the greatest following to have the greatest reach. In that network, hitting the follow button represents a physical commitment to host content (either on a cloud service or a personal server).

I am not technical enough to understand exactly what is meant by giftwrapping, but I thought I would post this in case it sparked an idea.

Thanks for your continued work and dedication 🙏 
 This Nostr proposal is not that different from what you are saying. The only difference here is the signatures. I was working on a version of a P2P system like you described back in 2008. It is possible. It's hard, very hard, but possible.  
 Very cool man. I'm here for the experiments and the developments. 

Onwards towards freedom 🤙 
 This is my vision as well. I really liked the proposal with rendez-vouz beacons and webrtc for those side channels. What spec are you thinking of using? 
 So, passing over Bluetooth and internal WIFI is very easy (which was my first test a few weeks ago). I just started doing some WebRTC tests and looking at some server alternatives and signaling needs. It works but I am very early in this whole adventure. 

I looked at Rendez-vouz as well and I was wondering can't we just pass the signaling through our usual relays instead? Maybe we still need some type of STUN server to get the phone's IP and as long as two users can use different STUN servers, it could work. 

What I want to avoid is replacing our replays with a different "relay". If we need to use a server to transfer some info we can just use our regular relays instead to avoid another dependency/attacking point.  
 Yes I think using nostr relays to setup rendezvous is a great idea, with hole punching something like this https://itnext.io/p2p-nat-traversal-how-to-punch-a-hole-9abc8ffa758e

What lower level protocol are you thinking of using? UDP messages? TCP with message framing added back? WebSockets? If we are starting a new protocol, can we go binary? 
 We will need to go binary for voice and video calls. But for the messages that are just simple nostr events, I am not sure if it makes sense since the event is already in text.🤔 
 Interesting, but this is where keet also suffers. Without backups of the whole thing, edge case events make the whole thing feel clunky.

Either rely on relays or not, give the option to restore all in one, or not at all. 
 This is why I think we can succeed. The relay infrastructure will always be there to be a fallback. The P2P stuff is an additional layer of privacy to be used when 2 phones are able to reliably connect with one another.  
 nosti - 
(notes and 
other
stuff
transmitted over
internet)


nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcppemhxue69uhkummn9ekx7mp0qgsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqrqsqqqqqpds3v5q 
 I could see P2P transmission as being super neat for near-instant messaging. Not sure if it is a good idea for broadcasting notes to all followers, but there are definitively use cases where I would love that.

Please do consider documenting it - even if not in the nips repo - for easier referencing when developing something based on this! ^^

IMO Nostr lives and dies from it's documentation. It is why there are so few Matrix clients, because the Matrix docs are a PITA... 
 dYeah, it's not for public notes. The idea is to focus on private ones, which is generally just encrypted p2p anyway :)  
 What’s the resource expectation for users ? And how will impact scalability  at all corners of the world  when it hits mainstream spread ?  
 If it fails it goes back to relays. So, it shouldn't have any impact. It's just additional privacy when the user are able to connect to one another.  
 Hot take: a protocol centered around the internet is inherently more open than a protocol centered around relays on the Internet. One includes the other. 

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcppemhxue69uhkummn9ekx7mp0qgsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqrqsqqqqqpds3v5q 
 Relays are public and shouldn't involve with private things yes. I support this.
What if I use both Amethyst (mobile) and Primal (desktop)?
Primal will not be in sync with my private communications. 
 User 1 sends the event to User 2 via P2P instead of pushing through a relay. Then User 2 can send to any relay it wants for backup and to share with other clients the same user uses. 

Amethyst would just send it to your own write relays for backup for now. And we could have an option to turn that off for the privacy-conscious users. In that case, no event received via P2P ever leaves the phone.  
 Let me get this straight, will only private events be p2p?

Because in your initial note you say that this movement starts with private events, which made me understand that in the future all events would be p2p.

If only private p2p events and public notes continue to be transmitted via relays, at this point I support the idea. I believe that this way the scroll feed experience does not change. 
 Correct. Only private events will be P2P (because they are already encrypted in a P2P way). I just have way more private event types coming up, like legally-binding contracts: https://github.com/nostr-protocol/nips/pull/755  
 I think I understand now. So I really don't see any problem for the relay operators, nor for the feed experience 🤷‍♂️

Looking forward to the new private events 🚀 
 +1. I don’t see why any of us would be bothered by this. Relay operators don’t want your private stuff anyway. 

The details of course are in the implementation. I think its a lot harder to pull off then you’ve made it sound in this note :) 
 Ask and you shall receive! Privacy and reduced liability , value 4 value . 
 What a time to be alive 
 I think a simplex-like queue abstraction on top of nostr would be the best of both worlds 
 I have not found a reason to use Simplex if you are doing WebRTC. Instead of Nostr -> SimpleX -> WebRTC, you might as well just do Nostr -> WebRTC. It's one less point of attack.  
 The point of simplex is the async queues which you can’t replace with p2p tech. Nostr is missing the ephemeral push-pull queue idea 
 Async queues could fit nicely into relays. The queues are a really interesting solution in my opinion and I wonder where is that applicable in Bitcoin or Nostr space... 
 I agree async queues could just be implemented in Nostr but I don't see a need for async queues at the moment. But maybe I am missing something...  
 It enables ephemeral asynchronous notes without p2p 
 I understand. But I don't have a use for that yet. It's a nice to have in my bucket.

P2P is a must though. The whole point of p2p is to transfer private content without any servers involved.  
 You pretty much always need servers to holepunch connections at the very least. Not to mention its also pretty rare to have two clients online at the same time to establish p2p comms. Even in that case you may still need bridge servers. 
 Given these difficulties a temporary queue of messages would be much more reliable and just as private, if auth was required from the get go. 
 You need servers for P2P signaling, yes. But that signaling doesn't need async queues. I also question the assumption that two users are not online. They might not start online, but as soon as one messages the other, both stay online for the length of the conversation. And if you do push notifications, like we do, you can get the other user online in seconds. If both are online they don't need relays at all.  
 What's the niche of the vanilla SimpleX client for Nostronauts from your point of view? #asknostr 
 Cool 
 My initial reaction is Nostp2p is not Nostr. Looking forward to more details on this. 
 Sounds like combining the best of both decentralized approaches, great take. I think Nostr should stay open to innovations like this. 
 Yeahhhhhhh!

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpzpmhxue69uhkummnw3ezuamfdejsygzxpsj7dqha57pjk5k37gkn6g4nzakewtmqmnwryyhd3jfwlpgxtspsgqqqqqqsv4v8d2 
 I don’t know what this means but it sounds provocative 
 This nip is given me a boner 
 Love Amethyst 🫂💜👍🫡 
 would this make nostr client/s less data hungry? 
 Is there any use case for using IPFS as data storage for Nostr? 
 All for Nostr privacy improvements. This will probably be one of those fundamental design choices which look obvious in hindsight and baffling that it wasn't included in the first or second drafts of the protocol. Then again this could fail spectacularly with users' phones filling up to the brim or connections almost always falling back to relays, with months and months of dev hours wasted for basically nothing. But what do I know, I'm just your friendly hoodlum in these cyphers. Interested to see how all this unwinds.

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpz3mhxue69uhhyetvv9ujumn0wd68ytnzvupzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqvzqqqqqqystrw4y 
 "Nostr is just starting" -- @Vitor Pamplona @ ~Fall Equinox 2023

Listen closely if you didn't do already.

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpz3mhxue69uhhyetvv9ujumn0wd68ytnzvupzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqvzqqqqqqystrw4y 
 Yeah baby! 
 I look forward to your progress.  
 How did Napster do it? 
 Is this similar to the way Napster/Limewire worked?

nostr:note1dnpanu8aarvkk89ynrvu2wrmw9tzl9dx22tydcppxazqpusz8pls9rv9rz  
 nostr:note1dnpanu8aarvkk89ynrvu2wrmw9tzl9dx22tydcppxazqpusz8pls9rv9rz 
good or bad? 
 quote tweets on primal sucks 
 Is this comparable to something like holepunch? 
 👀

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpz9mhxue69uhkummnw3ezuamfdejj7q3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqqqqznscs53 
 

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpzpmhxue69uhkummnw3ezuamfdejsygzxpsj7dqha57pjk5k37gkn6g4nzakewtmqmnwryyhd3jfwlpgxtspsgqqqqqqsv4v8d2 
 Can't believe what I'm reading 👀 This could be mindblowing 🤯

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpzemhxue69uhk2er9dchxummnw3ezumrpdejz7q3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqqqqz8xspcg 
 🤔🤔🤔🤔🤔 
 This is a big challenge, support. Nostr now allows anyone to see who you're talking to through your public key, even if you can't see what we're talking about. It's not nice to have a private chat party in a glass room in the square where everyone can see. Better protection of privacy would be a huge step forward.💜🫂 
 You must look at veilid. https://veilid.com/docs/overview/

"Veilid is an open-source, peer-to-peer, mobile-first, networked application framework.

The framework is conceptually similar to IPFS and Tor, but faster and designed from the ground-up to provide all services over a privately routed network.

The framework enables development of fully-distributed applications without a 'blockchain' or a 'transactional layer' at their base.

The framework can be included as part of user-facing applications or run as a 'headless node' for power users who wish to help build the network." 
 Absolutely! 
 Is this available in China? Push service against GFW… 
 Zapped!

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcppamhxue69uhkummnw3ezumt0d5pzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqvzqqqqqqy63zq9p 
 does anyone know they should save their data themselves ?  This is the only point that bother me in this 😉 
 nostr:note1dnpanu8aarvkk89ynrvu2wrmw9tzl9dx22tydcppxazqpusz8pls9rv9rz

Nostr is about censorship resistance and at least for me, the most challenging mode of censorship resistance is censorship resistant broadcast. Avoiding meta data leak in encrypted transmission is a different problem to solve and nostr trying to solve the former would have to compromise on that to solve the latter. Therefore I believe Gift-wrapped DMs and "full P2P" is potentially harming nostr. 
 Is there a thread that discusses this? Would love to be a fly on the wall for this 🧐 
 Hmm. How are you going to achieve this and stay interoperable with other clients? I assume the fallback transmission you mentioned? Also, would this be utilizing nostrdb, so that users essentially use their own relay and communicate to other's via their own local relays? Is there a gossip model being used? So many questions. Is there an external discussion that I can see and randomly yell into? 
 I think it’s fair to say amethyst is not going to be very compatible with other clients going forward. I highly doubt anyone would build around his centralized push server as a core protocol mechanism. 
 I am not going to use the push server for P2P. There is going to be no server. Thats the whole point.  
 Plizz no hard forks 
 Man I need someone to explain this to me like I’m 5 
 Simple, if two users are using compatible P2P implementations, they can transfer their events via P2P, if not it goes through relays as usual. On a conversation via DMs for instance, I would assume the first DM comes in via relays and then moves to P2P when the person replies. The likelyhood of the two users being online is higher there. Then no additional DM goes through relays anymore, increasing privacy. 

Of course, each user can receive the message via P2P and still send to relays for backup, but that is the receving user's choice, not the sender.  
 Thanks. 
 Lots to test yet. We will see if can get this to an interesting level.  
 всех распустить... 
 Nost. 

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpzpmhxue69uhkummnw3ezuamfdejsygzxpsj7dqha57pjk5k37gkn6g4nzakewtmqmnwryyhd3jfwlpgxtspsgqqqqqqsv4v8d2 
 This is great Vitor! 👏👏👏👏👏 
 Wow,
respect!
This sounds amazing!

really looking forward to the future of #NOSTR
Means we can take over everything in communication with any possible device that has access to the inet.
Sounds like fun.

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcppamhxue69uhkummnw3ezumt0d5pzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqvzqqqqqqy63zq9p 
 Bullish. Relays can be a point of failure. P2p is the way  
 interesting 
 Humm.. I thought you would be happy with the privacy improvement...

The push notification service just double wraps and transmits already signed giftwraps and other events that are coming from relays. 

It's the same old push service, but now extremely private.  
 Indeed, scaling P2P networks in a trust-minimized way is very challenging. I’d like to hear his strategy given the claim.
nostr:note1j3lytr5drck9rwlmdldwajklhre9tyww2qtw6q95a5392zvh7qlsqxls3s 
 It's just a band aid over a broken system, similar to what Protonmail does with broken email. The fundamentals are not fixed, just patched over with more complications that eventually will prove to be vulnerabilities, in most cases. 
 And the async mailboxes will be there when the app needs it. They just won't be used for private events to make sure folks can't track people (or at least can't touch the complete message set).  
 I am not seeing anything. It will be P2P.  
 How will he see all?  
 Those messages come from regular relays people are using and our service pulls from to deliver notifications. We double wrap them before shipping them out. I am very surprised you are having a hard time with this. This is not rocket science.  
 Well, you have your experience and your assumptions and I have my experience and my assumptions.  
 Probably will at least create more confusion in the clients that already causes issues. What other clients are already planing this with yours? 
 This is baked into the way DMs are done in the protocol currently.

It would be very simple to break the chain of associations by including a "use this key for next message" in the messages and then every new message to and fro uses new keys each hop.

It's not even difficult to make this work with an async protocol, but this is how I designed Indra to work, with additional multi-hop onions to enable hidden services. It only needs to have the clients cache a few of the last received messages in case somehow one doesn't get through, the user can retry with an old key. Yes there is probably a DoS vector in this to try and catch the IP addresses of origins to bypass this but that'ls why Nostr - and bitcoin, indeed LN also, are successful - they don't try to solve every problem in one protocol.

That's exactly what Victor is doing with his work here.

It's not "privacy invading" to let people know that the protocol has zero privacy, but exploiting it is. Even if it's to "protect" users. Better to spend that energy finding solutions for the protocol if you ask me. 
 resusable rockets were a pipe dream, plus many other things

p2p works fine for private things, and for large scale a few things have worked 
 Yeah would have to be an extension 
 I doubt. I already have a small version working without a server.  
 Two peers behind nats need a server to coordinate/holepunch connections. This is pretty standard knowledge when building p2p stuff. What is this magic serverless tech you are using?

Establishing p2p connections is a very hard problem with many nat variations to get around. 
 Yep, it is pretty standard. :)  
 Odds of two people being online at the same time, in a world where apps are background suspended constantly: almost zero. 
 Usually yes, but not in a DM conversation. After the first messages, its more likely that both are online.

And we will need both online for voice and video calls anyway.. so..   
 I am not doing a sync between devices. I am just broadcasting the event directly to the users client.  
 Two peers behind nats need a server to coordinate/holepunch connections. This is pretty standard knowledge when building p2p stuff. What is this magic serverless tech you are using?

Establishing p2p connections is a very hard problem with many nat variations to get around. 
 Yep, it is pretty standard. :)  
 The receiving user can send to the desktop if they want to. The choice is the receiver's not the sender's.  
 Yep, it is pretty standard. :)  
 Well, the experience I have says otherwise.  
 🤷‍♂️ I guess time will tell. I don’t know anyone who keeps a social app open between messages.  They depend on notifications for that. 
 And we already have push notifications if we need to wake them up again. But our tests suggest that people don't leave amethyst when waiting for a DM. They just move to the feed. Which is perfect for this.   
 Well I don’t wish your idea ill anyways. I’d be doing a disservice if I didn’t voice my concerns, but working code trumps theory. We will see. 

As long as it doesn’t break compatibility with other clients (fallback). 
 It shouldnt break, just open a new way for exchanging events. But I still have lots to test. 

I will likely be doing Bluetooh, WIFI and WebRTC implementations, so there will be 3 new ways to share the event. But one at a time.  
 🤷‍♂️ I guess time will tell. I don’t know anyone who keeps a social app open between messages.  They depend on notifications for that. 
 And we already have push notifications if we need to wake them up again. But our tests suggest that people don't leave amethyst when waiting for a DM. They just move to the feed. Which is perfect for this.   
 Well I don’t wish your idea ill anyways. I’d be doing a disservice if I didn’t voice my concerns, but working code trumps theory. We will see. 

As long as it doesn’t break compatibility with other clients (fallback). 
 It shouldnt break, just open a new way for exchanging events. But I still have lots to test. 

I will likely be doing Bluetooh, WIFI and WebRTC implementations, so there will be 3 new ways to share the event. But one at a time.  
 And we already have push notifications if we need to wake them up again. But our tests suggest that people don't leave amethyst when waiting for a DM. They just move to the feed. Which is perfect for this.   
 Well I don’t wish your idea ill anyways. I’d be doing a disservice if I didn’t voice my concerns, but working code trumps theory. We will see. 

As long as it doesn’t break compatibility with other clients (fallback). 
 It shouldnt break, just open a new way for exchanging events. But I still have lots to test. 

I will likely be doing Bluetooh, WIFI and WebRTC implementations, so there will be 3 new ways to share the event. But one at a time.  
 Fair questions.
The #1 is the elephant in the room, I really cannot understand how this can work. 
 The general principle is there is a server that both parties rendesvouz through. It gets packets from both parties that connect to it. It can see in the packets the IP address, port, and other header junk needed for NAT in order to talk back to both parties. It sends that data to the parties themselves so they can talk directly to each other using those same NAT holes that were punched outbound to the server, while the server holds that open. This works everywhere including over CGNAT, double NAT, etc. 
 unless the gateway restricts those holes to the server's IP address. 
 Yeah. So how can works the *serverveless* p2p envisioned by Vitor? I cannot grasp this. 
 It doesn't 
 Got it. 
 unless the gateway restricts those holes to the server's IP address. 
 If i could, there wouldn’t be plagues raging, and murders charged, Tony

How is that ass cancer to die of, gangster? https://image.nostr.build/71c5037bb4c235c759757a8417f8621334cedc916e272781538315646b5d6ba5.jpg  
 I can’t since we have been accused of murder.
Can’t work it. https://image.nostr.build/14437f0d3a363345f664fb20f674a665ca1478ca8c98909041177f9cdfa3f35c.jpg  
 Have a blood bath. 
 I can’t since we have been accused of murder.
Can’t work it. https://image.nostr.build/14437f0d3a363345f664fb20f674a665ca1478ca8c98909041177f9cdfa3f35c.jpg  
 Have a blood bath. 
 @Vitor Pamplona is working on this:

nostr:nevent1qqsxes7e7r773kttrjjf3kw98pahz430jkn999jxuqsnw3qq7gprslcpr4mhxue69uhhxatsv4e8getnw3hx2apwdehhxarjxyhxxmmdqgsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqrqsqqqqqplhuysh