Live data from Hacker News

Rayfish, Peer-to-peer mesh VPN with no server to trust

rayfish.xyz

91–100 of 116 posts

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#91

Nowadays I question the necessity of vpn overlay networks. Why not just serve QUIC/HTTP3/Iroh over the internet directly in your application? And use oidc/client cert for authn/authz

Yes, you can also do it. VPN is just one of those applications to be honest. Think of it as relaying packets over iroh.

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#92

Earlier quoted context omitted.

The grandparent comment is correctly pointing out the sentence is an LLM tell. "Membership is a question they ask a server" is a bogus sentence. "membership" is not a "question". It's syntactically valid semantic nonsense. "Membership is dictated by a server" is one of several human sentences saying what that one is trying to.

Going from starting the project two weeks ago to already having a flashy marketing site is another tell, unfortunately. As much as I would love to see a trustworthy version of this idea. https://github.com/rayfish/rayfish/commit/c49816e6dfba19e91a...

Actually the flashy website was built 4 years ago by another person. We actually tried to build it 4 years ago, but other ventures with higher upside kept our focus. Now you get a VPN for free, no strings attached, although it is vibecoded you still complain :cry:

If you dont like it dont use it

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#93

Earlier quoted context omitted.

What’s the sigh to, out of curiosity, just because this makes revocation hard?

Partly. Partly because using EUF-CMA pins the record to the CA which makes membership deniability non-trivial which I don't love. It's not dumb, it's what Signal uses AFAIK and in transit message deniability is different than the signer. But still.. Also that sentence structure is very claudelike.

English is not my mothertongue, therefore I told Claude (and GLM-5.2) to improve the wording as much as they could.

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#94
post #53

So it's effectively a clone of Nebula minus the need for a lighthouse.

Not really. Nebula creates a layer-3 network[1]. Rayfish is built upon Iroh which is a layer-7 network. [1]: https://nebula.defined.net/docs/#technical-details

rayfish is a layer-69

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#95
post #4

Hi HN, we built Rayfish, a peer-to-peer mesh VPN written in Rust on top of iroh. The core idea: every node has a keypair, and its identity on the network is that public key. From the key we derive a stable IPv4 in 100.64.0.0/10 and a stable IPv6 in 200::/7, similar in spirit to yggdrasil. Those addresses are yours for as long as you hold the key, and they don't change when you move networks or your physical IP change…

With IPv6 it's plausible that you can avoid collisions as long as you use an expensive hash function, but for v4 how do you avoid IP collisions? With only 22 bits of entropy in your v4 addresses, you'll get accidental collisions with only ~2000 users.

Indeed. So what we do is build your ipv4 using private key bits + collision_index. It is not perfect but it has worked in our tests. We'll keep improving it.

The collision_index is incremented when a collision happens on a network. Let's say you join network A, B, C. But when you join C, another peer has the same IP. The coordinator (which is a role anybody can have in the network) will not accept you in the network unless you change your IP. Which means you need to increase your collision index. Now that process is repeated N times until you don't collide with any other peer.

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#96

Hi HN, we built Rayfish, a peer-to-peer mesh VPN written in Rust on top of iroh. The core idea: every node has a keypair, and its identity on the network is that public key. From the key we derive a stable IPv4 in 100.64.0.0/10 and a stable IPv6 in 200::/7, similar in spirit to yggdrasil. Those addresses are yours for as long as you hold the key, and they don't change when you move networks or your physical IP change…

Please disclose your use of AI. It's rather telling 2 weeks from repository commencement to release. Why should anyone use this over other products, and what testing have you done to PROVE it works as explained by your LLM?

If you dont like the use of AI dont use it. Very simple. I went from idea (4 years ago) to implementation in 2 weeks.

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#97

Hi HN, we built Rayfish, a peer-to-peer mesh VPN written in Rust on top of iroh. The core idea: every node has a keypair, and its identity on the network is that public key. From the key we derive a stable IPv4 in 100.64.0.0/10 and a stable IPv6 in 200::/7, similar in spirit to yggdrasil. Those addresses are yours for as long as you hold the key, and they don't change when you move networks or your physical IP change…

Hey, thanks for sharing this, this is a very cool project and one that is the obvious next step with iroh. I'm curious if you plan to make it into a library to be used, or you intend to keep it solely as an application?

I did gauge that possibility. But iroh is already the library doing the heavy-lifting. So no, I don't think I'll make it a library. It is actually kinda a library now that I have to add android support. But it's not really fit to be a library.

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#98

Hi HN, we built Rayfish, a peer-to-peer mesh VPN written in Rust on top of iroh. The core idea: every node has a keypair, and its identity on the network is that public key. From the key we derive a stable IPv4 in 100.64.0.0/10 and a stable IPv6 in 200::/7, similar in spirit to yggdrasil. Those addresses are yours for as long as you hold the key, and they don't change when you move networks or your physical IP change…

Great work. I'm currently using tailscale and would love to have another option! Hosting my own iroh-relay makes it truely independent then. Only missing the mobile app now! Keep up the good work!

Thank you. I am working on the android app right now

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#99

Hi HN, we built Rayfish, a peer-to-peer mesh VPN written in Rust on top of iroh. The core idea: every node has a keypair, and its identity on the network is that public key. From the key we derive a stable IPv4 in 100.64.0.0/10 and a stable IPv6 in 200::/7, similar in spirit to yggdrasil. Those addresses are yours for as long as you hold the key, and they don't change when you move networks or your physical IP change…

If you have any previous experience in this domain and/or other relevant credentials it would help to mention them here as well.

Yeah I run an HFT firm. Apart from that, why does it matter? This isn't finance! But of course, rayfish is NOT production ready. For home servers might be ok. BUT NOT PRODUCTION READY

Re: Rayfish, Peer-to-peer mesh VPN with no server to trust

#100

Hi HN, we built Rayfish, a peer-to-peer mesh VPN written in Rust on top of iroh. The core idea: every node has a keypair, and its identity on the network is that public key. From the key we derive a stable IPv4 in 100.64.0.0/10 and a stable IPv6 in 200::/7, similar in spirit to yggdrasil. Those addresses are yours for as long as you hold the key, and they don't change when you move networks or your physical IP change…

> Honest [...] > Happy to get into the addressing scheme I truly loathe how all of the HN spambots promoting shovelware include a stupid call-to-action for feedback/discussion.

When the wise man points to the moon, the fool looks at the finger
Post reply on HN