Oddbean new post about | logout
â–² â–¼
 I'm excited to announce the first release of NWS, a resilient connectivity solution that leverages NOSTR as a transport for TCP. NWS enables seamless communication between devices without public IP addresses. Below are the key features introduced in this release:

- **Exit Node Internet Relay:** Exit nodes can relay public internet traffic, allowing entry nodes to access the internet using the exit node's outgoing IP address.
    
- **.nostr Domain Support:** NWS now supports `.nostr` domains, which are valid RFC 1035 domains. This feature ensures compatibility with most existing clients.
    
- **Reverse TCP Connect Mode:** We've added a reverse TCP connect mode where the exit node initiates a TCP connection to the public entry node upon receiving a request. This mode utilizes NOSTR for service discovery while forwarding data packets through the reverse connection, enhancing connectivity and reducing load on public NOSTR relays.
    

This is just the beginning. With many more features and enhancements on our roadmap, we are excited about the future of NWS and its potential. Stay tuned for more updates as we continue to develop NWS.
https://github.com/asmogo/nws/releases 
 👀 
â–² â–¼
 Awesome work! Excited to use this! 
 👀
nostr:nevent1qqsgtqdfeq8jnud7fuca3g6gzcfnwy4k3gjrg6vqzpl7rgek0xqk30cpzpmhxue69uhkummnw3ezumt0d5hsygxhqr7pp4zha6hy7qhtqnt3tgz5sdlx3ghz6qgfwyuzchsszmwfncpsgqqqqqqsrsu0vz 
â–² â–¼
 It needs to be simple to use for the normies to understand 
â–² â–¼
 It will be eventually 
â–² â–¼
 Cool 
â–² â–¼
 game changer 🙇â€â™‚ï¸ 
â–² â–¼
 Why base32 encode the pubkey?  Why not use the hex which is the canonical form? 
â–² â–¼
 "reducing load on public NOSTR relays" -- please dont use public relays for this

nostr:note1skq6njq098cmune3mz35s9snxuftdz3yx35cqyrlux3nv7vpdzlsfygf0l  
â–² â–¼
 👀
nostr:nevent1qqsgtqdfeq8jnud7fuca3g6gzcfnwy4k3gjrg6vqzpl7rgek0xqk30cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygxhqr7pp4zha6hy7qhtqnt3tgz5sdlx3ghz6qgfwyuzchsszmwfncpsgqqqqqqs7jzhut 
â–² â–¼
 So excited. Don't understand a thing.  
â–² â–¼
 Sehr interessant, das muss ich mir noch mal im Detail anschauen.


nostr:nevent1qqsgtqdfeq8jnud7fuca3g6gzcfnwy4k3gjrg6vqzpl7rgek0xqk30cppemhxue69uhkummn9ekx7mp0qgsdwq8uzr290m4wfupwkpxhzks9fqm7dz3w95qsjufc930pq9kun8srqsqqqqqpm4s8nw 
â–² â–¼
 🔥🚀 
â–² â–¼
 ✨🙠
â–² â–¼
 Are you basically making TOR for Nostr? 
â–² â–¼
 👀 
â–² â–¼
 What is this? Can someone explain lol. But in a way I can understand 🥲 
 This is awesum, can't wait to get back to hacking on it! 
â–² â–¼
 We really need to buy the .nostr top level domain. 
nostr:nevent1qqsgtqdfeq8jnud7fuca3g6gzcfnwy4k3gjrg6vqzpl7rgek0xqk30cpzpmhxue69uhkummnw3ezumt0d5hsygxhqr7pp4zha6hy7qhtqnt3tgz5sdlx3ghz6qgfwyuzchsszmwfncpsgqqqqqqsrsu0vz 
 !!!
nostr:nevent1qqsgtqdfeq8jnud7fuca3g6gzcfnwy4k3gjrg6vqzpl7rgek0xqk30cpg3mhxw309a3xjarrda5kuu3kv3jn2mrtweurgarswajx67njv3nxgurvvy6hx7tpxfskvamsvdsky6n4wqe8surfx4j82mrzv9jzummwd9hkutczyrtsplqs63t7atj0qt4sf4c45p2gxlng5t3dqyyhzwpvtcgpdhyeuqcyqqqqqqg66h7qa 
â–² â–¼
 This is The Citadel.  
â–² â–¼
 👠 
â–² â–¼
 How do I get my nip-05 to read “tortuga@tortuga.nostr†
â–² â–¼
 .nostr domains? Huh? 
â–² â–¼
 This is beautiful! 
â–² â–¼
 👀 
â–² â–¼
 Let's go 🚀 
â–² â–¼
 History in the making 
â–² â–¼
 The tech side is hard to catch up in nostr.

the only thing I understood is NWS allows us to communicate w/o using public Ip address.  

other parts are mostly foreign language 😂 . 
I am listening to computer science fundamental course for weeks to learn ABC 

Will get there, 

nostr:note1skq6njq098cmune3mz35s9snxuftdz3yx35cqyrlux3nv7vpdzlsfygf0l  
 But can we use nostr without compromising the IP on the relays?  
â–² â–¼
 as much as i like developments regarding nostr, i think relays will need to choose a path after this:

1. a queryble data store / note store with a big db
2. being a tor node with a short db

i am leaning towards 1 and i am happy to serve as 1. not much inspiration towards 2. 


nostr:note1skq6njq098cmune3mz35s9snxuftdz3yx35cqyrlux3nv7vpdzlsfygf0l  
â–² â–¼
 I wish I could really understand the implications of this stuff.  
â–² â–¼
 “that leverages NOSTR as a transport for TCP†Can someone elaborate on that? 
â–² â–¼
 TCP:
Client → Service → Client
NWS:
Client → Entry Node → Nostr Relay → Exit Node → Service → Exit Node → Nostr Relay → Entry Node → Client 
â–² â–¼
 So it’s accessing nostr via a cashu nutshell mixnet? It’s interesting but why not use Tor? 
 The other way round: it allows you to access services like a Cashu mint via nostr, without having to connect to the service directly via TCP/IP.

We're going to use this to make Cashu mints available to wallets directly on nostr so operators don't need to doxx their IP or get DNS. 

We've looked into numerous alternatives, none of them are as simple as Nostr (e.g. work from within the browser). However, Tor provides much better privacy. This is not a privacy tool. 
â–² â–¼
 Why can't cashu mint be accessed w/o dns or IP using NWC/NC-like RPC? Why use generic traffic tunneling for this? 
 The simplest example is a server that can't expose ports due to firewall or NAT rules. Another case is a mint that doesn't have a static IP address (can use an npub instead).

 Am I getting your question right? 
â–² â–¼
 NWC wallets don't have static IPs and are behind firewalls too. Clients send ephemeral events as requests to wallet pubkey on some relay, wallet subscribes to requests and replies in a similar way tagging the client pubkey.

Same way wallet could talk to a mint doing RPC using ephemeral events.

NWS is doing similar thing but with a much more complex setup - enter/exit nodes socks5 etc, and the payload is arbitrary binary data, wheres mint RPC would be much simpler and more structured - wallet just connects to a relay and writes/reads some encrypted events.  
 Yeah we're not inventing a protocol, just changing the transport layer. Http/s still works like it did before, often no changes necessary to the client and server software. 
â–² â–¼
 So to use a mint which is behind NWS from my browser I would have to set socks5 entry node as proxy? 
 You can use a public socks5 entry node since the traffic will be encrypted via https 
 Or: you can send the requests directly from JS running in your browser through nostr, skipping the entry node. 
â–² â–¼
 So is there a NIP or something for sending requests directly through nostr to a mint? 
â–² â–¼
 Ok I got it, I guess I could form the http request as nws events in js to simulate the behavior of entry point. Thanks, sounds interesting! 
â–² â–¼
 I wonder if I could bypass cors this way to show link previews more reliably... 
â–² â–¼
 This is gonna get out of hand 😂 
â–² â–¼
 Alberti Protocol Does the same

https://github.com/AlbertiProtocol 
â–² â–¼
 What's stands nws for? 
â–² â–¼
 Nostr Web Services 
â–² â–¼
 Barely understand anything, but head is moving towards the following gist "Relays and clients, or at least just relays, won't know people's IP as they sign and publish events".

Did my brain understand that right? x3 
â–² â–¼
 Oh fuck that's cool. Nice work  @asmogo!! 
â–² â–¼
 so how do I use it or help? 
â–² â–¼
 🔥 🔥 🔥 🔥 🔥  
â–² â–¼
 Well this seems big  
â–² â–¼
 Does this benefit people who are already using VPN?