-
Notifications
You must be signed in to change notification settings - Fork 216
Add transport-filecoin-piece-http #383
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@rvagg seems reasonable, although is there a reason this is necessary beyond just the trustless gateway protocol for raw blocks? At the moment it seems like the same thing with a different endpoint. |
True, but we're reflecting existing realities here. Pieces are served exclusively via Perhaps we could work toward a convergence so it doesn't matter? But at that point, |
|
Is /piece retrieval ("protocol rules") specified anywhere? (I cannot readily find anything other than mentions in the I don't understand the byte-range support thing... does /piece retrieval allow byte ranges but then the the data cannot be verified after download even though it was requested by CID ? Is that a usecase? |
|
The "usecase" for the purposes of this PR is to have an entry in the CSV lookup table. That is all. Let us not try to solve everything everywhere all at once. I don't think there is an FRC for /piece endpoint but there should be one. FWIW the protocol for piece retrieval via byte range request has existed in Boost from day one and continutes to exist in Curio. Those two implementations are by far the most popular Filecoin SP software out there. |
|
It seemed reasonable to ask if it is written somewhere what |
632c5e4 to
9fa638d
Compare
aschmahmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the interest of not keeping anyone who is antsy here about how long approval will take I've approved the PR so @rvagg can make any changes and merge it at convenience.
A few things of note:
Here is the FRC
Is that the relevant spec, or is it really a modification to the IPNI metadata table which would itself reference the FRC? My understanding is that nothing other than IPNI metadata uses these codes. Someone (perhaps @masih or @rvagg ) probably should update that metadata doc to describe what the expected the parameters for this code are and then @rvagg could include a link to it and/or FRC-66 in the table.
I suppose we could make sure that dat-scope=block supports standard http byte range requests and then we'd have ~compatibility (albeit with the additional need for a query string)
TLDR: If using the safe piece CIDs then only the path change is required.
It's not dag-scope=block that you'd want since that still a CAR response (it returns the path blocks + the one at the end). It's format=block (or the application/vnd.ipld.raw Accept header), or honestly in the case of Filecoin pieces addressed using the Filecoin Piece multihash the raw codec will end up being used and no format=block is even necessary. i.e. a straight path change from /piece to /ipfs would do the job when using the safe piece CIDs.
|
There's no antsy-ness here. Filecoin frc is the spec. What this pr does is that it specifies a code to identify the transport. It so happens that IPNI is the only user of that identifier today. That code can be used anywhere inline with multicodec philosophy. |
You're talking about v2 I believe. :ack: re |
Intended for IPNI registrations: provider X has piece Y available on
transport-filecoin-piece-http