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.
Related/References
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.
Pinning.RemoteServicesin the config feat: added support for pinning service configs go-ipfs-config#104Pinning.RemoteServices[].Api.Keymust be write only.pinAPI to accept a list of services to pin remotely Add support for remote Pinning Services #7559providermultiaddrs specified by the Pinning Service to accelerate transfer times.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.
Pinning.RemoteServices[].Policyin the config.manual(default) andall-in-mfspolicies.manualhas the same behavior mentioned in phase 1.all-in-mfswill watch for changes in MFS and update the pins for all Services with the policyRelated/References