Avatar
supersu
bd171ec3857a546a9c665e016931d7177dbd5a6887992276663980483b1acc15
Founder of holesail.io, an avid reader and a Linux enthusiast. Join me on Keet.io - Holesail.io (invite expires on 2024/6/13 5:01 UTC) pear://keet/yrbaxx3qmntmqgpfwi9ddo7ehqcjwm6nznt41r59u1tnmfz3o93y5m54pmiakkpksq6mjod8otqtj3jyut3ppxgg3idzcryqneekhrhhnpc9pedg

I went for a trip last week and this scene looks straight out of an anime.

https://m.primal.net/KGoI.mp4

Holesail version 1.7.0 is out with a brand new feature: Holesail Manager.

Run holesail in the background and persist connections on reboot.

It is as simple as doing holesail-manager create

Docs coming soon.

Replying to Avatar hzrd149

Please feel free to add it to holesail or copy and take over the project. I'm not going to have time to add features or maintain it

My goal was to build a proof of concept that would allow any app to connect to hyper nodes without needing to be written in NodeJS or integrating hyperdht

Also there might be a way to roll this into a mobile app like Orbot. since I'm pretty sure Orbot is doing the same thing on mobile

nostr:npub1h8nk2346qezka5cpm8jjh3yl5j88pf4ly2ptu7s6uu55wcfqy0wq36rpev SOCKS5 is what every app (browser, bitcoin wallet, etc...) use to interface with Tor. they don't directly talk to the Tor network but instead talk through a proxy that in turn talks to Tor

This SOCKS5 proxy allows any app that supports routing traffic through proxies to connect to .hyper domains, which are just the pubkey key of any hyper node

Thanks, I was also thinking something like Orbot for mobile devices. This is a solid suggestion and will improve holesail a lot.

I find Nostrudel ninja UI a bit hard to digest, let me check rabbit

What Nostr client is everyone using here? Specifically on the web / Mac.

Basically, it starts a SOCKS5 proxy in the background that will automatically handle connecting with holesail/hyperdht connections, you wont have to connect to a key every time in terminal, the proxy will automatically do it on the go for any app for browser.

For example, doing .hyper in the browser will load a holesail connection from .

It is pretty sick, nostr:npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr I see it is MIT, I might add it to holesail someday

Replying to Avatar hzrd149

Well jokes on me because this code actually works, I just never finished it enough to fully test it

nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyghwumn8ghj7mn0wd68ytnhd9hx2tcprfmhxue69uhkummnw3ezuargv4ekzmt9vdshgtnfduhsqgxprey4pqkdfqf90a0nyz2vls6x8ae6pt3k8rmf7dhkhmrwd7clsy0z7jdy

So without further ado I present to you Hyper SOCKS5 Proxy

This is a SOCKS v5 proxy server that can automatically connect to HyperDHT node and Holesail servers. This is cool because it lets any application that already supports SOCKS5 or HTTP proxies ( mainly web browsers ) to connect to hyper nodes

Let me show you can example

First we have to startup a http server and use holesail to make it available on hyper

Next, on a different machine we can connect to it using hyper-socks5-proxy and configure FireFox to use the proxy

https://v.nostr.build/3bcbJMX7XbaWMdfA.mp4

NOTE: besides this example ( tested on my LAN ) I have not tested anything else. but in theory it should be possible to host relays over hyperdht

The reason I had to convert the hex connection string ( hyperdht pubkey ) into a bech32 address was because the maximum length for a domain name is 63 characters. and the connection string is 64...

But encoding it to bech32 with a 4 character prefix makes it only 58. Its identical to how nostr npubs are encoded

Anyways here are the links to the code if you want to play around with it

https://github.com/hzrd149/hyper-address ( https://hzrd149.github.io/hyper-address/ )

https://github.com/hzrd149/hyper-socks5-proxy

https://github.com/hzrd149/hyper-http-proxy

This is also available on my custom umbrel app store. If for some crazy reason you want to run my untested code on your lightning node ( please don't )

https://github.com/hzrd149/umbrel-community-app-store

#pear #hyperdht #holesail #proxy #socks5

Also since this is custom DNS resolution I dont think we need to convert to bech32 🤔

Perhaps you are too smart to understand, but I will try:

Unlike traditional and common holepunching methods, there is no requirement of a third party STUN server in Kademliya.

The peers themselves act as a stun themselves(kind of) and help in holepunching.

Replying to Avatar hzrd149

Well jokes on me because this code actually works, I just never finished it enough to fully test it

nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyghwumn8ghj7mn0wd68ytnhd9hx2tcprfmhxue69uhkummnw3ezuargv4ekzmt9vdshgtnfduhsqgxprey4pqkdfqf90a0nyz2vls6x8ae6pt3k8rmf7dhkhmrwd7clsy0z7jdy

So without further ado I present to you Hyper SOCKS5 Proxy

This is a SOCKS v5 proxy server that can automatically connect to HyperDHT node and Holesail servers. This is cool because it lets any application that already supports SOCKS5 or HTTP proxies ( mainly web browsers ) to connect to hyper nodes

Let me show you can example

First we have to startup a http server and use holesail to make it available on hyper

Next, on a different machine we can connect to it using hyper-socks5-proxy and configure FireFox to use the proxy

https://v.nostr.build/3bcbJMX7XbaWMdfA.mp4

NOTE: besides this example ( tested on my LAN ) I have not tested anything else. but in theory it should be possible to host relays over hyperdht

The reason I had to convert the hex connection string ( hyperdht pubkey ) into a bech32 address was because the maximum length for a domain name is 63 characters. and the connection string is 64...

But encoding it to bech32 with a 4 character prefix makes it only 58. Its identical to how nostr npubs are encoded

Anyways here are the links to the code if you want to play around with it

https://github.com/hzrd149/hyper-address ( https://hzrd149.github.io/hyper-address/ )

https://github.com/hzrd149/hyper-socks5-proxy

https://github.com/hzrd149/hyper-http-proxy

This is also available on my custom umbrel app store. If for some crazy reason you want to run my untested code on your lightning node ( please don't )

https://github.com/hzrd149/umbrel-community-app-store

#pear #hyperdht #holesail #proxy #socks5

Check this out, guys, It's the coolest thing by far I have seen build-on holesail.

nostr:note10em22c0rr0cjwd5ndy7rl76u8m2z6my2t7y0qpyfhvv5crg4g9nsqhkx03

It is pure P2P, the nodes do not help in holepunching but to discover first few peers, a node is just a known peer. Anyone can become a node.

You need to look into Kademliya algorithem to understand how it all works.

Replying to Avatar hzrd149

nostr:npub1h5t3asu90f2x48rxtcqkjvwhza7m6kngs7vjyanx8xqyswc6es2s4645z5 nostr:npub1h8nk2346qezka5cpm8jjh3yl5j88pf4ly2ptu7s6uu55wcfqy0wq36rpev you guys have used hyperdht the most. If you don't mind could you test this an tell me if it works on your computer. I don't want this to be a case of "well it works on my machine" 😀

It works flawlessly , let's gooo ⛵️

Replying to Avatar hzrd149

Well jokes on me because this code actually works, I just never finished it enough to fully test it

nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyghwumn8ghj7mn0wd68ytnhd9hx2tcprfmhxue69uhkummnw3ezuargv4ekzmt9vdshgtnfduhsqgxprey4pqkdfqf90a0nyz2vls6x8ae6pt3k8rmf7dhkhmrwd7clsy0z7jdy

So without further ado I present to you Hyper SOCKS5 Proxy

This is a SOCKS v5 proxy server that can automatically connect to HyperDHT node and Holesail servers. This is cool because it lets any application that already supports SOCKS5 or HTTP proxies ( mainly web browsers ) to connect to hyper nodes

Let me show you can example

First we have to startup a http server and use holesail to make it available on hyper

Next, on a different machine we can connect to it using hyper-socks5-proxy and configure FireFox to use the proxy

https://v.nostr.build/3bcbJMX7XbaWMdfA.mp4

NOTE: besides this example ( tested on my LAN ) I have not tested anything else. but in theory it should be possible to host relays over hyperdht

The reason I had to convert the hex connection string ( hyperdht pubkey ) into a bech32 address was because the maximum length for a domain name is 63 characters. and the connection string is 64...

But encoding it to bech32 with a 4 character prefix makes it only 58. Its identical to how nostr npubs are encoded

Anyways here are the links to the code if you want to play around with it

https://github.com/hzrd149/hyper-address ( https://hzrd149.github.io/hyper-address/ )

https://github.com/hzrd149/hyper-socks5-proxy

https://github.com/hzrd149/hyper-http-proxy

This is also available on my custom umbrel app store. If for some crazy reason you want to run my untested code on your lightning node ( please don't )

https://github.com/hzrd149/umbrel-community-app-store

#pear #hyperdht #holesail #proxy #socks5

Freaking heck I just tested it, and it works. This is so cool.

Replying to Avatar hzrd149

In the HTTP spec there is support for proxy requests using the CONNECT method

It allows a client to ask the proxy server to open a connection to a remote machine and forward traffic

https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling#http_tunneling

Tor uses something very similar but its a more complicated proxy protocol called SOCKS5

Most apps, browsers and operating systems have support for routing all thier traffic through HTTP or SOCKS5 proxies

This is how tor integrates with so many apps, they aren't specifically integrating with tor. But instead they support routing their traffic through proxies

The local tor proxy ( localhost:9090 ) takes advantage of this and is setup to route all traffic through tor nodes for privacy.

But because its handing all the traffic its also able to let apps connect to .onion domains

When it detects that an app is trying to connect to an .onion domain, instead of routing the traffic out to the clearnet it can make a connection to another tor node

I'm suggesting building something similar for hyperdht

The hyper proxy would watch an apps traffic, then when it detected the app was trying to connect to a .hyper domain, it would make the connection to the remote hyper node and forward the traffic to it

If this worked it would allow users to use any web browser they like ( with a little configuration ) and connect to .hyper domains

Ohhh damn, now I get it lol. That would is pretty amazing. Kind of like a bridge between the browser and holesail