Skip to content

build(antd): repin ant-core 0.12.0 (ant-cli-v0.3.10) - #319

Merged
Nic-dorman merged 1 commit into
mainfrom
nic/v2-1505-antd-ant-core-0-12
Oct 13, 2026
Merged

Nic-dorman merged 1 commit into
mainfrom
nic/v2-1505-antd-ant-core-0-12

Conversation

@Nic-dorman

@Nic-dorman Nic-dorman commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Summary

Repins antd from ant-core 0.10.0 (ant-cli-v0.3.8) to 0.12.0 (ant-cli-v0.3.10, released 2026-10-08), before the antd release that ships byte-range downloads (#313) and the chunk-cache cap (#314). No source changes were needed.

This is an interim repin. A later one will pick up single-flight chunk fetches (WithAutonomi/ant-client#218) once that's released.

What changes

antd/Cargo.toml:

  • ant-core: tag ant-cli-v0.3.8 → ant-cli-v0.3.10.
  • ant-protocol: =3.0.0 → =4.0.0, which must match ant-core's own copy exactly.
  • evmlib (0.10.0) and self_encryption (0.36.0) are unchanged; ant-core 0.12.0 still resolves to them.

antd/Cargo.lock moves four crates (ant-core, ant-protocol 4.0.0, saorsa-core 0.29.0, saorsa-transport 0.38.0) and keeps a single copy of each.

What antd picks up

ant-client recorded no release notes for 0.3.9 or 0.3.10, so this list comes from the commits.

  • Cold-download startup (ant-client 96d63f9): early speculative GETs go only to peers that are already connected. Peer discovery gets the full fallback allowance while it runs. A cold download no longer burns its early GET slots on dead addresses.
  • Late holders (ant-client 630d646): a holder that discovery finds after the early allowance is spent is still read, rather than waiting for discovery to finish.
  • data_download_range now goes through an internal helper that can reuse records the caller already holds. antd's calls behave as before.
  • ant-protocol 4.0.0 adds the pointer messages, appended after every existing variant, so older peers reject them cleanly. antd exposes no pointer API.
    • The versioned quote requests (QuoteRequestV2), with their fallback for older nodes, were already in 0.10.0.

The rest of 0.11 and 0.12 is pointers and browser/WASM fixes.

Test evidence

Unit tests: antd passes 113 tests, and fmt and clippy --all-targets -D warnings are clean.

Devnet, 4.5 GiB: a 25-node devnet on ant-node 0.22.0, the release that pairs with ant-core 0.12.0 (the earlier runs used 0.20.0). The daemon is a release build of this branch (build_commit 00b94aa), so it includes #313–#317 and the #314 cache cap at its default of 64. The object is 4,831,850,553 bytes. ALL PASS, and antd logged no ERROR or WARN lines.

  • Range check:
    • 38 ranges over REST and gRPC, private and public, are byte-identical to the source file. They include ranges past 2^32 and the edge of the last chunk.
    • The unsatisfiable cases give 416 with bytes */size, and gRPC OUT_OF_RANGE carries the size (the run requires it).
    • Every range fetched exactly the same chunks as the 0.10.0 run did: the per-range overlap, fetched and cache-hit counts match for all 38.
  • antd-rust range methods (feat(antd-rust): byte-range stream methods on the REST and gRPC clients #317): all 30 checks pass on both transports, including whole-object reads and RangeNotSatisfiable { size: Some(4831850553) }.

Compared with the same check on 0.10.0 and ant-node 0.20.0 with the cache cap:

ant-core 0.10.0 ant-core 0.12.0
Whole object, bytes=0- 67.4 MB/s 70.0 MB/s
Peak antd RSS on that read 887 MiB 914 MiB
gRPC stream from 2^32 − 512 MiB to the end (1.07 GB), peak RSS 903 MiB 904 MiB
Private upload, 1,157 chunks 6m42s (12.0 MB/s) 7m34s (10.6 MB/s)
Public upload 2m21s 2m27s

The upload was about 13% slower. Each figure is a single run on one box, and the node version changed as well as the client. Two earlier 0.10.0 runs took 6m42s and 6m28s.

🤖 Generated with Claude Code

Moves antd from ant-core 0.10.0 (ant-cli-v0.3.8) to the latest release,
ahead of the antd release that ships byte-range downloads and the
chunk-cache cap. No source changes are needed.

The pins that track ant-core's graph move with it: ant-protocol =3.0.0 ->
=4.0.0. evmlib (0.10.0) and self_encryption (0.36.0) are unchanged. The
lock also moves saorsa-core 0.28.0 -> 0.29.0 and saorsa-transport
0.37.0 -> 0.38.0, and holds a single copy of each.

What antd picks up on its native read path:
- Early speculative GETs go only to already-connected peers, and discovery
  has the full fallback allowance while it runs, so a cold download no
  longer stalls on dead addresses (ant-client 96d63f9).
- A holder that discovery offers after that allowance is spent is still
  read, instead of waiting for discovery to finish (ant-client 630d646).
- data_download_range now goes through an internal helper that can use
  records the caller already holds; antd's calls behave as before.

ant-protocol 4.0.0 adds the pointer messages, appended after every existing
variant, so older peers reject them cleanly. antd exposes no pointer API.
The rest of 0.11 and 0.12 is pointers and browser/WASM fixes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Nic-dorman
Nic-dorman merged commit d2b1ee0 into main Oct 13, 2026
5 checks passed
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