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

Add support for remote Pinning Services #7559

Closed
6 tasks done
jacobheun opened this issue Jul 23, 2020 · 3 comments · Fixed by #8097
Closed
6 tasks done

Add support for remote Pinning Services #7559

jacobheun opened this issue Jul 23, 2020 · 3 comments · Fixed by #8097
Labels
effort/weeks Estimated to take multiple weeks epic kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up status/ready Ready to be worked topic/api Topic api
Milestone

Comments

@jacobheun
Copy link
Contributor

jacobheun commented Jul 23, 2020

Summary

The goal of this is to add a Pinning Services client in go-ipfs that can integration with Pinning Services that conform to the Pinning Services Spec. Users will be able to add Pinning Services to their IPFS configuration and then leverage those services while pinning.

Initial Use Case

The desired use case being fulfilled here is to enable IPFS Desktop / WebUI users to configure their local IPFS node to remotely manage pins with pinning services on their behalf.

Implementation Details

Pinning Services Spec: https://github.com/ipfs/pinning-services-api-spec
Spec Version: v1.0.0 (to be tagged after go-ipfs changes ship in 0.8.0)

Stages

The implementation may be implemented in a phased approach. This will allow for an iterative rollout of support.

1. Remote Pinning Support

This phase will implement the client and add support for manual pinning. This will enable users to specify the remote services for a single cid.

2. MFS Pinning Policy

This phase adds support for pinning policies and introduces the "all in MFS" policy. Policies will be configurable per Pinning Service to allow for more control.

  • Add support for watching changes to MFS and updating the pin for MFS root on the configured remote services add remote pinning policy for mfs #7798
    • When the MFS root changes, the client should make a modify pin request to the Pinning Service. Retention policies are dependent on the service and are not yet supported in the api
  • Add support for Pinning.RemoteServices[].Policy in the config.
  • Add the implicit manual(default) and all-in-mfs policies.
    • manual has the same behavior mentioned in phase 1.
    • all-in-mfs will watch for changes in MFS and update the pins for all Services with the policy

Related/References

@jacobheun jacobheun added the kind/enhancement A net-new feature or improvement to an existing feature label Jul 23, 2020
@jacobheun jacobheun added this to the go-ipfs 0.7 milestone Jul 23, 2020
@jacobheun jacobheun added epic effort/weeks Estimated to take multiple weeks P0 Critical: Tackled by core team ASAP status/ready Ready to be worked topic/api Topic api labels Jul 23, 2020
@jacobheun jacobheun mentioned this issue Jul 23, 2020
72 tasks
@hsn10
Copy link

hsn10 commented Jul 27, 2020

That is interesting idea.

It would be good to have user editable, at any time, comment for each pinning entry so you can see what exactly do you have remotely pinned and check if you still need it. I discovered while using 3rd party pinning services that this feature is critical for efficient organising of pins.

On other way, I discovered that pinning expiration (like 2 months) is not often needed because you can't in most times predict how long you will need to store data.

@jacobheun
Copy link
Contributor Author

It would be good to have user editable, at any time, comment for each pinning entry so you can see what exactly do you have remotely pinned and check if you still need it

The basic pin commands will be supported, so you will be able to perform crud operations on the pins, including list pagination. You can see the spec linked in the description for the capabilities.

@lidel
Copy link
Member

lidel commented May 5, 2021

🥳

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort/weeks Estimated to take multiple weeks epic kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up status/ready Ready to be worked topic/api Topic api
Projects
No open projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants