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

As NH, we need a decent but simple BlobStore that can handle data of arbitrary size #207

Open
adaburrows opened this issue Jun 14, 2024 · 0 comments
Assignees

Comments

@adaburrows
Copy link
Collaborator

adaburrows commented Jun 14, 2024

We need this to help get around problems posed by trying to store large blobs in HC directly. For example, we can't use the time tracking app because it's too big and can't be stored on the source chain. I imagine that many capabilities that will get built will need to use external libs and their size will only increase as the platform adds more users. However, we will also be using this for storing user content and the resource schemas and resources themselves.

The basic criteria are:

  • Has a client that can break apart large files/blobs into microblobs and store those microblobs indexed in HC.
  • Should be able to store blobs both locally in the source chain and in the DHT.
  • Keeps track of what blobs have been stored, including MIME type, optional filename, and optional description.
  • Keeps track of the microblobs that are stored for each larger blob.
  • Ensures ordering of the microblobs.
  • Supports fetching a small number of microblobs asynchronously and reordering them into correct order on the client side (this is for streaming larger files).
  • Optionally: able to keep track of which peers have which file locally (like Napster or BitTorrent), and each peer should have an interface for bridged calls to stream parts of files. Then high bandwidth video (like meeting recording) could be streamed from multiple active peers at the same time lessening the load required of each peer. That way when there are a certain number of peers, video can be streamed.
  • Weird thought: We already have the signaling server that is necessary to use HC's WebRTC backend, why can't we just stream files directly to other clients based on that? Is it because of security restrictions or because we need certain workarounds that libp2p implemented? Anyway, if you have time, maybe investigate using the WebRTC signalling server for things like that.

Are there other implementations out there? Yes. Let's have a look at them:

@adaburrows adaburrows converted this from a draft issue Jun 14, 2024
@adaburrows adaburrows self-assigned this Jun 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

No branches or pull requests

1 participant