-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Add support for remote Pinning Services #7559
Copy link
Copy link
Closed
Labels
P1High: Likely tackled by core team if no one steps upHigh: Likely tackled by core team if no one steps upeffort/weeksEstimated to take multiple weeksEstimated to take multiple weeksepickind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing featurestatus/readyReady to be workedReady to be workedtopic/apiTopic apiTopic api
Milestone
Metadata
Metadata
Assignees
Labels
P1High: Likely tackled by core team if no one steps upHigh: Likely tackled by core team if no one steps upeffort/weeksEstimated to take multiple weeksEstimated to take multiple weeksepickind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing featurestatus/readyReady to be workedReady to be workedtopic/apiTopic apiTopic api
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