casey/intermodal

Initial Manifest Support Tracking Issue

casey opened this issue · 0 comments

casey commented

After much thought about the manifest format, including starting to write my own format, I'm going to go with the following for the initial implementation:

  • Manifest data will be in imdl directory in root. This is unlikely to conflict with anything, and gives people a term to search for.

  • Initial format will be Bencode. Bencode + Serde support is already integrated into the project. Although it's slow, there is no perfect choice here. At a later date, it's possible that there will be a transition in manifest formats.

  • Hashes will be Blake3 hash of each file.t

  • Structure will likely be a list of hashes, and then a directory structure where the leaf data is the index of the hash of that file.

  • Initial functionality will be adding a manifest to a release, and verifying hashes in that manifest against the files on disk.

  • Also important will be calculating a stable hash of the root manifest, that commits to all data, so the hash of the manifest can be communicated and used for verification.