Skip to content

chore(deps): pin saorsa-core to the copy-free send path - #35

Closed
mickvandijke wants to merge 1 commit into
web-supportfrom
perf/replication-send-path
Closed

mickvandijke wants to merge 1 commit into
web-supportfrom
perf/replication-send-path

Conversation

@mickvandijke

@mickvandijke mickvandijke commented Sep 22, 2026

Copy link
Copy Markdown
Member

Summary

Dependency pin only: saorsa-core → e1f1ef92 (perf/replication-send-path), which frames and sends messages without copying the payload and carries saorsa-transport 3bd451d2. No code changes in this crate; it is the link that lets ant-node and ant-client consume a single copy of saorsa-core.

Linear issue

Closes V2-TBD

Risk tier

  • T0 — docs / tooling / CI / pure UX-output. Repo CI only.
  • T1 — client-only, no network-facing behavior change. CI + prod compat smoke.
  • T2 — node/client logic with behavioral surface, no protocol/format/economics change. Dev testnet + ADR.
  • T3 — protocol / storage format / payments / routing. T2 evidence + adversarial testing.

Compatibility

  • Wire: none — the pinned saorsa-core produces byte-identical frames.
  • Storage: none
  • API: none in this crate.

Semver impact

  • breaking
  • feature
  • fix

Test evidence

  • cargo check --all-targets and cargo test: 87 passed on the new pin.
  • Downstream on this commit: ant-node 590 unit + 38 e2e, ant-client 713 unit tests + browser-WASM check — all passing.

Testnet comparison, 2026-09-22 (this stack vs current web-support). Two 60-node DigitalOcean fleets with an identical layout (8 regions, 18/60 nodes behind symmetric NAT), 4 native uploaders (50 MiB files, own wallets) + 1 continuous sha256-verified downloader each, started together and measured for 60 minutes. Baseline: ant-node 50167d39 + ant-client 04c64fa. New: ant-node f55b7df8, saorsa-core e1f1ef92, saorsa-transport 3bd451d2, ant-protocol ac25b717, ant-client f11c557 (pins only, so the client code is identical on both sides).

base new
Uploads OK / failed 375 / 0 412 / 0 (+10%)
Upload throughput 5.21 MiB/s 5.72 MiB/s
Upload time mean / p95 / worst 37.9 / 63.4 / 208 s 34.4 / 46.1 / 55 s
Upload throughput per 10 min 5.6 → 4.9 MiB/s (decaying) 5.5 → 5.5 MiB/s (flat)
Downloads OK / failed 130 / 0 120 / 0 (−8%)
Download time mean / p95 26.9 / 36.5 s 29.1 / 40.1 s
Node RSS mean / p95 / largest 199 / 305 / 428 MiB 182 / 262 / 364 MiB
Lowest free memory on any node droplet 1392 MiB 1859 MiB
Node CPU per GiB stored 0.82 core-h 0.82 core-h
Node WARN / ERROR log lines 52,613 / 38 3,773 / 12
Uploader client peak / p95 memory 680 / 465 MiB 453 / 327 MiB
Uploader client CPU per GiB 313 core-s 282 core-s
Node restarts 0 0

The baseline's warnings are the unbounded replication fan-out at work: 17,774 dial failures, 2,795 "Paid notify dropped at admission — paid-list evidence lost", 1,877 possession-probe timeouts, ~2,800 channel-send failures. The new stack logged no paid-notify drops, 134 dial failures and 286 probe timeouts. The 8% slower downloads on the new stack are the expected cost of deferring replication under load: every download fetched a file uploaded within the previous minute, which now has fewer replicas at that moment (MAX_PENDING_FRESH_OFFERS trades memory for burst absorption). Raw data: ant-testnet/state/comparisons/web-support-send-path-vs-base-60m-0922/.

New dependency

none

ADR

https://github.com/WithAutonomi/ant-node/blob/perf/replication-send-path/docs/adr/ADR-0016-bounded-fresh-offers-and-copy-free-sends.md

Mitigation / rollback

Revert the pin to saorsa-core 02dd65fc.

🤖 Generated with Claude Code

Picks up the copy-free message send path (saorsa-core e1f1ef92 with
saorsa-transport 3bd451d2). No code changes in this crate.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@mickvandijke

Copy link
Copy Markdown
Member Author

Closing: this PR only bumps the saorsa-core git pin; the pin will be moved when the send-path changes (saorsa-transport #171, saorsa-core #166, ant-node #233) land.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant