Skip to content
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

research: polka storage fetching #570

Open
jmg-duarte opened this issue Nov 14, 2024 · 0 comments
Open

research: polka storage fetching #570

jmg-duarte opened this issue Nov 14, 2024 · 0 comments
Assignees
Labels
Milestone

Comments

@jmg-duarte
Copy link
Collaborator

jmg-duarte commented Nov 14, 2024

Fetching files from the storage provider isn’t trivial because we need to unseal sectors. To make this efficient the original implementation leverages the IPLD graph — https://spec.filecoin.io/#section-systems.filecoin_nodes.repository.ipldstore

Questions that need to be answered:

  • How does retrieval work in FC?
    • At a monetary level — e.g. should clients need to pay?
    • At the software level — e.g. how can we retrieve data from sealed sectors?
    • Do we need extra programs for the client?

The original research document discusses caching, but I don't think this is something we should be worrying about right now.

One reference is Lassie:


Implementation Suggestions

For the IPLD/Blockstore, we can review:

As for the fetching protocol, Filecoin uses Graphsync given it integrates with the IPLD graph. We may be able to leverage the following libraries


Retrieval Markets

  • While we can implement free retrievals and call it a day, there’s mention of markets in the original report so we need to have something ready. I believe the simpler way is to have the user pay the storage provider to retrieve the file and this payment happens as the file is sent over.
  • The SP can create challenges that the user posts on chain and for the retrieval to proceed the SP must observe the proofs. There’s no incentive for the SP to retrieve their own files since the client is the one paying for it. This approach has a big downside which is — it introduces a BUNCH of overhead, so the blocks being transferred need to be worth it.

Videos on the topic:

@jmg-duarte jmg-duarte added this to the Phase 3 milestone Nov 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants