Oddbean new post about | logout
â–² â–¼
 After several weeks of persistent effort, I'm excited to share Nostr Web Services (NWS).

NWS makes your web service reachable without having a publicly accessible IP address or DNS. All you need is an npub and a set of Nostr relays. A wide range of existing services could be run on NWS without requiring any significant changes. NWS achieves this by establishing a TCP connection between client and server which can be used by these applications.

Please keep in mind, that the software is in a very early state and not even released yet. 

https://github.com/asmogo/nws
 
â–² â–¼
 How different is this then ENS? 
â–² â–¼
 ENS is overlays DNS, this overlays TCP/IP like Tor. Fairly useless without a browser 
 errrrr....
nostr:note1vdjx7x9cdmmynnfjj36evnvacc8xjz0yll6pke3x8k7k9y6v3xmsf9c5wa 
 SSH is on top TCP/IP 
 Was referring to > Fairly useless without a browser

I'm pretty sure this design also enables use with browsers when combined with DNS and traffic is allowed to exit into the open internet. 
 Good luck getting regular niggas to use ssh or socks 😂 I've already tried that.  
â–² â–¼
 Good things get wrapped into invisible UX and adopted without notice. "good luck getting regular people to use SSL certificates!" 
 That's what browsers do. Nostr autists aren't solving any problem unless they write a better browser (than firefox) 
â–² â–¼
 This is a very powerful, useful and interesting new development. There's no reason to piss on it because it didn't also rebuild the entire world. 

Everything doesn't have to be relevant for every normal person on earth in order to be useful and exciting for some (at first).  
 It doesn't matter if I piss on it or not. It doesn't matter if it's exciting to autists. It needs to be useful for a good chunk of people or it's another joke fad.  
â–² â–¼
 We disagree.
New things need to be useful to 1 person first. Then 3, then 20, etc. 
How do you think we got anything? 
 All software I use was useful to millions of people from the beginning. Browser, media player, terminal emulator. Remember the app economy that didn't happen? Now you know it's cause the modern userbase chose 10 apps and nothing custom. Regardless, what problem does Nostr solve? Talking about bitcoin was never a problem 
â–² â–¼
 You tell me what problem Nostr solves, you're spending your scarce time and energy on it. Why? 
â–² â–¼
 "until," not "unless" 
 Semantics 😀 
â–² â–¼
 Why do we need this? 
â–² â–¼
 So when domains go down or are taken down, access to the services don't go with them  
â–² â–¼
 Same reason you need Nostr when "twitter already exists" 
â–² â–¼
 But what advantages does this have over Tor or I2p hidden services? 
â–² â–¼
 Cats should be skinned many ways. 
Different approaches are better or worse for different contexts. Also, surprising net-new discoveries are made beyond the frontier when you re-solve a problem with a new stack. Sometimes some property of the stack, in connection with the "already solved problem", reveals novel new territory. (Look at "the microblog UX" getting "re-solved" by Nostr) 
â–² â–¼
 Cats should probably not be skinned  
â–² â–¼
 I’m sceptical but experimentation is good 
â–² â–¼
 Ok so it’s more like tor/i2p  
 Exactly like those. Autists love to copy each other.  
â–² â–¼
 Thx 
â–² â–¼
 No Shitcoin? 
â–² â–¼
 Well yeah that’s a difference  
â–² â–¼
 I have no idea what this is, but it's probably cool.

nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqpzemhxue69uhkummnw3ezuerpw3sju6rpw4ej7q3q6uq0cyx52lh2unczavzdw9dq2jphu69zutgpp9cnstz7zqtdex0qxpqqqqqqz089rnu 
â–² â–¼
 When someone tells you that Nostr is just a Twitter alternative, tell them that our developers are literally rebuilding the Internet.
nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygxhqr7pp4zha6hy7qhtqnt3tgz5sdlx3ghz6qgfwyuzchsszmwfncpsgqqqqqqshazqcn 
â–² â–¼
 Wow!!! 
â–² â–¼
 Would it be possible (eventually) to use this to keep nutsack.me nuts on Citrine?   
â–² â–¼
 Waiting for the release ! 
â–² â–¼
 Is there a "why not Tor"? 
â–² â–¼
 Exactly. I don't get all of the excitement around this, either.
 
â–² â–¼
 Nostr provides discoverability  
â–² â–¼
 lol, discoverability is still a problem in nostr. But, suspending disbelief, the result of discovering something is an extractable address. We don't say that Twitter provides discoverability and then conclude that Twitter should implement a new transport protocol. 
 tor is slow, doesnt scale and its not flexible. A native nostr discoverablity layer (and anonimity layer) could be used in many ways. 
One of them is a better tor with lightning/ecash micropayment to actually scale the service 
â–² â–¼
 Tor is slow because it works and people use it. Bouncing requests through one or two nodes won't provide reliable anonymity, and using relays as TCP/IP will be unbearably slow if more than two people actually use it. 
 tor is slow because therse no anti-spam (actually they added a sort of proof of work client side, but it is not so effective), theres no incentive to run nodes that are the facto moslty feds and volountary. If you add micropayments as spam filter and as economic incentive for people to run relays, you can have a tor network that scales.
Also its trivial to implement in a way that provide reliable anonimity, it just need to reimplement onion routing, all problems in theory are solved. 
 Tor doesn't work in a browser without additional software. This will. 
â–² â–¼
 Furthermore, you can't trust Tor servers and a huge part of them are run by governments.

The difference here is that we can choose the relay servers and avoid the ones we don't exactly trust. 
 nostr isn't protected against that either 
â–² â–¼
 Nostr relays are few, it is easier to expose rogue actors. 
â–² â–¼
 Tor does work in the browser if you're prepared to run a proxy.  That is additional software. 
 Correct, I wrote "without additional software". A proxy is additional software. 
â–² â–¼
 NWS main components

Entry node: It forwards tcp packets to the exit node using a SOCKS proxy and creates encrypted events for the public key of the exit node.

Exit node: It is a TCP reverse proxy that listens for incoming Nostr subscriptions and forwards the payload to the designated backend service.

https://m.primal.net/JbPA.png  
 nostr:note1jaclnk5n5xf4fvnzuectlqtf57t30xkmv7kn8gx8rzya3nftr95q8qrhju 
â–² â–¼
 https://primal.net/e/note10kjsna96qpg4am8fm99t77589k286yehhlms86lyw4faeed7p8dsvvfem0 
â–² â–¼
 This Will guy gets it. I should see what else he's doing 
â–² â–¼
 Probably the best nostr dev, rn 
â–² â–¼
 Sorry, I have terrible humor 
â–² â–¼
 Looks like fun

nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqpz9mhxue69uhkummnw3ezuamfdejj7q3q6uq0cyx52lh2unczavzdw9dq2jphu69zutgpp9cnstz7zqtdex0qxpqqqqqqzqgvxga 
â–² â–¼
 thanks for sharing, sounds very interesting, i'll try to use it locally as described in the repo and report any feedback! 
â–² â–¼
 nostr:nprofile1qqsrs7xetkmms4xr5rfm944hh7dl9zekzc47vsex74fphfcu7w6956gpr9mhxue69uhks6tkv46xzmrt9ehx7um5wgcjucm0d5qscamnwvaz7tmzwf3zu6t0qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxghnqlhg  
â–² â–¼
 👠
â–² â–¼
 congratulations 
â–² â–¼
 @kukks uses nostr for coordinator discovery already 👀 
 Hope this fix nostr ip leak into the relays itself 
nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygxhqr7pp4zha6hy7qhtqnt3tgz5sdlx3ghz6qgfwyuzchsszmwfncpsgqqqqqqshazqcn 
â–² â–¼
 Casually replacing IP. 🚀 
nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqpz9mhxue69uhkummnw3ezuamfdejj7q3q6uq0cyx52lh2unczavzdw9dq2jphu69zutgpp9cnstz7zqtdex0qxpqqqqqqzqgvxga 
â–² â–¼
 #golang 
â–² â–¼
 Amazing 👀 
â–² â–¼
 I already do the same thing, connect to any service I want, using keys, without nostr:

https://github.com/bitfinexcom/hypertele 
â–² â–¼
 this sounds really cool, well done.  
 Got this running and tested, so far so good. Nice work! Will keep tinkering with it. 
 That was fast, nice  
â–² â–¼
 This is awesome  
â–² â–¼
 ðŸŒðŸ‘€

nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqpz9mhxue69uhkummnw3ezuamfdejj7q3q6uq0cyx52lh2unczavzdw9dq2jphu69zutgpp9cnstz7zqtdex0qxpqqqqqqzqgvxga 
â–² â–¼
 This sounds incredibly exciting.

My first thought: What if someone tries to DDoS attack a web service?

Wouldn't that then in turn also DDoS many Nostr relays? 
â–² â–¼
 how are relays protected from ddos attacks 🤔 
â–² â–¼
 By having all TCP packets proxied by the entry node, the number of incoming IP addresses for the relay operator is significantly reduced. 

This simplifies IP blacklisting in case of an attack, as NWS funnels all client requests through the entry nodes. Consequently, the  distribution of requests is determined by the total number of entry nodes.

If your goal is to DDoS Nostr relays, it's likely more effective to flood them with normal events. 
â–² â–¼
 try 
â–² â–¼
 stared it on gh! 
â–² â–¼
 I highly appreciate that 🤜 💥 🤛  
â–² â–¼
 🎉🎉 great job!! 
â–² â–¼
 I'm confused... How does this expand NOSTR's capabilities? 
â–² â–¼
 How can we help? 
â–² â–¼
 Any contribution is welcome! Whether you want to be a contributor, an exit or entry node runner, or just help spread the word.

I'm currently working on adding an HTTPS reverse proxy with auto-generated self-signed certificates. This will allow exit node runners to accept encrypted HTTPS connections from public entry nodes without enabling TLS in their backend services at all.

https://github.com/asmogo/nws/pull/21  
â–² â–¼
 Seems like you're expending quite the effort to reinvent the wheel, no? Exit/Entry nodes? Why wouldn't you just use a more simple system already in place established by P2P tech? 
â–² â–¼
 it would be cool to have an app for nostr:npub1aghreq2dpz3h3799hrawev5gf5zc2kt4ch9ykhp9utt0jd3gdu2qtlmhctto run a exit or entry node 
â–² â–¼
 Maybe all your questions should be followed by a zap #V4V 
â–² â–¼
 Invalid lytn addr @asmogo 
â–² â–¼
 Are you interested in investing in bitcoin mining? Here is the opportunity to start earning large in crypto mining using my platform and strategy. Just a Dm away from your financial freedom 
â–² â–¼
 Wow big shout out to my crypto expert, I invested  $1,000 and got back  $10,000 just within 6 hours  of investing, y’all dm him now and get paid today 🥳🥳@jiimmysong@jiimmysong 
â–² â–¼
 Weekly recap;

nostr:nevent1qqsvzkwvvf0cq67lf7nddm4rtg7x8zaqdwurkw7nv9lx3yzcgx3andctt0vpy
nostr:nevent1qqs93m8wedjpqxw5rxl869pzke45usgjqdhajxfm2609e3q743l55lse0je3h
nostr:nevent1qqsq6uuhttuljvan690yc8hww4sy38sjwat5ldkqejzzdfa3hf8434grasj4v
nostr:nevent1qqsv78sjt0u38tzgzvulema5kyf7f0va58xpcu0jcwn2esudtwg00vqn72g6q
nostr:nevent1qqs2fp9zkylrxak94jkaznhj959systtsujdhvfxuwfjzvlemss25cgcl4emc
nostr:nevent1qqstwe6n4qchk85zf79dn4r4332v4ulc484hf5zmrp0rt6kqcl7teugp54gf4
nostr:nevent1qqsxwjenpwf7wulg50sfhvkpjrvtrg7xrevkz5kpx70kya06ykslp2cdpfv5n
nostr:nevent1qqspz3qg7n2fvtnx5m0504uew9x29kn4e6m2l2wtpugy0wc2wucecece7xwr3
nostr:nevent1qqsz4mtuhe0kamf9gu9n9thwnnkt98dq73n54qappqrkzhhwrdgznsspuckcn
nostr:nevent1qqsdx35hmyxpsx2exxg73tjsd0lnrr4y6jyvmdgjw5fdw94t3xf4r4gcla6xy
nostr:nevent1qqsdma665ydf7g9svzcxyt9za9nynkn4jzen6s73s2djyl0mweq6zmgw7afev
nostr:nevent1qqsw98gy8yvknxgw0pmdd46dkkvrfnqlusafzjnj47h88kkllu20lvcqnmwx0
nostr:nevent1qqsqphqtj6jl25d05593zyum602s06d2ll5cncdec692rujp2n08n0g5rl9qx
nostr:nevent1qqsge2w2w8xtvxuc4jfgkg25rh6frysrdnphv270tvl0xy0wseszwzq5gehzw
nostr:nevent1qqsw077s2mzlz20449emvynlcwmwjz8p0k0rar6x70snnwn3wd78gkqpzdmhxue69uhkummnw3ezu7nzvshxwee0qgs8mez352yxc2r9yt838c9f0sfs86ey0ygh7e996qspx773957u95grqsqqqqqpvpn2w2
nostr:nevent1qqswgsx8qvx45h5hx8ln9c3ka95mf0jvn3m0c5xhg3puk0maswclrcqkvgj2y