Skip to content

Add support for remote Pinning Services #7559

Closed
@jacobheun

Description

@jacobheun

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: Likely tackled by core team if no one steps upeffort/weeksEstimated to take multiple weeksepickind/enhancementA net-new feature or improvement to an existing featurestatus/readyReady to be workedtopic/apiTopic api

    Type

    No type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions