You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
The text was updated successfully, but these errors were encountered:
I was really surprised when Kirill and Shubert were able to send a file with the current implementation 😃
So, I was just reading through the iroh documentation and realized that I missed an important point in my understanding. The Node (which we’re currently using in our IrohInstancehere) is a higher-level abstraction over the Endpoint struct from iroh-net. This is why the current implementation should be fine for sending files between any two devices in the world.
We still need this tests, but I think it'll be easier to implement when we extract the library and merge it in the ark-core.
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
Description
I noticed we are currently using
iroh-blobs
alone.iroh-blobs
implements a simple request-response protocol. From what I've seen iniroh
examples, the standard approach is to useiroh-blobs
together withiroh-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 containersThe text was updated successfully, but these errors were encountered: