Someone who doesn't have good fiat rails like third-world countries. Or people who just don't want to be part of the fiat system. Or both.
HN user
dfish
They are both useful. Monero is a bit more tricky to use, there is no concept of Lightning network, you still have to wait around 7 minutes for the transaction to settle. It's not bad, but it is different. The transparency in Bitcoin is a feature not a bug.
It is what it is. You have to implement KYC if you want fiat rails. A merchant can't KYC every single person that comes to the store. But you could build a system to eventually ban wallets that could be tied to criminal activity.
The merchant can also pick to use Lightning and keep the Bitcoin instead of selling it for fiat.
Stablecoins can be censored. You deposited into Huobi 5 years ago? Banned. Now we keep your stablecoins, thanks for playing.
You can't censor Bitcoin.
I sent a transfer from the UAE to Spain and another one to the Netherlands. They took 5 days and 7 days respectively. The same transfer takes 10 minutes in Bitcoin. You don't do transfers to pay for stuff at the grocery store, the same way you would not pay using the Bitcoin network. You would use lightning network, which takes less than 2 seconds finality.
??
The merchant requests 100 USD. The user pays X BTC equivalent to 100 USD. The merchant receives 99 USD aka the fee is 1 USD
So I'd have a different IP on each network?
NO. You will ONLY have to rotate your IP if you join a network in which there is a collision. 1 in 4 million chance. If that happens, it's ok. Ideally you are using magicDNS and don't have to worry about IPs or just use the IPv6.
No, only once if there is a collision, which is 1/4M
Indeed, it is a typo of `public key`. What I mean is that your identity is your private key. And no, you won't have a new IP per network. Your IP is `fnv1a(ip || index) when index > 0`. Which changes your IP in all of the networks. That's why we also implemented MagicDNS. You can just use your `user.ray` name. The daemon handles IP changes.
I think it's too much. I don't feel like I need to justify myself. You can read the code.
But anyways, first of all; you can see we run a trading company called Infinite Field (https://github.com/infinitefield) and we trade on a decentralized venue called Hyperliquid. You can check the leaderboard there, we are in the top 15 or so. We are doing more than just trading there, we also run a validator with 0 revenue on our side. We charge no fees. Although maintenance cost is high (20k/month). We also built an SDK for users building in Hyperliquid because the official one was not good enough (https://github.com/infinitefield/hypersdk). No other market maker is going to do that. Mostly. Also, I built and released our in-house websocket library (https://github.com/infinitefield/yawc) because I consider it to be better than tokio-websockets or tungstenite. Why is it better? It supports compression (which no other does) and WASM (that one was pre-LLMs so code is mine alone hehe).
You built it in two weeks because, for the last four years, you were busy with other things. If you get busy again, will the project lag for the next four years?
I am always busy. But I want to deliver a minimum set of features that will work without me. You can see the open issues and PRs. All of the work is being made transparently on Github. I also use the product myself and I hope I can use it internally at my company too. If you want to reach out to me you can do it over email or telegram (ask for it) and I am 24/7 online. When I say the idea was sitting idle for 4 years; it basically means I was a guy from a town in Spain and I had to do something to get out of there. Although I contributed a lot to opensource when I was younger (check https://github.com/dgrr) it didn't pay the bills! So it took me 4 years to reach a level in which I feel comfortable dedicating some time to opensource stuff like hypersdk, yawc or now rayfish (actually more than 4 years, but rayfish was there for that amount of time).
I am very transparent. I'll open up my X account so you can engage more directly with me if you want.
Ah I understand that. Good thing is you dont need to trust me! You can just read the code. And PRs are welcome, and over time more maintainers. You can also fork it. It has MPL-2.0 license to ensure code is always open.
In terms of the credentials; again, it is not a product like Bitcoin. I am not a researcher from some university. I don't even have a computer science degree. So I don't oblige to "credentials".
I am an entrepreneur, I had some ideas. One of those ideas is rayfish. I like to give back to groups or people. I live in a country where I pay no taxes so I can donate part of that to cat shelters from my homecountry and in this case I open-sourced rayfish because I think it is a good product many people like me will enjoy.
Does that reply to your concerns?
bro ditched the car to use the horse
When the wise man points to the moon, the fool looks at the finger
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
Thank you. I am working on the android app right now
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.
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.
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.
rayfish is a layer-69
English is not my mothertongue, therefore I told Claude (and GLM-5.2) to improve the wording as much as they could.
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
Yes, you can also do it. VPN is just one of those applications to be honest. Think of it as relaying packets over iroh.
Not yet. I'll support it in the future
I didn't really knew what Nebula was until I saw the comparison made by claude. I tried solutions like tailscale before but never nebula. If you like that product keep using it. The `it's nebula minus X feature` doesn't really fit here
My product is unique because it is not a product. Like it is mentioned in the article. I don't care about monetization, I just want a good trustless p2p vpn that anybody can use. In the future even normies will be able to. I am working on an android/ios app (ios not yet but in the future) to at least share my clipboard with my computer or send images. Which seems trivial but you dont have a really good (not battery consuming) solution for android<>macos.
Anyway. Rayfish is p2p no central coordination needed. Other's do need some central coordinator. The main disadvantage one might find is that it uses iroh which is built on top of QUIC. Tailscale and others use wireguard, which is nice and compatible with legacy VPNs. Also they have a kernel driver which we dont. It's all userspace. I didn't want to reinvent the wheel.
Yes. There are good solutions out there. I just build rayfish because I want truly decentralized networks. My thought process is more like: what if you have your job's network and your gaming network? if you use tailscale you need to log off of one, log into the other. Still, you have centralized coordination servers and so on. With rayfish we also discard the ACL architecture and use network separation + per-device firewalls. So it is also trustless. In some way
Hello. Yeah this is my secondary account. Main one is dgrr. I still dont do much there. I have projects in github.com/infinitefield and now rayfish. Indeed yes I do not use LLMs too much. Rayfish was a project we had pending for years and I had a lot of sketches about it in my obsidian folders. After the release of iroh v1 I decided to try out claude and prompt it to solve the problem. Still, there is a lot of boilerplate and over time it will become much more like a handmade project assisted by LLMs than anything.
That said, it is not my main focus, although I use the product of course. Contributions are always welcome.
you can also do `cargo install rayfish`. But not everybody has cargo, etc etc etc
We do have understanding of networks. Claude doesn't come up with concepts by itself. It is not too good to do that yet. We run an HFT firm as a main enterprise, not an easy job. Requires a lot of network fundamentals understanding.
Hello! dev here.
Yes, we did use claude, somewhat. We do give a lot of credit to iroh. Check the description of the repo.
As per the AI stuff, rayfish is a very old idea. I had a lot of sketches on how a p2p mesh VPN should look like. So it started off as "hey claude, can you do this?" and of course because I use it I have to do a lot of things manually myself.
But of course, without iroh this project would have not been possible!