-
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
Support Retrieval By Any CID, Not Just Root #166
Conversation
Any security-related implications worth considering here? I'm thinking mainly of DoS style attacks where I make deals with you to store my CAR files where the blocks are small enough to just make unique CIDs, so your metadata storage takes up nearly as much space as the data itself. Would that be a reasonable attack scenario against a miner (what are the incentives for this?) and how would miners react against such attacks--would it mean that they would (could?) turn off indexing and we'd end up with fewer indexing miners for retrieval? |
@rvagg this PR is as much technical proof-of-concept as working system to be frank. It's something neither implementation (lotus or gfc) will likely turn on by default. There are actually many many product features to work out before it becomes widespread and something we make easy to enable. For example, how do I know as a client which miners support indexing? Especially if I want to make a deal with one that does. How do I know my miner is actually gonna build the index (I don't). Part of the system design is to intentionally separate storage and retrieval markets, so we need to figure out how this index is created and maintained, and by whom. Anyway, this is all to say, we needed to show it could be done, but making the feature usable at a product level is still a separate chunk of work. (in fairness, this is not spelled out in the PR description, and we've only been reminded of this as we began to socialize this new feature outside this team). Anyway though, rather than try to get it all right, we'd like to just implement the feature as is as a base for ongoing discussions. |
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.
Cool! One question: if a Provider turns on universal retrieval at some point in the future, do we just error out if we don't have the metadata for their retrieval?
@hannahhoward sorry, not intending to indicate I have a blocking objection, just interested in the general discussion and 👍 to the path forward of just getting something implemented as part of the path forward. |
add functions to hook into car writing and output block information
Provide an option to record locations of all CIDs in a piece, so that we can support retrieval not only of root cid but all cids inside of a piece Also cleanup file store maintainence so temporary files are always deleted Also build better filestore and piecestore test infrastructure
2e01f97
to
1d267a4
Compare
@rvagg no it's totally valid, we've realized during discussions that there are a lot of product questions surrounding this feature, and that we need to escalate those concerns to the wider team :) |
Goals
Provide the option for storage providers to maintain references to all CIDs in a payload and their corresponding sectors, so that the provider can serve retrievals for any CID in the payload, not just root.
Implementation
For Discussion
fixes #61