You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<linkrel="stylesheet" href="spec.css"><linkrel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><rect x=%220%22 y=%220%22 width=%22100%22 height=%22100%22 fill=%22%2300ff75%22></rect></svg>"><metaname="twitter:card" content="summary_large_image"><metaname="twitter:title" property="og:title" content="DASL: Big DASL (BDASL)"><metaname="twitter:description" property="og:description" content="BDASL extends DASL CIDs with a new hash type that works better for large files but isn't available by default in browsers, and therefore not an appropriate option in most situations."><metaname="twitter:image" property="og:image" content="https://dasl.ing/bdasl.png"><metaname="twitter:image:alt" content="Very colourful stripes, so colourful it hurts"><metaname="twitter:url" property="og:url" content="https://dasl.ing/"><metaproperty="og:site_name" content="DASL"><metaproperty="og:locale" content="en"><metaname="theme-color" content="#00ff75"></head>
22
-
<body><divclass="nav-back">A specification of the <ahref="/">DASL Project</a>.</div><main><header><h1>Big DASL (BDASL)</h1><table><tbody><tr><th>date</th><td>2025-10-17</td></tr><tr><th>editors</th><td><ahref="https://berjon.com/">Robin Berjon</a> <<ahref="mailto:[email protected]">[email protected]</a>><br><ahref="https://bumblefudge.com/">Juan Caballero</a> <<ahref="mailto:[email protected]">[email protected]</a>></td></tr><tr><th>issues</th><td><ahref="https://github.com/darobin/dasl.ing/issues">list</a>, <ahref="https://github.com/darobin/dasl.ing/issues/new">new</a></td></tr><tr><th>abstract</th><td><divid="abstract">
22
+
<body><divclass="nav-back">A specification of the <ahref="/">DASL Project</a>.</div><main><header><h1>Big DASL (BDASL)</h1><table><tbody><tr><th>date</th><td>2025-10-20</td></tr><tr><th>editors</th><td><ahref="https://berjon.com/">Robin Berjon</a> <<ahref="mailto:[email protected]">[email protected]</a>><br><ahref="https://bumblefudge.com/">Juan Caballero</a> <<ahref="mailto:[email protected]">[email protected]</a>></td></tr><tr><th>issues</th><td><ahref="https://github.com/darobin/dasl.ing/issues">list</a>, <ahref="https://github.com/darobin/dasl.ing/issues/new">new</a></td></tr><tr><th>abstract</th><td><divid="abstract">
23
23
<p>
24
24
BDASL extends DASL CIDs with a new hash type that works better for large files but isn't
25
25
available by default in browsers, and therefore not an appropriate option in most
@@ -53,4 +53,4 @@ <h2>Parsing BDASL CIDs</h2>
53
53
</section>
54
54
55
55
56
-
<section><h2>References</h2><dl><dtid="ref-blake3">[blake3]</dt><dd>J-P. Aumasson, S. Neves, J. O'Connor, Z. Wilcox. <ahref="https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html"><cite>The BLAKE3 Hashing Framework</cite></a>. July 2024. URL: <ahref="https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html">https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html</a></dd><dtid="ref-cid">[cid]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/cid.html"><cite>Content IDs (CIDs)</cite></a>. 2025-10-17. URL: <ahref="https://dasl.ing/cid.html">https://dasl.ing/cid.html</a></dd></dl></section></main></body></html>
56
+
<section><h2>References</h2><dl><dtid="ref-blake3">[blake3]</dt><dd>J-P. Aumasson, S. Neves, J. O'Connor, Z. Wilcox. <ahref="https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html"><cite>The BLAKE3 Hashing Framework</cite></a>. July 2024. URL: <ahref="https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html">https://www.ietf.org/archive/id/draft-aumasson-blake3-00.html</a></dd><dtid="ref-cid">[cid]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/cid.html"><cite>Content IDs (CIDs)</cite></a>. 2025-10-20. URL: <ahref="https://dasl.ing/cid.html">https://dasl.ing/cid.html</a></dd></dl></section></main></body></html>
<linkrel="stylesheet" href="spec.css"><linkrel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><rect x=%220%22 y=%220%22 width=%22100%22 height=%22100%22 fill=%22%2300ff75%22></rect></svg>"><metaname="twitter:card" content="summary_large_image"><metaname="twitter:title" property="og:title" content="DASL: Content-Addressable aRchives (CAR)"><metaname="twitter:description" property="og:description" content="The CAR format offers a serialized representation of set of content-addressed resources in one single concatenated stream, alongside a header that describes that content."><metaname="twitter:image" property="og:image" content="https://dasl.ing/car.png"><metaname="twitter:image:alt" content="Very colourful stripes, so colourful it hurts"><metaname="twitter:url" property="og:url" content="https://dasl.ing/"><metaproperty="og:site_name" content="DASL"><metaproperty="og:locale" content="en"><metaname="theme-color" content="#00ff75"></head>
22
-
<body><divclass="nav-back">A specification of the <ahref="/">DASL Project</a>.</div><main><header><h1>Content-Addressable aRchives (CAR)</h1><table><tbody><tr><th>date</th><td>2025-10-17</td></tr><tr><th>editors</th><td><ahref="https://berjon.com/">Robin Berjon</a> <<ahref="mailto:[email protected]">[email protected]</a>><br><ahref="https://bumblefudge.com/">Juan Caballero</a> <<ahref="mailto:[email protected]">[email protected]</a>></td></tr><tr><th>issues</th><td><ahref="https://github.com/darobin/dasl.ing/issues">list</a>, <ahref="https://github.com/darobin/dasl.ing/issues/new">new</a></td></tr><tr><th>abstract</th><td><divid="abstract">
22
+
<body><divclass="nav-back">A specification of the <ahref="/">DASL Project</a>.</div><main><header><h1>Content-Addressable aRchives (CAR)</h1><table><tbody><tr><th>date</th><td>2025-10-20</td></tr><tr><th>editors</th><td><ahref="https://berjon.com/">Robin Berjon</a> <<ahref="mailto:[email protected]">[email protected]</a>><br><ahref="https://bumblefudge.com/">Juan Caballero</a> <<ahref="mailto:[email protected]">[email protected]</a>></td></tr><tr><th>issues</th><td><ahref="https://github.com/darobin/dasl.ing/issues">list</a>, <ahref="https://github.com/darobin/dasl.ing/issues/new">new</a></td></tr><tr><th>abstract</th><td><divid="abstract">
23
23
<p>
24
24
The CAR format offers a serialized representation of set of content-addressed
25
25
resources in one single concatenated stream, alongside a header that describes
@@ -50,13 +50,13 @@ <h2>Parsing CAR</h2>
50
50
chunk of DRISL ([<ahref="#ref-drisl" class="ref">drisl</a>]) and the Body is a sequence of zero or more length-prefixed
51
51
blocks that contain a tuple of a DASL CID ([<ahref="#ref-cid" class="ref">cid</a>]) which is always 36 bytes long and
52
52
the data addressed by that CID.
53
-
The length prefix of each block in a CAR is encoded as an unsigned variable-length
53
+
The length prefix in a CAR is encoded as an unsigned variable-length
54
54
integer ([<ahref="#ref-varint" class="ref">varint</a>], a variant of <ahref="https://en.wikipedia.org/wiki/LEB128">LEB128</a>).
55
-
This integer specifies the number of remaining bytes for that block entry, excluding
56
-
the bytes used to encode the integer, but including the CID for non-Header blocks.
55
+
This integer specifies the number of remaining bytes, excluding
56
+
the bytes used to encode the integer, but including the CID for Body blocks.
57
57
</p>
58
-
<pre><code>|------- Header -------| |------------------- Body -------------------|
59
-
[ int | DAG-CBOR block ] [ int | CID | data ] [ int | CID | data ] …
58
+
<pre><code>|------ Header -----| |------------------- Body -------------------|
59
+
[ int | DRISL block ] [ int | CID | data ] [ int | CID | data ] …
60
60
</code></pre>
61
61
<p>
62
62
The steps to <dfnid="dfn-parse-a-car">parse a CAR</dfn> are:
@@ -150,8 +150,8 @@ <h2>Parsing CAR</h2>
150
150
</ol>
151
151
<p>
152
152
After its header, CAR contains a series of blocks each of which is
153
-
prefixed with a small header of its own capturing the block's size and
154
-
CID.
153
+
length-prefixed and has a small header capturing a CID followed by
154
+
the block's body data.
155
155
</p>
156
156
<p>
157
157
The steps to <dfnid="dfn-parse-a-car-block-header">parse a CAR block header</dfn> are:
@@ -178,13 +178,13 @@ <h3>Conformance</h3>
178
178
A CAR stream must only feature DASL CIDs.
179
179
</p>
180
180
<p>
181
-
A CAR stream must have CIDs that match the block that follows
182
-
them. A CAR implementation should verify that CIDs match blocks, though
181
+
A CAR stream must have CIDs that match the data body that follows
182
+
them. A CAR implementation should verify that CIDs match block body data, though
183
183
it may delegate verification to other components. (Keep in mind that not
184
184
verifying at all negates the value of content addressing.)
185
185
</p>
186
186
<p>
187
-
A CAR stream's stated roots must match CIDs contained in the data.
187
+
A CAR stream's stated roots must match CIDs contained in the Body.
188
188
However, implementations frequently operate in a streaming fashion such that
189
189
they have no way of knowing whether a CAR stream conforms to this
190
190
requirement before having processed the entire stream. Checking
@@ -233,4 +233,4 @@ <h2>Appendix: Media Type</h2>
233
233
</section>
234
234
235
235
236
-
<section><h2>References</h2><dl><dtid="ref-cid">[cid]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/cid.html"><cite>Content IDs (CIDs)</cite></a>. 2025-10-17. URL: <ahref="https://dasl.ing/cid.html">https://dasl.ing/cid.html</a></dd><dtid="ref-drisl">[drisl]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/drisl.html"><cite>DRISL — Deterministic Representation for Interoperable Structures & Links</cite></a>. 2025-10-17. URL: <ahref="https://dasl.ing/drisl.html">https://dasl.ing/drisl.html</a></dd><dtid="ref-masl">[masl]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/masl.html"><cite>MASL — Metadata for Arbitrary Structures & Links</cite></a>. 2025-10-17. URL: <ahref="https://dasl.ing/masl.html">https://dasl.ing/masl.html</a></dd><dtid="ref-varint">[varint]</dt><dd><ahref="https://github.com/multiformats/unsigned-varint"><cite>unsigned varint</cite></a>. URL: <ahref="https://github.com/multiformats/unsigned-varint">https://github.com/multiformats/unsigned-varint</a></dd></dl></section></main></body></html>
236
+
<section><h2>References</h2><dl><dtid="ref-cid">[cid]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/cid.html"><cite>Content IDs (CIDs)</cite></a>. 2025-10-20. URL: <ahref="https://dasl.ing/cid.html">https://dasl.ing/cid.html</a></dd><dtid="ref-drisl">[drisl]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/drisl.html"><cite>DRISL — Deterministic Representation for Interoperable Structures & Links</cite></a>. 2025-10-20. URL: <ahref="https://dasl.ing/drisl.html">https://dasl.ing/drisl.html</a></dd><dtid="ref-masl">[masl]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/masl.html"><cite>MASL — Metadata for Arbitrary Structures & Links</cite></a>. 2025-10-20. URL: <ahref="https://dasl.ing/masl.html">https://dasl.ing/masl.html</a></dd><dtid="ref-varint">[varint]</dt><dd><ahref="https://github.com/multiformats/unsigned-varint"><cite>unsigned varint</cite></a>. URL: <ahref="https://github.com/multiformats/unsigned-varint">https://github.com/multiformats/unsigned-varint</a></dd></dl></section></main></body></html>
<linkrel="stylesheet" href="spec.css"><linkrel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><rect x=%220%22 y=%220%22 width=%22100%22 height=%22100%22 fill=%22%2300ff75%22></rect></svg>"><metaname="twitter:card" content="summary_large_image"><metaname="twitter:title" property="og:title" content="DASL: Content IDs (CIDs)"><metaname="twitter:description" property="og:description" content="DASL CIDs are a simple structured identifier format for content addressing. They encapsulate a hash with enough metadata to be extensible (to add new hash types in the future) and to indicate whether they are pointing to raw bytes or to structured data."><metaname="twitter:image" property="og:image" content="https://dasl.ing/cid.png"><metaname="twitter:image:alt" content="Very colourful stripes, so colourful it hurts"><metaname="twitter:url" property="og:url" content="https://dasl.ing/"><metaproperty="og:site_name" content="DASL"><metaproperty="og:locale" content="en"><metaname="theme-color" content="#00ff75"></head>
22
-
<body><divclass="nav-back">A specification of the <ahref="/">DASL Project</a>.</div><main><header><h1>Content IDs (CIDs)</h1><table><tbody><tr><th>date</th><td>2025-10-17</td></tr><tr><th>editors</th><td><ahref="https://berjon.com/">Robin Berjon</a> <<ahref="mailto:[email protected]">[email protected]</a>><br><ahref="https://bumblefudge.com/">Juan Caballero</a> <<ahref="mailto:[email protected]">[email protected]</a>></td></tr><tr><th>issues</th><td><ahref="https://github.com/darobin/dasl.ing/issues">list</a>, <ahref="https://github.com/darobin/dasl.ing/issues/new">new</a></td></tr><tr><th>abstract</th><td><divid="abstract">
22
+
<body><divclass="nav-back">A specification of the <ahref="/">DASL Project</a>.</div><main><header><h1>Content IDs (CIDs)</h1><table><tbody><tr><th>date</th><td>2025-10-20</td></tr><tr><th>editors</th><td><ahref="https://berjon.com/">Robin Berjon</a> <<ahref="mailto:[email protected]">[email protected]</a>><br><ahref="https://bumblefudge.com/">Juan Caballero</a> <<ahref="mailto:[email protected]">[email protected]</a>></td></tr><tr><th>issues</th><td><ahref="https://github.com/darobin/dasl.ing/issues">list</a>, <ahref="https://github.com/darobin/dasl.ing/issues/new">new</a></td></tr><tr><th>abstract</th><td><divid="abstract">
23
23
<p>
24
24
DASL CIDs are a simple structured identifier format for content addressing. They encapsulate a hash
25
25
with enough metadata to be extensible (to add new hash types in the future) and to indicate whether
@@ -150,4 +150,4 @@ <h2>Relationship to IPFS</h2>
150
150
</section>
151
151
152
152
153
-
<section><h2>References</h2><dl><dtid="ref-drisl">[drisl]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/drisl.html"><cite>DRISL — Deterministic Representation for Interoperable Structures & Links</cite></a>. 2025-10-17. URL: <ahref="https://dasl.ing/drisl.html">https://dasl.ing/drisl.html</a></dd><dtid="ref-rfc4648">[rfc4648]</dt><dd>S. Josefsson. <ahref="https://www.rfc-editor.org/rfc/rfc4648"><cite>The Base16, Base32, and Base64 Data Encodings</cite></a>. October 2006. URL: <ahref="https://www.rfc-editor.org/rfc/rfc4648">https://www.rfc-editor.org/rfc/rfc4648</a></dd><dtid="ref-sha256">[sha256]</dt><dd>National Institute of Standards and Technology, <cite>Secure Hash Algorithm. NIST FIPS 180-2</cite>. August 2002.</dd></dl></section></main></body></html>
153
+
<section><h2>References</h2><dl><dtid="ref-drisl">[drisl]</dt><dd>Robin Berjon & Juan Caballero. <ahref="https://dasl.ing/drisl.html"><cite>DRISL — Deterministic Representation for Interoperable Structures & Links</cite></a>. 2025-10-20. URL: <ahref="https://dasl.ing/drisl.html">https://dasl.ing/drisl.html</a></dd><dtid="ref-rfc4648">[rfc4648]</dt><dd>S. Josefsson. <ahref="https://www.rfc-editor.org/rfc/rfc4648"><cite>The Base16, Base32, and Base64 Data Encodings</cite></a>. October 2006. URL: <ahref="https://www.rfc-editor.org/rfc/rfc4648">https://www.rfc-editor.org/rfc/rfc4648</a></dd><dtid="ref-sha256">[sha256]</dt><dd>National Institute of Standards and Technology, <cite>Secure Hash Algorithm. NIST FIPS 180-2</cite>. August 2002.</dd></dl></section></main></body></html>
0 commit comments