Skip to content
This repository has been archived by the owner. It is now read-only.

Permanent archive URLs via content addressable storage #1760

Open
tysonzero opened this issue Mar 21, 2020 · 0 comments
Open

Permanent archive URLs via content addressable storage #1760

tysonzero opened this issue Mar 21, 2020 · 0 comments

Comments

@tysonzero
Copy link

tysonzero commented Mar 21, 2020

Currently archive URLs look like the following:

https://github.com/<user>/<repo>/archive/<commit>.zip

Given that I have a commit hash included in this URL, it is fairly clear I want this to be a permanent reference to a single unchanging piece of content.

Unfortunately the link can break in 4 different ways:

  1. The commit gets deleted

  2. The repo gets deleted or renamed

  3. The user gets deleted or renamed

  4. GitHub goes down

The first 3 of these issues are the ones I am most concerned about in practice. So I end up either having to just hope for the best, or fork a repo I have no intention of changing and keep it around until I stop using the code at that commit.

The 4th issue is one I am less concerned about in practice for most code. However for code that is more critical it does mean extra effort having to back it up on other sources and keeping track of these backup URLs alongside the regular URLs.

The solution to the first 3 is to have a content addressable storage endpoint for this content combined with a pinning mechanism:

The URL would look something like:

https://cas.github.com/<multihash>.zip

The data would be available as long as at least one repo contains it, or one user has it pinned. Ideally it would use multihash for future proofing and cross compatibility.

The solution to the fourth issue would be to then also upload this data to IPFS. Users that were particularly concerned about losing data could then pin it on IPFS on their own machines.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant