Feat: Articulate IPFS Pinning Service Compliance
- Dominant language
- TypeScript
- Stars
- 51
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
# Articulate Pinning Service Compliance
https://github.com/dapphub/dpack/blob/830ce46cc2cf6cc65888b6c9625e86d8cc9859d4/src/ipfs-util.ts#L7
Explicitly supporting pinning services that conform to the new [pinning registry and compliance specification](https://ipfs-shipyard.github.io/pinning-service-compliance/) will ensure that pinned content can be migrated between pinning providers.
This is important because pinning services conforming to this spec ensure that:
- When a pin is created, the service responds with _unique_ `requestid` that can be later used for pin removal. When the same `cid` is pinned again, a different `requestid` is returned to differentiate between those pin requests.[^1]
- Service implementation should use **UUID**, `hash(accessToken,Pin,PinStatus.created)`, or any other opaque identifier that provides equally strong protection against race conditions.[^1]
[^1]: [see https://ipfs.github.io/pinning-services-api-spec/](https://ipfs.github.io/pinning-services-api-spec/)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with src/ipfs-util.ts at line 7, then read the linked pinning registry and pinning service API specifications. Trace how pin creation and removal are currently handled, and verify that support distinguishes repeated pins of the same CID through unique request IDs suitable for later removal and migration between compliant providers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100