Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
c17a870
feat: use quinn multipath
dignifiedquire Jul 7, 2025
7fe570d
update iroh-quinn
dignifiedquire Jul 7, 2025
2f469ac
start opening paths
dignifiedquire Jul 8, 2025
870716f
add more paths
dignifiedquire Jul 8, 2025
346a7c2
set keep alive and idle timeouts for new paths
dignifiedquire Jul 8, 2025
68b1769
insert relay path
dignifiedquire Jul 9, 2025
0eb3fde
set relay path as backup
dignifiedquire Jul 11, 2025
79ec17f
start removing ping logic from the node_map
dignifiedquire Jul 11, 2025
c4baca8
start tracking path events
dignifiedquire Jul 11, 2025
549adee
start figuring out more details
dignifiedquire Jul 12, 2025
9ef5765
wip
dignifiedquire Jul 14, 2025
75d5525
get some stuff to work again
dignifiedquire Jul 18, 2025
4f78898
remove ip_mapped_addresses
dignifiedquire Jul 21, 2025
130710f
use correct relay addr on recv
dignifiedquire Jul 21, 2025
dba89df
ensure connection registration
dignifiedquire Jul 21, 2025
aab083d
remove rtt_actor, this is now done inside quinn on a per path basis
dignifiedquire Jul 21, 2025
d4484da
open additional paths after the initial connection
dignifiedquire Jul 21, 2025
6cb94e4
ensure path open
dignifiedquire Jul 22, 2025
998e283
some debugging
dignifiedquire Jul 23, 2025
99cee61
update quinn branch
dignifiedquire Jul 23, 2025
4b60a9a
fixups
dignifiedquire Jul 28, 2025
04b714c
update deps
dignifiedquire Aug 1, 2025
59efdcf
bunch of renames and doc updates, no functional changes
flub Aug 28, 2025
f9924cd
switch to main multipath branch
flub Aug 29, 2025
3058a8e
another rename
flub Aug 29, 2025
11dd04d
Set max_idle_time to a good value
flub Aug 29, 2025
6869faa
fix typo
flub Sep 1, 2025
539a514
Start hooking up a new NodeStateActor
flub Sep 16, 2025
a1a7d89
Rename AllPathsMappedAddr to NodeIdMappedAddr
flub Sep 16, 2025
4b00ad7
Move all mapped addrs to one module
flub Sep 16, 2025
31ab033
allow me to send via the NodeStateActor
flub Sep 16, 2025
5ae71ed
Unify NodeIdMappedAddr and RelayMappedAddr a bit more
flub Sep 16, 2025
599f25d
start implementing AddConnection
flub Sep 17, 2025
2417e6b
make add_node_addr async and send it to the NodeStateActor
flub Sep 18, 2025
9820e60
start handling AddNodeAddr message
flub Sep 18, 2025
ef7a6f3
start sending datagrams from the actor
flub Sep 18, 2025
76f3768
Start adding state for holepunching decisions
flub Sep 23, 2025
1366161
refactor to allow scheduling holepunching attempts
flub Sep 23, 2025
3436423
plug in DiscoState to the NodeStateActor
flub Sep 23, 2025
01bf15c
a sane method to send disco messages
flub Sep 23, 2025
001d16d
Implement starting of holepunching
flub Sep 24, 2025
7a9023f
handle receiving pings
flub Sep 24, 2025
92dd37c
handle receiving CallMeMaybe messages
flub Sep 24, 2025
ac2db4d
open a path when we receive a pong
flub Sep 25, 2025
6d69555
Move open path to not block the actor
flub Sep 29, 2025
12d12c0
select the right path
flub Sep 30, 2025
9e7be2d
close paths on all connections
flub Sep 30, 2025
c1bfdf5
send connections to the NodeStateActor
flub Sep 30, 2025
7b4f056
remove PingActions from magicsock Actor Message
flub Sep 30, 2025
d3b81e7
Kill a bunch of dead code
flub Sep 30, 2025
d9ed9be
use a better way to send to this channel
flub Sep 30, 2025
2c521b0
Hook up connecting check for a valid send addr
flub Oct 1, 2025
21894e7
Do not send incoming packets through the NodeMap
flub Oct 1, 2025
fc97009
delete a whole bunch of unused code
flub Oct 1, 2025
0b4214b
delete some more unused code
flub Oct 1, 2025
a0d5ba1
fine tune logging
flub Oct 2, 2025
65c5d30
try_send is removed. do not log poll_send span twice
flub Oct 2, 2025
e7d9268
Do not holepunch on sending the first message
flub Oct 2, 2025
924f41b
postpone solving this, make the test work
flub Oct 2, 2025
8b1fd0f
Add the path from a new connection, call select path
flub Oct 3, 2025
0522c0e
Do not close the last direct path on a connection
flub Oct 3, 2025
50cc92f
Open some more paths when needed
flub Oct 3, 2025
4a1375f
Add a first relay test
flub Oct 3, 2025
ee20734
Merge branch 'main' into feat-multipath
flub Oct 6, 2025
fdeb6f4
tidy up NodeMap creation
flub Oct 6, 2025
d4fc291
Simplify delayed discovery start
flub Oct 6, 2025
8ba3fd9
Remove try_send impls, no longer used
flub Oct 6, 2025
23ef6fe
remove dead code
flub Oct 6, 2025
7fbd5df
Merge branch 'main' into feat-multipath
flub Oct 6, 2025
3f58e95
Remove MagicStack and mesh_stacks
flub Oct 7, 2025
7ac4dec
dead code
flub Oct 7, 2025
f38e5c2
remove test and delete then unused function
flub Oct 7, 2025
1eeb4bb
start removing old nodestate
flub Oct 7, 2025
145cb18
delete more: path_validity mod is gone
flub Oct 7, 2025
ccb3287
remove more!
flub Oct 7, 2025
80157d4
and more gone
flub Oct 7, 2025
b0957cb
rename temporary name, now the name is free again
flub Oct 7, 2025
a3e58f8
slightly better logging
flub Oct 7, 2025
ce564f1
avoid unneeded mut when not testing
flub Oct 7, 2025
4eb0f07
Convert to canonical IP address in IpSender
flub Oct 7, 2025
28bf51c
remove duplicate adding
flub Oct 8, 2025
befde29
clearer bounds writing
flub Oct 8, 2025
2b2f3c2
Merge branch 'main' into feat-multipath
flub Oct 8, 2025
79cd50c
fix AddrMap impl to update both maps
flub Oct 8, 2025
c2a192e
Always use IPv6 addresses
flub Oct 8, 2025
04e1e3d
tweak logging, this is too noisy
flub Oct 8, 2025
660c39a
random lost import
flub Oct 8, 2025
9da6c1c
keep reducing redundant logging
flub Oct 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 62 additions & 69 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,13 @@ unexpected_cfgs = { level = "warn", check-cfg = ["cfg(iroh_docsrs)", "cfg(iroh_l

[workspace.lints.clippy]
unused-async = "warn"


[patch.crates-io]
rustls = { git = "https://github.com/n0-computer/rustls", rev = "da7b54c6621fdeb2defff38242c5b56ef4c5a920" }
netwatch = { git = "https://github.com/n0-computer/net-tools", branch = "feat-multipath" }

[patch."https://github.com/n0-computer/quinn"]
# iroh-quinn = { path = "../iroh-quinn/quinn" }
# iroh-quinn-proto = { path = "../iroh-quinn/quinn-proto" }
# iroh-quinn-udp = { path = "../iroh-quinn/quinn-udp" }
5 changes: 4 additions & 1 deletion iroh-base/src/node_addr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,12 @@ use crate::{NodeId, PublicKey, RelayUrl};
/// [discovery]: https://docs.rs/iroh/*/iroh/index.html#node-discovery
/// [home relay]: https://docs.rs/iroh/*/iroh/relay/index.html
/// [Relay server]: https://docs.rs/iroh/*/iroh/index.html#relay-servers
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(
derive_more::Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash,
)]
pub struct NodeAddr {
/// The node's identifier.
#[debug("{}", node_id.fmt_short())]
pub node_id: NodeId,
/// The node's home relay url.
pub relay_url: Option<RelayUrl>,
Expand Down
4 changes: 2 additions & 2 deletions iroh-relay/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ postcard = { version = "1", default-features = false, features = [
"use-std",
"experimental-derive",
] }
quinn = { package = "iroh-quinn", version = "0.14.0", default-features = false, features = ["rustls-ring"] }
quinn-proto = { package = "iroh-quinn-proto", version = "0.13.0" }
quinn = { package = "iroh-quinn", git = "https://github.com/n0-computer/quinn", branch = "multipath-quinn-0.11.x", default-features = false, features = ["rustls-ring"] }
quinn-proto = { package = "iroh-quinn-proto", git = "https://github.com/n0-computer/quinn", branch = "multipath-quinn-0.11.x" }
rand = "0.9.2"
reqwest = { version = "0.12", default-features = false, features = [
"rustls-tls",
Expand Down
Loading
Loading