ipfs-inactive / package-managers

[ARCHIVED] 📦 IPFS Package Managers Task Force
MIT License
97 stars 11 forks source link

Asks from other WGs #23

Open achingbrain opened 5 years ago

achingbrain commented 5 years ago

Being a list of features/requirements from different groups within Protocol Labs required to support the Package Managers usecase.

What is the Package Managers use case?

Our goal is to encourage package manager maintainers to adopt IPFS as a first-class transport mechanism alongside http, and to produce tools and apps that expose interested users to our tech stack and make happens within the network more transparent.

This will have the effect of massively driving adoption of IPFS and greatly increasing it's visbility to developers who are our early adopters.

Further discussion on this can be found in The Package Managers Use Case

Requirements

Items in this section should represent how we'd use IPFS and supporting technologies to solve problems presented in Problems with Package Managers

Speed

For sample datasets & observed performance, see the Experiments @andrew has been conducting.

Documentation

Support

Data longevity

UI support

Features

andrew commented 5 years ago

Feature:

jchris commented 5 years ago

I started searching about "nominate PeerIDs as 'trusted', replicate their CIDs & IPNS names?" and found related discussion. Will this also enable file pinning services to pin names? That's useful for web dev, as it enables using ipns with dnslink in a serverless way. I ran into issues like those described at the end of https://www.ctrl.blog/entry/dnslink-ipns-top1m-websites and discussed in https://github.com/ipfs/go-ipfs/issues/1467 and I'm guessing it's a common hurdle.

momack2 commented 5 years ago

@jchris - are you thinking of something like delegated IPNS record republishing (https://github.com/ipfs/go-ipfs/issues/1958)? AFAIK from https://github.com/ipfs/go-ipfs/issues/1467 you can already pin names...

jchris commented 5 years ago

Those are similar issues, I don't think the use case I'm thinking of works seamlessly yet:

  1. You ask a pinning service to host a directory on IPFS.
  2. You create a ipns record for that directory
  3. You publish that ipns record via dnslink
  4. You close your laptop and eventually the ipns record expires, rendering your content inaccessible.

These steps are advocated in posts like https://medium.com/textileio/the-definitive-guide-to-publishing-content-on-ipfs-ipns-dfe751f1e8d0 so I bet a lot of first time users have dead ipns dnslinks floating around (the quick workaround being to put ipfs names in your dnslink).

Fixing 4 seems like it would take https://github.com/ipfs/go-ipfs/issues/1958 but also something to handle republishing after the record expires. Delegated authority could allow a pinning service to do this. I think this same mechanism will be useful for package authors to point to latest releases, in a way that package hosts can serve robustly.