Passphrase-based peer rendezvous for iroh-gossip swarms over the public Mainline DHT. Two nodes that share a passphrase + application salt find each other and join the same gossip topic — no bootstrap server, no prior knowledge of peer addresses. The algorithm is a clock-free variant of HyParView-style partition healing on BEP 44 mutable items, with K-sharded slots, logical aging with random-tie eviction, vouching of up to V neighbors at age 1, and a two-layer AEAD record envelope. Full spec in PROTOCOL.md. Ships with: * 119 tests (unit / property / integration / doctest) all green * 100% mutation-testing catch rate (cargo-mutants) * cargo-fuzz harnesses for the parse surface * Kani proofs of no-UB / no-panic on crypto::epoch_of and wire::decode_entries across their full symbolic input spaces * Stateright distributed-system model: safety invariants S1 + S2 proved exhaustively for N ≤ 6, K ≤ 3; liveness witness under weak fairness * Miri green on the synchronous modules * cargo-deny + cargo-audit clean * criterion benches * Full-matrix CI (Linux + macOS + Windows × stable + MSRV 1.93.0) * Dedicated nightly lane for Miri / mutation / fuzz / Kani / Stateright Pinned iroh 0.98.x. License MIT. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
74 lines
2.5 KiB
TOML
74 lines
2.5 KiB
TOML
# cargo-deny configuration.
|
|
# https://embarkstudios.github.io/cargo-deny/
|
|
|
|
[graph]
|
|
targets = [
|
|
{ triple = "x86_64-unknown-linux-gnu" },
|
|
{ triple = "x86_64-apple-darwin" },
|
|
{ triple = "aarch64-apple-darwin" },
|
|
{ triple = "x86_64-pc-windows-msvc" },
|
|
]
|
|
all-features = true
|
|
|
|
# ── Advisories (RUSTSEC) ───────────────────────────────────────────
|
|
|
|
[advisories]
|
|
version = 2
|
|
yanked = "deny"
|
|
# Allow transitive "unmaintained" advisories that come via iroh's dep graph
|
|
# and can't be fixed downstream. Re-evaluate on each iroh bump.
|
|
# Note: cargo-deny and cargo-audit disagree on which advisories currently fire;
|
|
# cargo-audit reports atomic-polyfill, cargo-deny's db may not. We list it here
|
|
# for cargo-audit's benefit via deny.toml being the canonical source.
|
|
ignore = [
|
|
# paste — no longer maintained. Pulled in via iroh → portmapper → netwatch
|
|
# → netlink-packet-core. No direct dep; stuck until iroh migrates.
|
|
"RUSTSEC-2024-0436",
|
|
]
|
|
|
|
# ── Licenses ───────────────────────────────────────────────────────
|
|
|
|
[licenses]
|
|
version = 2
|
|
# MIT + Apache-2.0 + BSD-3-Clause + Unicode are the usual Rust-ecosystem set.
|
|
# MPL-2.0 allowed (used by encoding_rs / webpki-roots transitively).
|
|
# CDLA-Permissive-2.0 allowed (webpki-roots certs bundle).
|
|
allow = [
|
|
"MIT",
|
|
"Apache-2.0",
|
|
"Apache-2.0 WITH LLVM-exception",
|
|
"BSD-2-Clause",
|
|
"BSD-3-Clause",
|
|
"ISC",
|
|
"Unicode-3.0",
|
|
"Unicode-DFS-2016",
|
|
"Zlib",
|
|
"MPL-2.0",
|
|
"CDLA-Permissive-2.0",
|
|
"CC0-1.0",
|
|
"0BSD",
|
|
]
|
|
# Reject GPL/AGPL/SSPL on the whole tree.
|
|
confidence-threshold = 0.93
|
|
|
|
# ── Bans ───────────────────────────────────────────────────────────
|
|
|
|
[bans]
|
|
multiple-versions = "warn"
|
|
wildcards = "deny"
|
|
highlight = "all"
|
|
# Explicit allows for known good duplicates (iroh's dep graph has a few).
|
|
allow = []
|
|
deny = []
|
|
# Accept some duplicate crate versions common in the iroh + tokio ecosystems.
|
|
skip = []
|
|
skip-tree = []
|
|
|
|
# ── Sources ────────────────────────────────────────────────────────
|
|
|
|
[sources]
|
|
unknown-registry = "deny"
|
|
unknown-git = "deny"
|
|
allow-git = []
|
|
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|