Skip to content

Support verifiable CAR responses #32

@olizilla

Description

@olizilla

return a CAR that is verifiable. This means that the CAR will contain all blocks required to verify the root CID and any additional path traversals to the requested content. It should always be possible to verify the root block content against the requested CID, and every block that is traversed to reach the content as specified by the final path.
https://github.com/filecoin-project/lassie/blob/main/docs/CAR.md

So for a request GET /ipfs/<cid1>/a/b/cat.gif we should return the blocks for

  • <cid1>
  • a
  • b
  • all blocks for cat.gif

currently we return "all blocks for cat.gif" which is nice but does not include enough information to verify that the blocks for the cat gif are the ones you would get if you had traversed the dag from yourself. By returning the minimal set of blocks traversed from the root cid in the request path, the caller will have all the bytes they need to verify the path traversal was done correctly.

### Tasks
- [ ] https://github.com/web3-storage/dagula/pull/8
- [ ] https://github.com/web3-storage/gateway-lib/pull/21
- [ ] https://github.com/web3-storage/dagula/pull/17
- [ ] https://github.com/web3-storage/dagula/pull/7
- [x] update freeway
- [x] deploy freeway

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions