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

feat: IPFS based p2p image distribution #490

Merged
merged 5 commits into from
Nov 26, 2023
Merged

Conversation

jay-dee7
Copy link
Member

Motivation & Context:

IPFS is a great P2P content platform. We don't need any centralised servers to work with data. This PR adds support for using IPFS as the underlying storage for OpenRegistry. This opens the door for so many opportunities for how the end users use OpenRegistry, some of them can be:

  1. Run OpenRegistry in your own network, backend by private (Offline or restricted) IPFS cluster that you control.
  2. Faster & secure image distribution.
  3. Use local or remote IPFS nodes to perform data operations

Description:

This PR implements the dfs.DFS interface for the IPFS RPC API. Since the DFS interface defines a Multipart upload sequence, we upload the layer parts in memory & upload the final object at the end. This isn't quite multipart but it works. This does of course leads to higher memory consumption since layers are cached in-memory before they're uploaded.

Types of Changes:

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

PR Checklist:

  • My code follows the code style of this project
  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I've read the CONTRIBUTION guide
  • I have signed-off my commits with git commit -s

@jay-dee7 jay-dee7 self-assigned this Nov 26, 2023
@jay-dee7 jay-dee7 requested a review from guacamole as a code owner November 26, 2023 09:53
@jay-dee7 jay-dee7 added this to the IPFS Milestone 2 milestone Nov 26, 2023
@jay-dee7 jay-dee7 added enhancement New feature or request P1 P1 label is used for this that we see of highest priority. Critical bugs, security issues, etc labels Nov 26, 2023
@jay-dee7 jay-dee7 force-pushed the feat/p2p-image-distribution branch from 6b2380a to 3d41015 Compare November 26, 2023 09:55
@jay-dee7 jay-dee7 force-pushed the feat/p2p-image-distribution branch from 3d41015 to 6918b9a Compare November 26, 2023 10:35
@jay-dee7 jay-dee7 linked an issue Nov 26, 2023 that may be closed by this pull request
Copy link
Member

@guacamole guacamole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🥇

@guacamole guacamole merged commit 01e33ed into main Nov 26, 2023
8 checks passed
@guacamole guacamole deleted the feat/p2p-image-distribution branch November 26, 2023 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request P1 P1 label is used for this that we see of highest priority. Critical bugs, security issues, etc
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

P2P Container Image Distribution
2 participants