Weekly companion to the Mix Networks 2026 Research and Deployment Tracker and Overview - Mix Networks. This week is a release-week: Nym Binaries v2026.17-djibouti (Sep 2) is the first tagged release to ship the eight-PR Directory Contract stack, the new Geolocator service + contract, and a breaking chore: removed support for outfox packets — SOCKS5 and WASM clients now use Mix packets exclusively; Arti 2.6.0 (Sep 1) makes Counter Galois Onion and Congestion Control always-on by default and continues the relay + dirauth build-out; Tor Browser 15.0.21 (Sep 1, Firefox 140.15.0esr, OpenSSL 3.5.8) lands just before the Tor 0.4.8 directory-format EOL (Sep 1) that disconnects un-upgraded relays and onion services from the network; Tails 7.12 (Sep 3) opens a new 2-week release cadence synchronized with Firefox upstream; NymVPN v2026.12.4-beta.1 (Sep 3) ships a pinned-gateway bypass-of-blacklist fix (PR #6272) that was previously pinning users to a known-blocked GFW-blackholed gateway forever. Katzenpost closed out its 7-part replica-proxy epic with PR #1112-#1120 — ping probabilistic packet loss attribution, the websocket listener hardening series, and the self-tuning path now documented as closed. Tor network at 10,137 relays (Sep 1), third consecutive weekly drop from the DEF CON 34 baseline; cause likely operational churn from the 0.4.8 cut-off and Hetzner de-peering, not steady-state.
TL;DR — This Week
- Nym Binaries v2026.17-djibouti (Sep 2) — first release to ship the full Directory Contract stack (#6933/#6936/#6941/#6948/#6949/#6954/#7004/#7013), the Geolocator service + CosmWasm contract (#7055, on-chain attested digests replacing the cached
geoipJSONB), Network Details v2 endpoint type fix (#7051, completing the v2 rollout started by #6901), the config-score penalty for nodes incapable of sending nyx transactions (#7073), and — most consequentially — the removal of Outfox packet support (#7048, breaking change: SOCKS5 + WASM clients are now Mix-only). - Nym release-train follow-ups: crates bumped to 1.21.6 (#7116), directory submission enabled by default if possible (#7117, the operational complement to the Directory Contract), SOCKS5 Controller Sender no-panic fix (#7114), and the nym-api re-DKG robustness vol. 2–5 (#7082/#7088/#7096/#7107) — four batches of "make future re-DKG smoother" bugfixes that close the multi-week re-DKG thread.
- NymVPN v2026.12.4-beta.1 (Sep 3): PR #6272 fixes pinned gateways bypassing the blacklist — a pinned entry/exit gateway identity was using an unfiltered lookup that skipped
NotBlacklisted/MinScore/Residentialchecks, so a user who pinned a gateway the GFW was blackholing retried it forever with no cooldown. macOS disconnect-DNS fix + lottie→manual CSS animation swap on Win/Linux + iOS/macOS widget removal. Component set:nym-vpnddaemon,nym-vpncCLI,nym-socks5-proxy,nym-diagnostic,nym-setup. F-Droid APK signing-cert SHA-256 still3c98a01…. - Arti 2.6.0 (Sep 1): Counter Galois Onion and Congestion Control now always-enabled in
arti(both promoted from opt-in/experimental); focus on document parsing, directory mirror support, DNS stream handling, and RPC-based configuration — i.e. the relay + dirauth surface area. Contributors include Andrew Kloet, Steven Masnada, iqdecay, pryty26, steven. - Tor Browser 15.0.21 (Sep 1): rebased onto Firefox 140.15.0esr, OpenSSL 3.5.8, NoScript 13.6.32.1984, Go 1.25.14, GeckoView 140.15.0esr; backports Firefox 155 security fixes; 32-bit Linux retirement message adjusted. Parent-process
TorBrowserredirection fix (tor-browser#45264). - Tor Browser 16.0a11 (Sep 2) and Tails 7.12 (Sep 3) — Tails adopts Firefox's new 2-week release cadence, with Tails 7.12 the first release on the new tempo (Electrum 4.8.1, Tor Browser 15.0.21 inside). Tails, Tor Browser, and Firefox now ship on the same clock.
- Tor 0.4.8 deprecation (Sep 1 cut-off): relays, onion services, and Tor-embedded apps running Tor 0.4.8 or earlier lose connectivity to the network once the deprecated directory fields are removed. The Tor Project's published guidance is "upgrade to Tor 0.4.9 series or later before September 1, 2026." The week's 10,137-relay count (vs. 10,146 on Aug 25, 10,060 on Aug 31) suggests the cut-off pruned ~50 relays overnight — a measurable but not network-shattering deprecation event.
- Katzenpost closure of the replica epic (Aug 29 → Sep 3): PR #1107 (docker port collision fix, Aug 29), PR #1112 (websocket listener hardening — 6 commits: explicit
ws://host:portlisten, Origin enforcement, close bound port on Close,InsecureSkipVerifyopt-in flag, default loopback host, Accept/Close race + Origin coverage), PR #1099 / #1102 / #1103 / #1113 / #1112 (the 7-part replica-proxy epic merged in order), PR #1114 (server: instrument seven silent packet drop sites— the first step toward per-node packet-loss attribution), and PR #1120 (Sep 3: Ping probabilistic packet loss attribution with uncertainty stated, attribution maths explained, fix two ways the loss estimate was wrong, attribute loss to nodes, compare service nodes too not only mix layers, andclientreports the route a message took to the thin client). Plus PR #1105 (Sep 1, client: agree on a PKI epoch instead of pinning one) — a substantive operational improvement over the pinned-epoch design. - HOPR PIX supervision progress (Aug 27 → Sep 3): PR #8362 (per-SSA deposit data sourced from deposit pool, Aug 27), PR #8373 (chore/deps: hopr-chain-connector 0.26.0, Sep 1), PR #8237 (
feat: add session PIX supervisor, Sep 2), PR #8336 (test cluster convergence waits scale with timeout, Sep 3), and PR #8377 (feat(session): parameterize PIX admission by Session target, Sep 3) — the PIX (Payment-In-channel eXchange) supervision track is moving from deposit plumbing into a parameterized admission-decision surface, with session-target as the new key. - Tor network at 10,137 (Sep 1): vs 10,146 (Aug 25) and 10,060 (Aug 31). Exit 3,268 / Fast 9,987 / Guard 6,155 / HSDir 3,015 / Stable 9,059. Aug 31 was the local low (10,060) — likely the 0.4.8 EOL taking its first tranche. Sustained ~10K after the cut-off suggests the network absorbed the deprecation cleanly, with possibly more pruning as un-upgraded exit operators self-disconnect.
- I2P work: 27 i2p.i2p commits Aug 24 → Sep 2, mostly i2psnark BitTorrent client hardening — magnet-link tracker parsing (clip long magnets, show all trackers, validate UDP URLs without path), audio-playlist HTML5 controls, disk-space checks on torrent add, KRPC DG1 message compression follow-ups,
discardMessage()I2CP session API (Aug 26, was new last week), reseed server update (Aug 31), router log-gzipper-finish-after-shutdown (Aug 29). No I2P core release this window; I2P 2.13.0 (Jul 24) remains current; 2.14.0 with SSU2-PQ targeting Oct 2026 per the proposal-169 schedule. - Research scan (Aug 29 → Sep 4): ePrint keyword searches for
mixnet/onion routing/anonymous communicationreturned no fresh first-line mixnet papers this window; the previously-published DumboMix (ePrint 2026/1699, async anonymous broadcast with G.O.D.), De-SyRIS (2026/1723), Proof-of-Uniqueness (2026/1725) papers remain the active anchors. The deep-research month here is being driven by shipping, not by new theory.
Freedom-tech takeaway: Last week's "boring, load-bearing maturity" pattern now has a clear third instance: the 0.4.8 deprecation is the first time the Tor network has actually retired an old line of code, and it absorbed the cut without drama (10,137 relays vs 10,146 a week earlier — a 0.1% move). Nym shipping a breaking change (Outfox removed, SOCKS5/WASM Mix-only) without fanfare in a numbered release is the same instinct: the network survives by upgrading, and the upgrade is the boring part. Arti 2.6.0 closing the gap between relay + dirauth code paths is the more interesting long-term signal — when Arti can run an authority, the C-tor retirement conversation moves from "could" to "when".
The Week in Detail
Nym v2026.17-djibouti: First Release Shipping the Directory Contract Stack
The Aug 21 merge event documented last week (eight PRs under the Directory Contract epic) becomes a release on Sep 2 with tag nym-binaries-v2026.17-djibouti, changelog [2026.17-djibouti] (2026-09-01). The release body links to a CHANGELOG.md that opens by re-stating all eight Directory Contract PRs in canonical order — confirming these are the items operators get on first install — followed by a heterogeneous set of operational hardening and feature additions.
| Item | Type | Notes |
|---|---|---|
| Directory Contract stack (8 PRs) | Feature | #6933, #6936, #6941, #6948, #6949, #6954, #7004, #7013 — already merged, now shipped |
| Geolocator service + CosmWasm contract (#7055) | Feature | Replaces cached geoip JSONB with on-chain attested digests; eliminates the "empty country code silently drops a gateway" failure mode (merged Aug 18, ship in djibouti) |
| Network Details v2 endpoint type fix (#7051) | Bugfix | Follow-up to #6901 — the v2 endpoint was serving v1 struct; corrected + minimal validator-client function added |
| Config-score penalty for nodes incapable of sending nyx transactions (#7073) | Feature | Operational lever: nodes that can't pay the on-chain tx fee get a downward score adjustment, making the active-set selection more honest |
| WireGuard node startup robustness (#7065) | Bugfix | Don't crash node startup over one corrupted peer record |
| Reject packets to unknown clients (#7061) | Bugfix | Hardens the gateway-probe path; prevents log-explosion from spoofed sources |
Bridge-client params survive --write-changes (#7049) |
Bugfix | Operator ergonomics — config migrations preserve the bridge client params that were previously silently dropped |
| Removed support for Outfox packets (#7048) | Breaking | SOCKS5 and WASM clients are now Mix-only; Outfox packet creation/decoding/routing/ACKs return explicit "not supported" errors; Outfox options and public exports removed/deprecated |
bugfix/djubouti nym api (#7097) |
Bugfix | One-line typo in the release branch — the PR title misspells "Djibouti" as "djubouti" — archived in git history |
bugfix: don't use hickory within the credential proxy (#7091) |
Bugfix | Removes a transitive DNS dependency that was complicating the credential proxy |
bugfix: dont inline mixnet initialise function (#7090) |
Bugfix | Refactor — function inlining was causing binary-size regressions on the WASM client |
feat: add additional check for signer status in the validator-status-check tool (#7068) |
Feature | Operator tool: now checks whether the signer is actually able to sign before reporting "validator healthy" |
fix(wireguard): don't crash node startup over one corrupted peer record (#7065) |
Bugfix | (duplicate row, see above) |
fix(gateway-probe): CanHandshake must reflect a real WireGuard handshake, not local interface state (#7047) |
Bugfix | Gateway-probe was reporting success on a healthy local iface even when the remote was down |
fix(gateway-probe): bracket IPv6 addresses in the WireGuard endpoint string (#7046) |
Bugfix | IPv6 WG endpoints were missing brackets; some kernels rejected the string |
The Outfox removal (#7048, merged Aug 11, shipped djibouti) deserves separate emphasis because it changes the on-wire traffic class: every client talking to the mixnet — SOCKS5, WASM, native — is now Mix-packet only. The old Outfox format (a Layered-Encryption-in-the-PQ-era Sphinx variant) was always a secondary packet type; the breaking removal is the formal retirement of a never-default code path that was contributing to traffic-class confusion. For deployment: any client that pinned Outfox for forensic/fingerprinting reasons loses that capability; standard Mix-packet flows are unaffected. This is the second PQ-packet-format retirement in the mixnet ecosystem in 2026 (after Katzenpost's deprecation of the legacy non-PQ Sphinx header in the catsov migration), and both retirements are running ahead of user pushback because the alternative format has been the default for ≥12 months.
Nym Post-Release Hardening (Sep 1–3)
Beyond the release itself, the Nym repo shows the usual post-release flurry:
- PR #7116, Sep 1: crates release: bump version to 1.21.6 — internal workspace version bump, on the back of the djibouti release.
- PR #7117, Sep 1:
feat: enable directory submission by default if possible— operationally pairs the djibouti release: nodes that can submit to the on-chain directory do so by default going forward, accelerating network participation. - PR #7114, Sep 1:
bugfix: don't panic on Socks5 Controller Sender failure— SOCKS5 control-channel resilience. - PR #7112, Sep 2: LP-DATA separation — refactor that extracts the LP (Lounge Pass) gateway channel into a new crate
nym-lp-gateway-client, leaving only dVPN registration innym-registration-client. The LP-side dependency list drops tobincode, bytes, rand, thiserror, tokio, tracing, nym-lp, nym-lp-data— verified viacargo tree -p nym-lp-gateway-client --depth 1 -e normal. The payoff: a data-plane client can take the channel with none of the registration machinery attached. Lounge Pass / LP is becoming a real product surface, not just a marketing label. - PR #7107, Sep 3: bugfix: fix various bugs within nym-api making future re-DKG smoother [vol5] — the final batch of the multi-week re-DKG thread (#7082 vol2, #7088 vol3, #7096 vol4, #7107 vol5), all merged Sep 3. After four months of incremental robustness work, the re-DKG ceremony is no longer a fragile operation.
- PR #7131, Sep 3: docs: add 'what a Nym client is' page and fold in concepts/ — terminology standardization in the docs, often a leading indicator of an SDK or developer-portal refresh.
- PR #7130, Sep 3:
chore: revert manually setting LP AEAD nonce— small but notable: a manual nonce set in the LP path was reverted in favor of the AEAD's automatic nonce derivation. The kind of fix that only happens when the AEAD layer is exercised by real traffic. - PR #7129, Sep 3: Sync master and develop — release-branch housekeeping.
NymVPN v2026.12.4-beta.1: Pinned Gateway Blacklist Bypass
The Sep 3 beta continues the client release tempo (12.3 stable was Aug 27; .4-beta.1 lands six days later). The single substantive fix in this beta is PR #6272, titled "Make pinned gateways respect the blacklist." The body makes the bug vivid:
A pinned entry/exit gateway identity bypassed all selection filters (
NotBlacklisted,MinScore,Residential, ...) via an unfiltered lookup, so a user who pinned a gateway that was actively being blocked (e.g. GFW UDP blackholing) would retry the same doomed gateway on every connection attempt forever, with no cooldown and no useful error.
This is a textbook example of a user-trust feature (pin a gateway for repeatability) silently defeating an adversary-defence feature (the blacklist), and the failure mode is exactly the wrong way around: the user keeps retrying a known-blocked path. The fix routes pinned-gateway lookups through the same filter pipeline as random selection, so a blacklisted pinned gateway is rejected with a clear "filtered from selection" error rather than a silent retry.
The CodeRabbit summary adds two more affected code paths: - Gateway error reporting now identifies invalid entry gateway identities correctly. - Selection vs filtering are now distinguishable, with clearer connection-error surfaces for unavailable / filtered / nonexistent gateways.
Also in this beta:
- macOS disconnect: After disconnect, restore DNS and the physical default route, and do not re-apply the kill-switch when already disconnected — a kill-switch re-apply when the tunnel is down was leaving users with no network at all.
- Win/Linux animation: replaced lottie animations with manual CSS animations (smaller binary, less native dependency).
- iOS/macOS widget removal: simplification.
- Component set unchanged: nym-vpnd (daemon), nym-vpnc (CLI), nym-socks5-proxy (geo-exclusion SOCKS5), nym-diagnostic, nym-setup (macOS helper).
- F-Droid APK signing-cert SHA-256 still 3c98a016aa4f14a3ba185c764ed363415cf7ff3c3d328a87ffff2ff1b140ff06 (per apksigner verify instructions in release notes).
Arti 2.6.0: CGO + Congestion Control Always-On
The Sep 1 Arti release is the second numbered release in 2026 (2.5.0 stable CGO on Jun 30, 2.5.1 experimental CGO on onion circuits on Aug 4, 2.6.0 on Sep 1). Per the official blog:
This release continues our ongoing development towards using Arti as a relay and as a directory authority, with much of the work focusing on document parsing, directory mirror support, and DNS stream handling. Additionally, on the RPC front, we are making steady progress towards RPC-based configuration management. Finally, congestion control and Counter Galois Onion cryptography are both now always enabled in
arti.
The two always-on promotions are the headlining moves:
- Counter Galois Onion (CGO) — the Sphinx successor that uses a counter-mode Galois-field construction for ~half the per-hop processing cost. Was opt-in/experimental since 2.5.0 (Jun 30); always-on in 2.6.0 is the formal "CGO is the default onion format for Rust Tor clients" milestone.
- Congestion Control (CC) — the flow-control layer that lets Tor clients back off when cells queue, smoothing burst loss and improving bulk throughput. Was opt-in via feature flag in 2.5.x; always-on in 2.6.0.
Both promotions are the kind that need to land before Arti ships as a default relay: a relay that only understood CGO traffic and a client that only understood pre-CGO traffic would silently drop each other's cells. Promoting both to always-on in the same release is the prerequisite for the relay-build-out work (document parsing, directory mirror support, DNS stream handling) that the 2.6.0 changelog foregrounds.
The relay + dirauth trajectory is the most consequential structural shift in 2026: when Arti can run a relay, the C-tor retirement conversation moves from theoretical to scheduled. The dirauth plugin work documented last week (compute-mds, FlavoredConsensus compile-time refactor) is in the same trajectory.
Contributors for 2.6.0: Andrew Kloet, Steven Masnada, iqdecay, pryty26, steven (plus the usual Arti maintainers gabi, dgoulet, nickm).
Tor Browser 15.0.21, 16.0a11, and the New 2-Week Cadence
15.0.21 (Sep 1, by ma1) rebases Tor Browser stable onto Firefox 140.15.0esr, with OpenSSL 3.5.8, NoScript 13.6.32.1984, Go 1.25.14, and a backport of Firefox 155 security fixes via the 140.15.0esr rebase (tor-browser#45259). Other fixes:
- tor-browser#45253: rebase stable onto 140.15.0esr
- tor-browser#45264: Use parent process for TorConnect redirections (fixes about:torconnect not showing in non-PBM mode)
- tor-browser#45223: Backport tor-browser#45220 — about:torconnect visibility fix
- tor-browser#44996: Change the 32-bit Linux retirement message for the final 15.0 release
16.0a11 (Sep 2, by ma1) is the alpha that will become 16.0 stable. With the new cadence, both 15.0.21 and 16.0a11 land in the same week — the 2-week cadence means 15.0.21 → 16.0a11 in seven days rather than the prior ~3-week gap.
Tails 7.12 (Sep 3) is the inflection:
Firefox is moving to a 2-week release cadence starting in September, and so Tor Browser and Tails are doing the same. Tails 7.12 is the first release on this new cadence.
Changelog summary: Electrum 4.7.2 → 4.8.1; Tor Browser 15.0.21; firmware package updates (newer hardware support, graphics, Wi-Fi). The implication: three Tor-adjacent releases (Firefox, Tor Browser, Tails) are now synchronized on the same clock, so the lag from "Firefox security release" to "Tails users get the patch" is at most ~2 weeks. This is a major operational tempo change for Tails users — the prior cadence was 4–6 weeks.
Tor 0.4.8 EOL — The First C-tor Retirement Cut-Off
The 0.4.8 deprecation cut-off is Sep 1, 2026, the same day as Arti 2.6.0 and Tor Browser 15.0.21. Per Tor Project guidance:
The Tor Project has announced plans to stop supporting Tor 0.4.8 and earlier releases on September 1, 2026, as it prepares the network for the deployment of Arti, its Rust-based implementation of Tor. [...] Administrators running Tor relays, onion services, or applications that embed Tor should verify which Tor software version they are using and upgrade to the Tor 0.4.9 series or later before September 1, 2026.
Effect: un-upgraded relays and onion services lose connectivity once the deprecated directory fields are removed. Tor Browser users are not directly affected because current browser bundles already include a supported Tor version — but relay operators were on the clock.
The week's relay-count trajectory:
| Date | Running | Exit | Fast | Guard | HSDir | Stable |
|---|---|---|---|---|---|---|
| Aug 25 | 10,146 | 3,276 | — | 6,246 | 5,512 | 9,230 |
| Aug 31 | 10,060 | — | — | 6,162 | 3,254 | 9,047 |
| Sep 1 | 10,137 | 3,268 | 9,987 | 6,155 | 3,015 | 9,059 |
The Aug 31 dip to 10,060 (a 86-relay drop) and the modest Sep 1 recovery to 10,137 suggest the cut-off did prune some operators but the network reabsorbed most of them. The pre-existing Hetzner de-peering (reported last week by Dingledine at DEF CON 34) accounts for ~20% of the network's relay-exit infrastructure, so the cumulative Hetzner + 0.4.8 effect is the most likely explanation for the 9,000 → 10,100 oscillation pattern rather than steady state around 10,500+.
Katzenpost: Replica Epic Closes; Ping Loss Attribution Lands
The Aug 28 update documented the 7-part replica-proxy congestion umbrella (#1091) as the operational-maturity work-in-progress. This week, the umbrella closes:
- #1107 (Aug 29, merged):
docker: simplify port architecture and fix collision issues— operator-facing fix; the local-dev docker mixnet had colliding ports across services. - #1105 (Sep 1, merged):
client: agree on a PKI epoch instead of pinning one— substantive protocol improvement. Clients previously pinned a single PKI document, which meant a misaligned client clock or a missed round-trip left the client out of sync with the network. Now clients negotiate an epoch with the dirauth, which is more resilient to clock skew and network lag. - #1099 (Sep 2, merged):
replica: document the proxy path as self-tuning (7 of 7)— the documentation commit that closes the epic. The replica proxy path is now self-tuning by design: sweep budget is sized to oneProxyRequestTimeout, read-repair is gated on box-not-found, and the proxy responds to load rather than to fixed schedules. - #1102 (Sep 2, merged):
replica: gate read-repair on box-not-found and fix shutdown ordering (5 of 7)— order-of-operations correctness in the replica's repair path. - #1103 (Sep 2, merged):
replica: size the proxy sweep to one ProxyRequestTimeout (6 of 7)— sweep budget alignment with the per-request timeout, so the proxy never schedules more work than it can drain in one round. - #1112 (Sep 2, merged):
client/transport: harden the websocket listener— the 6-commit hardening series:- explicit
ws://host:portlisten address required (no implicit defaults) - websocket Origin header enforcement
- close bound port on Close (no listener leak)
InsecureSkipVerifyflag added as opt-in (default-secure; explicit operator override)- default missing listen host to loopback (no public-by-default listener)
- Accept/Close race + Origin coverage (race-condition correctness)
- explicit
- #1114 (Sep 3, merged):
server: instrument seven silent packet drop sites— the first step toward attribution: before you can say which node is dropping packets, you have to count the drops per drop-site. - #1120 (Sep 3, merged): Ping probabilistic packet loss attribution — the pay-off:
- Compare service nodes too, not only mix layers (so loss is attributed per node, not per kind of node)
- Fix two ways the loss estimate was wrong (sample-bias and confidence-interval fixes)
- Explain the attribution maths (probabilistic loss-attribution formulas documented)
- Attribute loss to nodes, with the uncertainty stated (each attribution carries a confidence)
- Client reports the route a message took to the thin client (so external observers can correlate observed throughput with the actual path)
The combination of #1114 + #1120 is a network-wide attribution layer for Katzenpost packet loss: thin clients now get probabilistic per-node loss estimates with stated uncertainty. This is the kind of measurement primitive mixnets need in order to defend against selective-loss attacks (a node that drops only traffic from a specific sender or to a specific recipient, in order to deanonymize them) — and until now, mixnet operators had to rely on aggregate counts, not per-node attribution.
HOPR: PIX Supervision Surfaces as the Operational Lever
HOPR's PIX (Payment-In-channel eXchange) protocol is the payment channel that makes the hop-by-hop mixnet economically viable. The week's commits show PIX supervision graduating from deposit plumbing to admission policy:
- #8362 (Aug 27, merged):
feat(pix): per-SSA deposit data in SsaRequest, sourced from the deposit pool— the per-Session-Source-Account deposit lookup, prerequisite for parameterized admission decisions. - #8355 (Aug 22, merged):
fix(session): stop ERROR-spam on inbound packets to torn-down sessions— operator log hygiene. - #8359 (Aug 25, merged):
chore(deps): bump the nix-flake-inputs group with 2 updates— dependency hygiene. - #8364 (Aug 28, merged):
chore: bump hopr-types to v4.0.0— major version bump; signals API surface changes. - #8369 (Aug 31, merged):
chore(deps): bump the nix-flake-inputs group with 2 updates— more dependency hygiene. - #8373 (Sep 1, merged):
chore(deps): unify on hopr-chain-connector 0.26.0— single-version policy across the workspace. - #8237 (Sep 2, merged):
feat: add session PIX supervisor— the supervisor that tracks PIX state per session and decides whether to admit new packets. - #8336 (Sep 3, merged):
fix(tests): scale cluster convergence waits with the test timeout— CI reliability on long-running integration tests. - #8377 (Sep 3, merged):
feat(session): parameterize PIX admission by Session target— the admission policy is now keyed by which session the packet is for, not just by deposit balance. This is a meaningful step toward the "PIX per application / per use-case" model that lets HOPR price different sessions differently.
The PIX supervision track is now visible in the public commit stream as a coordinated effort: deposit plumbing (#8362) → test reliability (#8336) → supervisor (#8237) → parameterized admission (#8377). Expect a HOPR blog post or release-notes announcement when the supervisor lands in a numbered release.
I2P: i2psnark Hardening Continues, No Core Release
I2P Java I2P i2p.i2p repository shows 27 commits Aug 24 → Sep 2, concentrated in i2psnark (the built-in BitTorrent client) and a small set of I2CP/router-level fixes:
- i2psnark magnet/trackers (Aug 28–29): UDP-URL-without-path validation, magnet-link tracker parsing (clip long magnets, save and show all trackers, use all trackers in magnet, add length from xl param to magnet name).
- i2psnark disk-space (Aug 31, Sep 1): Check available space when adding torrent files, stop FetchAndAdd if not enough space, show free disk space on add-torrent form, default tracker type to open on add tracker form.
- i2psnark audio preview (Sep 2): Increase min completion for audio preview, js audio playlist controls, loading directives for HTML5 elements, build fix from previous checkin.
- i2psnark WIP (Aug 27, ongoing):
i2psnark: v2 WIP part 7— multi-commit refactor of the BitTorrent client internals. - Router (Aug 29, 31):
Router: Ensure log gzipper finishes after shutdown signal(signal-handler correctness),reseed update(Aug 31),bump -5(Aug 31, version-internal bump). - I2CP (Aug 26, 30):
I2CP: Add new discardMessage() to session API(Aug 26, was new last week),I2CP: API interface javadoc clarifications(Aug 30). - i2psnark KRPC (Aug 26, 31):
i2psnark: Compress KRPC DG1 messages,i2psnark: Send sorted dictionaries in extensions as required by spec,i2psnark: Don't NPE on missing map in extension handshake(Aug 31),i2psnark: Compress UDP connect requests(Aug 26 — was new last week).
No I2P core release this window; I2P 2.13.0 (Jul 24, 2026) remains current. Per proposal 169, I2P 2.14.0 is targeted for October 2026 with the Hybrid MLKEM SSU2 release (PQ handshake for the UDP transport layer). The proposal status table from Apr 9 confirms: - Ratchet: Complete in Java I2P and i2pd (shipped) - NTCP2: Beta Q1 2026 → Release Q2 2026 (shipped in 2.12.0) - SSU2: Beta Q2 2026 → Release Q3 2026 (the missing piece, now 3 months late from the Apr 9 schedule) - MLDSA SigTypes 12-14: On hold until 2027
The Oct 2026 2.14.0 target now looks achievable — Aug 26's KRPC/UDP compression, the i2psnark v2 WIP refactor, and the I2CP API additions are the kind of housekeeping that precedes a major protocol-version cut-over.
Research Scan: Aug 29 → Sep 4
Direct ePrint keyword searches for mixnet, onion routing, anonymous communication, and private information retrieval in the window Aug 29 → Sep 4 returned no fresh first-line mixnet papers in the search results. The previously-documented papers remain the active anchors:
- DumboMix (ePrint 2026/1699, async anonymous broadcast with G.O.D. via Shamir-share MPC, O(1) multiplicative depth)
- De-SyRIS (ePrint 2026/1723, decentralized Sybil-resistant identity without trusted issuer)
- Proof-of-Uniqueness (ePrint 2026/1725, threshold-OPRF Sybil-resistant pseudonymous DIDs)
- Cao & Green reputation-framing attacks on Nym (ePrint 2026/101)
- Verifiable SelfMix (ePrint 2026/1617)
- QuMixnet (post-quantum mixnet protocol)
- MOCHA (ePrint 2025/861, IH&MMSEC 2025, Loopix client-anonymity measurement)
- Outfox (ACM SIGCOMM 2025, simplified Sphinx for PQ)
The research frontier continues to be measurement (MOCHA-style client-anonymity simulation, Katzenpost's per-node loss attribution) and committee-based alternatives to mixnets (DumboMix), rather than new mixnet protocols. The pattern: the field is consolidating around the existing primitives (Loopix/Sphinx/Katzenpost-catsov) and shipping them, while exploring committee-based asynchronous broadcast as a substitute for federated-mixnet trust models.
Evidence at a Glance
| Claim | Evidence | Source |
|---|---|---|
| Nym v2026.17-djibouti released Sep 2 | Release tag nym-binaries-v2026.17-djibouti published 2026-09-02T12:04:37Z |
github.com/nymtech/nym/releases/tag/nym-binaries-v2026.17-djibouti |
| Directory Contract 8 PRs ship in djibouti | CHANGELOG.md entries #6933/#6936/#6941/#6948/#6949/#6954/#7004/#7013 all under [2026.17-djibouti] (2026-09-01) |
github.com/nymtech/nym/blob/nym-binaries-v2026.17-djibouti/CHANGELOG.md |
| Outfox packet support removed (#7048) | Merged Aug 11; PR title chore: removed support for outfox packets; CHANGELOG entry under djibouti release; SOCKS5/WASM clients are now Mix-only |
github.com/nymtech/nym/pull/7048 |
| Geolocator service + contract (#7055) | Merged Aug 18; "Records where a nym-node is on chain, committed to a digest, so a consumer can verify the answer rather than trust whoever served it" | github.com/nymtech/nym/pull/7055 |
| Directory submission default-on (#7117) | Merged Sep 1; title feat: enable directory submission by default if possible |
github.com/nymtech/nym/pull/7117 |
| LP-Data separation (#7112) | Merged Sep 2; new crate nym-lp-gateway-client with dependency list verified via cargo tree |
github.com/nymtech/nym/pull/7112 |
| re-DKG robustness vol2-5 (#7082/#7088/#7096/#7107) | All four merged Sep 3; same title template "fix various bugs within nym-api making future re-DKG smoother [volN]" | github.com/nymtech/nym PRs |
| NymVPN v2026.12.4-beta.1 released Sep 3 | Tag nym-vpn-v2026.12.4-beta.1 published 2026-09-03T11:48:06Z; all platforms except Android (Google Play) |
github.com/nymtech/nym-vpn-client/releases/tag/nym-vpn-v2026.12.4-beta.1 |
| Pinned gateway bypass-of-blacklist fix (#6272) | Merged Sep 3; PR body documents the unfiltered-lookup bypass of NotBlacklisted/MinScore/Residential filters |
github.com/nymtech/nym-vpn-client/pull/6272 |
| F-Droid APK signing-cert SHA-256 | 3c98a016aa4f14a3ba185c764ed363415cf7ff3c3d328a87ffff2ff1b140ff06 (unchanged from 2026.12.3) |
nym-vpn-client release body for 2026.12.4-beta.1 |
| Arti 2.6.0 released Sep 1 | Blog "Arti 2.6.0 released" by gabi, Sep 1; CGO and Congestion Control "both now always enabled in arti" | blog.torproject.org/arti_2_6_0_released/ |
| Arti 2.6.0 changelog details | "much of the work focusing on document parsing, directory mirror support, and DNS stream handling... RPC-based configuration management" | same blog post |
| Tor Browser 15.0.21 released Sep 1 | "Tor Browser 15.0.21 is now available"; Firefox 140.15.0esr, OpenSSL 3.5.8, NoScript 13.6.32.1984, Go 1.25.14 | blog.torproject.org/new-release-tor-browser-15021/ |
| Tor Browser 16.0a11 released Sep 2 | Blog "New Alpha Release: Tor Browser 16.0a11" by ma1 | blog.torproject.org/new-alpha-release-tor-browser-160a11/ |
| Tails 7.12 first 2-week-cadence release | "Firefox is moving to a 2-week release cadence starting in September, and so Tor Browser and Tails are doing the same. Tails 7.12 is the first release on this new cadence." | blog.torproject.org/new-release-tails-7_12/ |
| Tor 0.4.8 EOL Sep 1 | "stop supporting Tor 0.4.8 and earlier releases on September 1, 2026"; un-upgraded relays lose connectivity | cyberinsider.com/tor-project-to-disable-support-for-tor-0-4-8-on-september-1 |
| Tor network 10,137 relays (Sep 1) | relayflags.csv 2026-09-01: Running 10137, Exit 3268, Fast 9987, Guard 6155, HSDir 3015, Stable 9059 | metrics.torproject.org/relayflags.csv |
| Tor network 10,146 relays (Aug 25) | relayflags.csv 2026-08-25 (carried forward from prior week) | same |
| Tor network 10,060 relays (Aug 31) | relayflags.csv 2026-08-31 (local low) | same |
| Katzenpost PR #1099 replica self-tuning doc (7 of 7) | Merged Sep 2; "replica: document the proxy path as self-tuning (7 of 7)" | github.com/katzenpost/katzenpost/pull/1099 |
| Katzenpost PR #1105 PKI epoch negotiation | Merged Sep 1; "client: agree on a PKI epoch instead of pinning one" | github.com/katzenpost/katzenpost/pull/1105 |
| Katzenpost PR #1112 websocket listener hardening | Merged Sep 2; 6-commit series covering Origin enforcement, listen-host requirement, close-on-Close, loopback default, InsecureSkipVerify opt-in | github.com/katzenpost/katzenpost/pull/1112 |
| Katzenpost PR #1114 silent drop instrumentation | Merged Sep 3; "server: instrument seven silent packet drop sites" | github.com/katzenpost/katzenpost/pull/1114 |
| Katzenpost PR #1120 Ping loss attribution | Merged Sep 3; "Ping probabilistic packet loss attribution"; 7 commits incl. "compare service nodes too", "explain the attribution maths", "attribute loss to nodes, with the uncertainty stated", "client: report the route a message took to the thin client" | github.com/katzenpost/katzenpost/pull/1120 |
| HOPR PR #8377 PIX admission parameterized by Session target | Merged Sep 3; "feat(session): parameterize PIX admission by Session target" | github.com/hoprnet/hoprnet/pull/8377 |
| HOPR PR #8237 session PIX supervisor | Merged Sep 2; "feat: add session PIX supervisor" | github.com/hoprnet/hoprnet/pull/8237 |
| HOPR PR #8362 per-SSA deposit data | Merged Aug 27; "feat(pix): per-SSA deposit data in SsaRequest, sourced from the deposit pool" | github.com/hoprnet/hoprnet/pull/8362 |
| I2P i2psnark commits 27x Aug 24 → Sep 2 | 27 distinct commit messages with i2psnark: prefix |
github.com/i2p/i2p.i2p/commits |
| I2P 2.14.0 target Oct 2026 (PQ SSU2) | Proposal 169 status: "SSU2 Implementation in progress, Beta Q2 2026, release Q3 2026"; i2p.net/en/proposals/169-pq-crypto | i2p.net/en/proposals/169-pq-crypto |