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


Onward 🫡


Cheers 🫡


It needs to be simple to use for the normies to understand


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?


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


LFG! 🚀


What is this? Can someone explain lol. But in a way I can understand 🥲


delfing


This is The Citadel.


Onward 🫡


Let's go 🚀


How do I get my nip-05 to read “tortuga@tortuga.nostr”


.nostr domains? Huh?


This is beautiful!


It will be eventually


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


Vamos🚀


I wish I could really understand the implications of this stuff.


“that leverages NOSTR as a transport for TCP” Can someone elaborate on that?


Bulk Zap ⚡ Advertise ZapAdd.com


So it’s accessing nostr via a cashu nutshell mixnet? It’s interesting but why not use Tor?


Alberti Protocol Does the same

https://github.com/AlbertiProtocol


What's stands nws for?


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


Great post 👍


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.


Nostr Web Services


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?


Pura Vida 🌴


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


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.


Onward 🫡


TCP:
Client → Service → Client
NWS:
Client → Entry Node → Nostr Relay → Exit Node → Service → Exit Node → Nostr Relay → Entry Node → Client


So is there a NIP or something for sending requests directly through nostr to a mint?


Me Likey 😌


Oh fuck that's cool. Nice work  nostr:npub16uq0cyx52lh2unczavzdw9dq2jphu69zutgpp9cnstz7zqtdex0qmcxla3!!


We're winning


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 😂


so how do I use it or help?


Well this seems big


LFG!!


Does this benefit people who are already using VPN?


:super:


Great post 👍