Skip to content

fix: pin kubo interop node to unixfs-v1-2025#1083

Merged
achingbrain merged 1 commit into
mainfrom
wip/kubo-cidv1-interop-fix
Jul 10, 2026
Merged

fix: pin kubo interop node to unixfs-v1-2025#1083
achingbrain merged 1 commit into
mainfrom
wip/kubo-cidv1-interop-fix

Conversation

@lidel

@lidel lidel commented Jul 8, 2026

Copy link
Copy Markdown
Member

Problem

Kubo 0.42 introduced unixfs-v1-2025 (IPIP-499) and 0.43 might switch to that as the default import profile (ipfs/kubo#8185), so ipfs add produces 1 MiB chunks with raw CIDv1 leaves instead of 256 KiB dag-pb.

The providers interop spec adds a 10 MiB file and asserts its root block is 1930 bytes, the old 40-leaf shape. Under the new default that root is 10 leaves / 509 bytes, so the interop test is outdated and fails long term.

Fix

  • Pin the unixfs-v1-2025 profile on the interop Kubo node via ipfsd-ctl's init.profiles, so imports are deterministic regardless of the Kubo version's default. The profile has existed since Kubo v0.40, so it also holds against the ^0.42.0 this package pins today.
  • Update the root-block assertion to 509.

Only the interop test setup changes, no shipping Helia code. This keeps CID-based interop assertions stable across Kubo releases.

@lidel
lidel requested a review from achingbrain July 8, 2026 22:08
@lidel
lidel requested a review from a team as a code owner July 8, 2026 22:08
lidel added a commit to ipfs/kubo that referenced this pull request Jul 8, 2026
Temporary. The published @helia/interop still expects Kubo's old CIDv0 /
256 KiB import defaults and fails against the new unixfs-v1-2025 default,
so build it from the PR branch that adapts the suite (ipfs/helia#1083).
Revert this commit once that PR ships to npm.
@lidel
lidel marked this pull request as draft July 8, 2026 22:36
@lidel
lidel force-pushed the wip/kubo-cidv1-interop-fix branch from bd3de1a to 8ae85eb Compare July 8, 2026 22:58
Kubo 0.43 makes unixfs-v1-2025 the default import profile (IPIP-499,
https://specs.ipfs.tech/ipips/ipip-0499/), so a 10 MiB file becomes ten
1 MiB raw CIDv1 leaves instead of forty 256 KiB dag-pb leaves. The interop
suite assumed the old CIDv0 / 256 KiB shape and failed against it.

Pin the unixfs-v1-2025 profile on the interop Kubo node via ipfsd-ctl's
init.profiles, in both the Node.js and browser fixtures, so imports are
deterministic regardless of the Kubo version's default (the profile has
existed since Kubo v0.40, so this also works against the 0.42 pinned here).
Update the interop expectations to the v1-2025 shape: the Helia side of the
unixfs-files CID comparisons, the providers root block size (now 509 bytes),
and the block and dag-size assertions in unixfs-files.
@lidel
lidel force-pushed the wip/kubo-cidv1-interop-fix branch from 8ae85eb to 228b242 Compare July 9, 2026 02:46
@lidel
lidel marked this pull request as ready for review July 9, 2026 17:41
@achingbrain
achingbrain merged commit 2520fb9 into main Jul 10, 2026
18 checks passed
@achingbrain
achingbrain deleted the wip/kubo-cidv1-interop-fix branch July 10, 2026 12:10
@achingbrain achingbrain mentioned this pull request Jul 10, 2026
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.

2 participants