From 03300f8ea55daf2991793c9be68c75b0a7d119a1 Mon Sep 17 00:00:00 2001 From: Jimmy Debe <91767824+jimstir@users.noreply.github.com> Date: Tue, 27 Aug 2024 00:05:08 -0400 Subject: [PATCH 1/3] Create manifest.md --- manifest.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 manifest.md diff --git a/manifest.md b/manifest.md new file mode 100644 index 0000000..e63df01 --- /dev/null +++ b/manifest.md @@ -0,0 +1,49 @@ +--- +title: CODEX-MANIFEST +name: Codes Manifest +status: raw +category: Standards Track +tags: codex +editor: +contributors: +--- + +## Abstract + +This specification describes the parameters used in the manifest for a Codex client application. + +## Background +The manifest is the default configuration for a Codex client. +The file contains key-value pairs that are configuirable. +The structured format used is JSON. + +## Manifest Parameters + +```json + +"manifest" : { + "treeCid" : "string" + "datasetSize" : , + "codec" : , + "hcodec" : , + "version" : , + "protected" : "bool", + "ecK" : "int", + "ecM" : "int", + "originalTreeCid" : , + "originalDatasetSize" : + "protectedStrategy" : + "verifiable" : , + "verifyRoot" : , + "slotRoots" : , + "cellSize" : , + "verifiableStrategy" : , + +} + + +``` + +`treeCid` + +- From 51fdd99a2ea3097cbce58e8895aabad19c78f7c2 Mon Sep 17 00:00:00 2001 From: Jimmy Debe <91767824+jimstir@users.noreply.github.com> Date: Wed, 28 Aug 2024 00:04:53 -0400 Subject: [PATCH 2/3] Update manifest.md --- manifest.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 82 insertions(+), 5 deletions(-) diff --git a/manifest.md b/manifest.md index e63df01..adadd04 100644 --- a/manifest.md +++ b/manifest.md @@ -13,9 +13,9 @@ contributors: This specification describes the parameters used in the manifest for a Codex client application. ## Background -The manifest is the default configuration for a Codex client. -The file contains key-value pairs that are configuirable. -The structured format used is JSON. +The manifest is used to encode datasets with the a Codex client. +The file contains key-value pairs. + ## Manifest Parameters @@ -24,6 +24,7 @@ The structured format used is JSON. "manifest" : { "treeCid" : "string" "datasetSize" : , + "blockSize" : , "codec" : , "hcodec" : , "version" : , @@ -33,7 +34,7 @@ The structured format used is JSON. "originalTreeCid" : , "originalDatasetSize" : "protectedStrategy" : - "verifiable" : , + "verifiable" : "bool" , "verifyRoot" : , "slotRoots" : , "cellSize" : , @@ -44,6 +45,82 @@ The structured format used is JSON. ``` +The structured format used is JSON. + `treeCid` -- +- Root of the merkle root +- Hash based on CIDv1 + +`datasetSize` + +- Total size of all blocks, after data is chunked +- it SHOULD be in bytes + +`blockSize` + +- Size of each contained block + +`codec` + +- Dataset codec + +`hcodec` + +- Multihash codec + +`version` + +- CID version + +`protected` + +- Protected datasets have erasure coded info +- Only if `true` + +`ecK` + +- Number of blocks to encode + +`ecM` + +- Number of resulting parity blocks + +`originalTreeCid` + +- The original root of the dataset being erasure coded + +`originalDatasetSize` + +- The size of the original dataset + +`protectedStrategy` + +- Indexing strategy used to build the slot roots + +`verifiable` + +- Verifiable datasets can be used to generate storage proofs + +`verifyRoot` + +- Root of the top level merkle tree built from slot roots + +`slotRoots` + +- Individual slot root built from the original dataset blocks + +`cellSize` + +- Size of each slot cell + +`verifiableStrategy` + +- Indexing strategy used to build the slot roots + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). + +## References + From c65e7cc19862c8ad71043cca82eafd1b6f8edb74 Mon Sep 17 00:00:00 2001 From: Jimmy Debe <91767824+jimstir@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:23:34 -0400 Subject: [PATCH 3/3] Update manifest.md --- manifest.md | 100 +++++++++++++--------------------------------------- 1 file changed, 25 insertions(+), 75 deletions(-) diff --git a/manifest.md b/manifest.md index adadd04..828c6b0 100644 --- a/manifest.md +++ b/manifest.md @@ -12,12 +12,11 @@ contributors: This specification describes the parameters used in the manifest for a Codex client application. -## Background -The manifest is used to encode datasets with the a Codex client. +## Manifest +The manifest is used to encode datasets with the a Codex client node. The file contains key-value pairs. - -## Manifest Parameters +### Parameters ```json @@ -42,81 +41,29 @@ The file contains key-value pairs. } - ``` The structured format used is JSON. -`treeCid` - -- Root of the merkle root -- Hash based on CIDv1 - -`datasetSize` - -- Total size of all blocks, after data is chunked -- it SHOULD be in bytes - -`blockSize` - -- Size of each contained block - -`codec` - -- Dataset codec - -`hcodec` - -- Multihash codec - -`version` - -- CID version - -`protected` - -- Protected datasets have erasure coded info -- Only if `true` - -`ecK` - -- Number of blocks to encode - -`ecM` - -- Number of resulting parity blocks - -`originalTreeCid` - -- The original root of the dataset being erasure coded - -`originalDatasetSize` - -- The size of the original dataset - -`protectedStrategy` - -- Indexing strategy used to build the slot roots - -`verifiable` - -- Verifiable datasets can be used to generate storage proofs - -`verifyRoot` - -- Root of the top level merkle tree built from slot roots - -`slotRoots` - -- Individual slot root built from the original dataset blocks - -`cellSize` - -- Size of each slot cell - -`verifiableStrategy` - -- Indexing strategy used to build the slot roots +| attribute | type | description | +|-----------|------|-------------| +| `treeCid` | string | A hash based on [CIDv1](https://github.com/multiformats/cid#cidv1). The root of the merkle tree | +| `datasetSize` | bytes | Total size of all blocks, after data is chunked. | +| `blockSize` | bytes | Size of each contained block. | +| `codec` | [MultiCodec](https://github.com/multiformats/multicodec) | A dataset codec. | +| `hcodec` | [MultiCodec](https://github.com/multiformats/multicodec) | A multihash codec. | +| `version` | string | The CID version | +| `protected` | bool | The protected datasets have erasure coded info, If true, `ecK`, `ecM`, `originalTreeCid`, `originalDatasetSize`, and `protectedStrategy` SHOULD be used.| +| `ecK` | int | The number of blocks to encode. | +| `ecM` | int | The number of resulting parity blocks. | +| `originalTreeCid` | string | The original root of the dataset being erasure coded. | +| `originalDatasetSize` | bytes | The size of the original dataset. | +| `protectedStrategy` | enum | An indexing strategy used to build the slot roots. | +| `verifiable` | bool | Verifiable datasets can be used to generate storage proofs. If true, `verifyRoot`, `slotRoots`, `cellSize`, and `verifiableStrategy` SHOULD be used. | +| `verifyRoot` | string | The root of the top level merkle tree built from slot roots. | +| `slotRoots` | array[string] | Individual slot root built from the original dataset blocks. | +| `cellSize` | bytes | The size of each slot cell. | +| `verifiableStrategy` | enum | Indexing strategy used to build the slot roots. | ## Copyright @@ -124,3 +71,6 @@ Copyright and related rights waived via [CC0](https://creativecommons.org/public ## References +- [MultiCodec](https://github.com/multiformats/multicodec) +- [CIDv1](https://github.com/multiformats/cid#cidv1) +