Skip to content

Allow / Deny Bitswap replication based on peerID and CID #8763

@laurentsenta

Description

@laurentsenta

Checklist

  • My issue is specific & actionable.
  • I am not suggesting a protocol enhancement.
  • I have searched on the issue tracker for my issue.

Background

Right now, the only way to store personal/private data on the network is to:

  • Use a private network (with swarm keys for example),
  • Use semantic security (by encrypting the data).

For some use cases, this is too restrictive:
"I wouldn't store my passwords or my medical records on the IPFS network, even encrypted."

For these use cases, decentralization might still be necessary, but they would require a permissioned approach:
ideally, we'd let a user define who can replicate their data / what can be replicated from their node.

There are a lot of discussions around the question of authorizations (see below), @kylehuntsman and I have been working on the smallest step forward we could find: let a node accept/reject a bitswap request based on peerID and CID.

(one might find a certain resemblance with libp2p's ConnectionGater.)

Stories / Plan

  1. As a developer, I can define a filter predicate (policy). This lets me filter requests based on the requester's ID and the content requested.
    • Add an optional configuration to go-bitswap that lets a user define this peer-block filter,
    • Add ipfs-related plumbing to pass this configuration down to the bitswap instance.
  2. As a regular user, I can configure a default policy with a few allow, deny commands, similar to the IPFS filter proposed for gateway operators.
    • TBD

Current State

Related Issues and discussions

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions