-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Description
I noticed we are currently using iroh-blobs alone. iroh-blobs implements a simple request-response protocol. From what I've seen in iroh examples, the standard approach is to use iroh-blobs together with iroh-net for networking support. iroh-net is built on direct peer-to-peer QUIC connections that use relays and hole punching.
Since our implementation does not use iroh-net::Endpoint, it does not support hole punching and will only work locally or between two processes with public IP addresses. This is not the end goal for Ark Drop.
sendme is a good example that achieves a similar goal to what we have in mind. It uses iroh-bytes and iroh-net to send files and directories over the internet.
For this, we should integrate iroh-net into Ark Drop to support hole punching. This will allow the application to work even when the devices are behind NATs or firewalls.
Testing
Not really sure how this will turn out, but we should have some tests to verify that hole punching works. We should add basic GitHub CI workflows that run with each push/PR.
Potential solutions
docker-nat-simulate: handmade scripts for simulating NAT using Docker containers