Add Support for `iroh-net` to Enable Hole Punching
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- docker, github-actions, rust
- Domain
- ci-cd, infrastructure, networking
Research direction
Start by tracing the current iroh-blobs integration and comparing it with sendme's use of iroh-net and iroh-bytes. Define tests that verify hole punching through NATs or firewalls, using docker-nat-simulate as a possible test environment, and add GitHub CI workflows that run on pushes and pull requests. Done means the application supports the intended non-local connections and the tests run in CI.
Written by the indexing model from the issue text.
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
- Dominant language
- Svelte
- Stars
- 15
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ARK-Builders/Drop-Desktop
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
feature
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in ARK-Builders/Drop-Desktop
Similar issues
-
bug: ARCHITECTURE.md states three different workflow counts (88 / 69 / 69) and no test pins themOpenarea:docs area:workflow bug documentation priority:later
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Ikalus1988/MisakaNet#4357 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 Under an hour Newbie friendliness 70/100
aiqadam/qadam-flow#1003 ·
Maintainers usually reply within 1 day
-
blocked-needs-validation
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
projectcapsule/capsule#2265 ·
Maintainers usually reply within 1 day
-
bug new
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
redhat-cop/infra.aap_configuration#1484 ·
Maintainers usually reply within 2 days
-
enhancement good first issue
Difficulty 1/5 Under an hour Newbie friendliness 85/100
ANCORATE/EncryptHome#16 ·