Skip to content

Commit 25a3fc2

Browse files
committed
chore: add pinata and filebase to IPIP-499 table
1 parent b06a66e commit 25a3fc2

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

src/ipips/ipip-0499.md

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ tags: ['ipips']
5050

5151
## Summary
5252

53-
This proposal introduces **configuration profiles** for CIDs that represent files and directories using [UnixFS](https://specs.ipfs.tech/unixfs/). The legacy profiles table also documents non-UnixFS implementations for reference.
53+
This proposal introduces **configuration profiles** for CIDs that represent files and directories using [UnixFS](https://specs.ipfs.tech/unixfs/). The legacy profiles table also documents non-UnixFS implementations for reference.
5454

5555
## Motivation
5656

@@ -98,15 +98,15 @@ The `balanced` DAG layout has implementation variants that affect CID determinis
9898

9999
Implementations adopting a profile SHOULD specify which balanced variant they use. The `unixfs-v1-2025` profile uses `balanced` for maximum compatibility with existing implementations.
100100

101-
##### `balanced`
101+
#### `balanced`
102102

103103
The original balanced layout used by [kubo][]/[boxo][], [helia][], and others in the ecosystem. Builds the tree incrementally as chunks stream in:
104104
- Starts with first chunk as root, grows tree upward as needed
105105
- Uses explicit depth tracking to fill nodes recursively
106106
- All leaf nodes end up at the **same depth** from the root
107107
- Reference: [`boxo/ipld/unixfs/importer/balanced/builder.go`](https://github.com/ipfs/boxo/blob/v0.35.2/ipld/unixfs/importer/balanced/builder.go)
108108

109-
##### `balanced-packed`
109+
#### `balanced-packed`
110110

111111
Name introduced by this IPIP for [Singularity][singularity]'s variant. Groups pre-computed links in batch:
112112
- Takes all chunk links as input, then packs them into parent nodes (up to max width)
@@ -157,24 +157,24 @@ These inconsistencies between Go and JS implementations over the years, combined
157157

158158
We analyzed the default settings across the most popular UnixFS implementations in the ecosystem. The table below documents the divergences that prevent deterministic CID generation today:
159159

160-
| Parameter | [kubo][] (CIDv0) | [helia][] | [storacha][] | [kubo][] (CIDv1) | [singularity][] | [dasl][] |
161-
| ----------------------------- | ------------------------ | -------------------- | ------------------ | ----------------------------- | ----------------------------------- | ------------ |
162-
| Based on | v0.39 (`unixfs-v0-2015`) | @helia/unixfs 6.0.4 | w3cli 7.12.0 | v0.39 (`test-cid-v1` profile) | v0.6.0-RC4 (454b630) | spec 2025-12 |
163-
| CID version | CIDv0 | CIDv1 | CIDv1 | CIDv1 | CIDv1 | CIDv1 |
164-
| Hash function | sha2-256 | sha2-256 | sha2-256 | sha2-256 | sha2-256 | sha2-256 |
165-
| Chunking algorithm | fixed-size | fixed-size | fixed-size | fixed-size | fixed-size | N/A |
166-
| Max chunk size | 256KiB | 1MiB | 1MiB | 1MiB | 1MiB | N/A |
167-
| DAG layout | balanced | balanced | balanced | balanced | [balanced-packed](#balanced-packed) | N/A |
168-
| DAG width (children per node) | 174 | 1024 | 1024 | 174 | 1024 | N/A |
169-
| HAMTDirectory fanout | 256 blocks | 256 blocks | 256 blocks | 256 blocks | 256 blocks (boxo) | N/A |
170-
| HAMTDirectory threshold | 256KiB (links-bytes) | 256KiB (links-bytes) | 1000 (links-count) | 256KiB (links-bytes) | 256KiB (links-bytes) (boxo) | N/A |
171-
| HAMT switch comparison | >= | > | > | >= | >= (boxo) | N/A |
172-
| Leaves | dag-pb | raw | raw | raw | raw | N/A |
173-
| Empty directories | included | included | excluded | included | included | N/A |
174-
| Hidden entities | excluded (opt-in) | excluded (opt-in) | excluded (opt-in) | excluded (opt-in) | included (rclone) | N/A |
175-
| Symlinks | preserved | followed | followed | preserved | skipped (rclone) | N/A |
176-
| Mode (permissions) | excluded (opt-in) | excluded (opt-in) | not supported | excluded (opt-in) | not supported | N/A |
177-
| Mtime (modification time) | excluded (opt-in) | excluded (opt-in) | not supported | excluded (opt-in) | not supported | N/A |
160+
| Parameter | [kubo][] (CIDv0) | [helia][] | [storacha][] | [kubo][] (CIDv1) | [singularity][] | [dasl][] | [pinata][] | [filebase][] |
161+
| ----------------------------- | ------------------------ | -------------------- | ------------------ | ----------------------------- | ----------------------------------- | ------------ | ------------ | ------------------- |
162+
| Based on | v0.39 (`unixfs-v0-2015`) | @helia/unixfs 6.0.4 | w3cli 7.12.0 | v0.39 (`test-cid-v1` profile) | v0.6.0-RC4 (454b630) | spec 2025-12 | ? | add via rpc |
163+
| CID version | CIDv0 | CIDv1 | CIDv1 | CIDv1 | CIDv1 | CIDv1 | ? | CIDv0 |
164+
| Hash function | sha2-256 | sha2-256 | sha2-256 | sha2-256 | sha2-256 | sha2-256 | ? | sha2-256 |
165+
| Chunking algorithm | fixed-size | fixed-size | fixed-size | fixed-size | fixed-size | N/A | ? | fixed-size |
166+
| Max chunk size | 256KiB | 1MiB | 1MiB | 1MiB | 1MiB | N/A | ? | 256KiB |
167+
| DAG layout | balanced | balanced | balanced | balanced | [balanced-packed](#balanced-packed) | N/A | ? | ? |
168+
| DAG width (children per node) | 174 | 1024 | 1024 | 174 | 1024 | N/A | ? | ? |
169+
| HAMTDirectory fanout | 256 blocks | 256 blocks | 256 blocks | 256 blocks | 256 blocks (boxo) | N/A | ? | ? |
170+
| HAMTDirectory threshold | 256KiB (links-bytes) | 256KiB (links-bytes) | 1000 (links-count) | 256KiB (links-bytes) | 256KiB (links-bytes) (boxo) | N/A | ? | ? |
171+
| HAMT switch comparison | >= | > | > | >= | >= (boxo) | N/A | ? | ? |
172+
| Leaves | dag-pb | raw | raw | raw | raw | N/A | ? | ? |
173+
| Empty directories | included | included | excluded | included | included | N/A | ? | ? |
174+
| Hidden entities | excluded (opt-in) | excluded (opt-in) | excluded (opt-in) | excluded (opt-in) | included (rclone) | N/A | ? | ? |
175+
| Symlinks | preserved | followed | followed | preserved | skipped (rclone) | N/A | ? | ? |
176+
| Mode (permissions) | excluded (opt-in) | excluded (opt-in) | not supported | excluded (opt-in) | not supported | N/A | ? | ? |
177+
| Mtime (modification time) | excluded (opt-in) | excluded (opt-in) | not supported | excluded (opt-in) | not supported | N/A | ? | ? |
178178

179179
**Terminology:**
180180

@@ -187,6 +187,7 @@ We analyzed the default settings across the most popular UnixFS implementations
187187
- `skipped`: Symlinks ignored during traversal (not included in DAG)
188188
- `(rclone)`: Singularity delegates file traversal to [rclone](https://rclone.org/); values shown reflect rclone defaults
189189
- `(boxo)`: Singularity overrides some [boxo][] defaults but relies on implicit boxo defaults for these values
190+
- `?`: Service did not provide implementation details when queried in [ipfs/specs#499](https://github.com/ipfs/specs/pull/499)
190191

191192
## Detailed design
192193

@@ -390,6 +391,8 @@ For the following cases, see existing test vectors in the [UnixFS spec](https://
390391
[storacha]: https://github.com/storacha/w3cli
391392
[singularity]: https://github.com/data-preservation-programs/singularity
392393
[dasl]: https://dasl.ing
394+
[pinata]: https://pinata.cloud
395+
[filebase]: https://filebase.com
393396

394397
### Copyright
395398

0 commit comments

Comments
 (0)