Description
Together with @olizilla we've identified some UX challenges related to sharing files via IPFS (#34), and one of ideas was to provide an opt-in trust-based way for a group of friends to participate in a "pinning buddy system".
Disclaimer:
This may exist in some shape and form already (see Prior Art below), this issue is just a placeholder to investigate UX around making it work for casual users with minimal friction possible.
Use Case
"How to keep shared content around when you shut down your laptop?"
Things like Filecoin or commercial pinning services are one way to solve pinning, but hobbyist users and developers may not want to go that route.
UX of Pinning Buddy System
Rough idea is to provide a super easy way for group of people to opt-in to a scheme where they pin each others pins without any money/goods being exchanged in the process. Think "group of friends", "small software house" or "members of local hackerspace".
How we can make the processs as simple as possible?
Ideally, it would be one-time opt-in that looks roughly like this:
- generate unique secret/key (pubsub room id?) for the group
- share it between your friends (IM, email)
- everyone adds it to the config of own IPFS node
- from now every pin made by a member of the group will be automatically advertised (eg via pubsub) and all group members will preload/pin it in best-effort
Security Considerations
- It should be explicitly documented as trust-based alternative to things like commercial pinning services. It means, you trust every group member with the knowledge what are your pins.
- Should opt-in have an open or closed characteristic?
- open: new members just add the same key (probably better UX)
- closed: adding new member requires everyone to switch to a new key (better security, as it would enable things like key being a product of PeerIDs of all "whitelisted" members)
Prior art
- https://github.com/ipfs/ipfs-cluster (Collective pinning and composition for IPFS)
- http://mars.i.ipfs.team:9444/ (manual gx package pinning)
- https://github.com/BrendanBenshoof/cachewarmer/ (opt-in cache warming, seems to be dead, but provided "buddy system" feel we aim for)
- https://github.com/ipfs/pinbot-irc (a bot for the ipfs irc channel that pins things)
- https://github.com/tableflip/ipfs-friends