-
Notifications
You must be signed in to change notification settings - Fork 59
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
feat: handle retrieval queries for unindexed identity payload CIDs #747
Conversation
518f663
to
6154030
Compare
I'll need to restore that if we proceed with this. |
6154030
to
ee63003
Compare
New commits added to make this work properly, reasonably and efficiently:
Some trade-offs that I judged worth it:
Aside: Why, if we have selected a piece to make a deal on, does the dynamic-ask operate over all deals that contain the pieces that have the payload? Why aren't we just doing dynamic-ask for the one piece? |
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.
Given it's our main target use case, we should add a test for a unixfs/dag-PB identity CD.
alternativelty, run the integration test change in Boost with this PR to verify. |
73dba21
to
f1cbd37
Compare
Updated to:
Also verified this works with filecoin-project/boost#715 and it does, so 🥳 |
btw this branch is based off |
1e9837d
to
f8755fa
Compare
There are valid cases where a CAR may have an identity CID as its root that is not represented as a 'block' within the CAR body and therefore isn't indexed by the dagstore. In this case, we inspect the identity CID content and treat the query as a query for the intersection of all of the links within the block. Ref: filecoin-project/boost#715
1. to support identity PayloadCID without having to duplicate decode & lookup logic 2. because it's not cheap, especially for identity PayloadCIDs with lots of links The tradeoff is that in some cases we end up calling the PieceStore more than we otherwise would.
* Byte limit (2048) * Link limit (32)
f8755fa
to
e37d6f4
Compare
rebased this to master since lotus has caught up already, we just need to get boost done too |
* test(itests): demonstrate failure to retrieve * fix: cleanup test & handle identity roots * chore: update go-fil-markets with identity CID fix Ref: filecoin-project/go-fil-markets#747 * doc: make it clear InlineBuilder isn't recommended i.e. don't copypasta this for your filecoin deal prep Co-authored-by: Rod Vagg <rod@vagg.org>
There are valid cases where a CAR may have an identity CID as its root that is
not represented as a 'block' within the CAR body and therefore isn't indexed
by the dagstore. In this case, we inspect the identity CID content and treat
the query as a query for the intersection of all of the links within the block.
Ref: filecoin-project/boost#715