Skip to content

Boxo gateway should support IPIP-402 parameters #283

@hannahhoward

Description

@hannahhoward

What

Feature request. Boxo's gateway module should be updated to support the parameters and behavior described in ipfs/specs#402.

Specifically, for CAR requests, the gateway should:

  • return intermediate blocks for the path when the request is for a cid+path
  • support the car-scope parameter (including block, file, all)
  • support the bytes parameter (lower priority -- not needed for the use case below)

Why

  1. Lassie would like to retrieve from Boost over HTTP. Boost supplies an HTTP gateway by incorporating Boxo's gateway module. For Lassie to retrieve from Boost trustlessly, and serve all of the neccesary requests, the gateway must support the changes in IPIP-402, or at least everything except the bytes parameter. While we can certainly redirect to a shim for CAR requests, it seems like that would be very temporary solution and it would be better to just do it in Boxo.
  2. CAR-based improvements to bifrost-gateway will be helped having a stable implementation to make calls against so can iterate against. Testing directly against not-yet-verified-if-spec-compliant Saturn adds in variables.
  3. Implementations of IPIP-402 (e.g., Boxo, Kubo, bifrost-gateway, Lassie, Boost) want/need conformance tests. Given EngRes IP Stewards are driving the conformance tests, it's good to have a place they can quickly iterate on for validating the conformance tests.
  4. Merging IPIP-402: Partial CAR Support on Trustless Gateways specs#402 requires having an accompanying client/server implementation to validate the work. Boxo is a natural place to do this work.

Metadata

Metadata

Assignees

Labels

P1High: Likely tackled by core team if no one steps updif/expertExtensive knowledge (implications, ramifications) requiredeffort/daysEstimated to take multiple days, but less than a weektopic/gatewayIssues related to HTTP Gateway

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions