Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions