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>
55 lines
1.2 KiB
YAML
55 lines
1.2 KiB
YAML
name: Bug report
|
|
description: Something isn't working as expected.
|
|
labels: [bug]
|
|
body:
|
|
- type: input
|
|
id: version
|
|
attributes:
|
|
label: Version
|
|
placeholder: "0.2.0"
|
|
validations:
|
|
required: true
|
|
|
|
- type: input
|
|
id: rust-version
|
|
attributes:
|
|
label: Rust version (`rustc --version`)
|
|
placeholder: "1.93.0"
|
|
validations:
|
|
required: true
|
|
|
|
- type: dropdown
|
|
id: os
|
|
attributes:
|
|
label: Operating system
|
|
options: [Linux, macOS, Windows, Other]
|
|
validations:
|
|
required: true
|
|
|
|
- type: textarea
|
|
id: summary
|
|
attributes:
|
|
label: Summary
|
|
description: What happened, and what did you expect instead?
|
|
validations:
|
|
required: true
|
|
|
|
- type: textarea
|
|
id: repro
|
|
attributes:
|
|
label: Minimal reproduction
|
|
description: Ideally a self-contained snippet + steps. Logs with `RUST_LOG=iroh_gossip_rendezvous=debug` help.
|
|
render: rust
|
|
validations:
|
|
required: false
|
|
|
|
- type: checkboxes
|
|
id: checks
|
|
attributes:
|
|
label: Checks
|
|
options:
|
|
- label: I searched existing issues and this isn't a duplicate.
|
|
required: true
|
|
- label: I can reproduce on the latest published release.
|
|
required: false
|