chore: bump iroh to 0.98, drop vendored patch

Upgrades iroh/iroh-relay across datastore, distribution, node, and integration,
adapts iroh_driver to the new Endpoint::builder(Minimal).relay_mode(...) API, and
removes the vendored ed25519-dalek patch now that 0.98 resolves the upstream compile
errors. Adds the SIM_SPEC.md simulator MVP spec under pipeline-parallel-inference.


Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
This commit is contained in:
Zachery Aaron Shores-Chmielewski 2026-05-22 11:06:58 +04:00
parent 1f8a67231c
commit 28bc3c0c95
8 changed files with 1358 additions and 413 deletions

693
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -14,12 +14,6 @@ members = [
"tests/integration", "tests/integration",
"xtask", "xtask",
] ]
# Stage 6 iteration 8: all production crates and integration
# tests are back in the workspace. The vendored
# `ed25519-dalek 3.0.0-pre.1` patch below unblocks the iroh
# umbrella crate, which datastore/node/tests-integration pull
# in via `iroh = "0.96"` (datastore/node) and
# `distribution/iroh,relay` (tests-integration).
exclude = ["crates/bindings/wasm-crypto", "examples"] exclude = ["crates/bindings/wasm-crypto", "examples"]
[package] [package]
@ -73,14 +67,3 @@ harness = false
[[bench]] [[bench]]
name = "hasher_benchmarks" name = "hasher_benchmarks"
harness = false harness = false
# Vendored `ed25519-dalek 3.0.0-pre.1` to fix two upstream
# compile errors (E0277, E0308) at `src/signing.rs:714,717`.
# Upstream encodes `pkcs8::Error::KeyMalformed` as a unit
# variant, but the resolved `pkcs8 0.11.0` re-exports it as
# `KeyMalformed(KeyError)`. The strict `=3.0.0-pre.1` pin
# from `iroh-base 0.96.1` forbids using a newer prerelease,
# so we vendor the published 3.0.0-pre.1 and apply a 2-line
# tuple-variant fix. See `.loop/notes.md` (Stage 6 iteration 8).
[patch.crates-io]
ed25519-dalek = { path = "vendor/ed25519-dalek" }

View file

@ -14,7 +14,7 @@ serde_json = "1"
blake3 = "1" blake3 = "1"
crossbeam-queue = "0.3.12" crossbeam-queue = "0.3.12"
tokio = { version = "1", features = ["rt", "sync", "io-util"] } tokio = { version = "1", features = ["rt", "sync", "io-util"] }
iroh = "0.96" iroh = "0.98"
getrandom = "0.2" getrandom = "0.2"
tiny_http = { version = "0.12", optional = true } tiny_http = { version = "0.12", optional = true }
clap = { version = "4", features = ["derive"], optional = true } clap = { version = "4", features = ["derive"], optional = true }

View file

@ -35,8 +35,8 @@ swactor-transport = { path = "../transport" }
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = "1" serde_json = "1"
uuid = { version = "1", features = ["v4", "serde"] } uuid = { version = "1", features = ["v4", "serde"] }
iroh = { version = "0.96", optional = true } iroh = { version = "0.98", optional = true }
iroh-relay = { version = "0.96", features = ["server"], optional = true } iroh-relay = { version = "0.98", features = ["server"], optional = true }
iroh-metrics = { version = "0.38", optional = true } iroh-metrics = { version = "0.38", optional = true }
tokio = { version = "1", features = ["rt-multi-thread"], optional = true } tokio = { version = "1", features = ["rt-multi-thread"], optional = true }
axum = { version = "0.8", optional = true } axum = { version = "0.8", optional = true }
@ -48,7 +48,7 @@ libc = "0.2"
[dev-dependencies] [dev-dependencies]
serde_json = "1" serde_json = "1"
iroh-relay = { version = "0.96", features = ["server", "test-utils"] } iroh-relay = { version = "0.98", features = ["server", "test-utils"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "time"] } tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "time"] }
[[bin]] [[bin]]

View file

@ -241,7 +241,8 @@ impl IrohDriver {
let endpoint = rt.block_on(async { let endpoint = rt.block_on(async {
let mut alpns = vec![ALPN.to_vec()]; let mut alpns = vec![ALPN.to_vec()];
alpns.extend(config.additional_alpns.iter().cloned()); alpns.extend(config.additional_alpns.iter().cloned());
let mut builder = Endpoint::empty_builder(effective_relay_mode) let mut builder = Endpoint::builder(iroh::endpoint::presets::Minimal)
.relay_mode(effective_relay_mode)
.alpns(alpns); .alpns(alpns);
if let Some(key) = config.secret_key { if let Some(key) = config.secret_key {

View file

@ -11,7 +11,7 @@ swactor-transport = { path = "../transport" }
distribution = { path = "../distribution" } distribution = { path = "../distribution" }
clap = { version = "4", features = ["derive"] } clap = { version = "4", features = ["derive"] }
ctrlc = "3" ctrlc = "3"
iroh = { version = "0.96", optional = true } iroh = { version = "0.98", optional = true }
toml = "0.8" toml = "0.8"
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = "1" serde_json = "1"

File diff suppressed because it is too large Load diff

View file

@ -9,6 +9,6 @@ swactor-datastore = { path = "../../crates/datastore", features = ["node"] }
distribution = { path = "../../crates/distribution", features = ["iroh", "relay"] } distribution = { path = "../../crates/distribution", features = ["iroh", "relay"] }
dashboard = { path = "../../crates/dashboard" } dashboard = { path = "../../crates/dashboard" }
swactor = { path = "../..", features = ["serde", "transport"] } swactor = { path = "../..", features = ["serde", "transport"] }
iroh = "0.96" iroh = "0.98"
ureq = { version = "2", features = ["json"] } ureq = { version = "2", features = ["json"] }
serde_json = "1" serde_json = "1"