IPIP-0383: Compact Denylist Format

Editor
Hector Sanjuan (Protocol Labs) GitHub
Related Issues
ipfs/specs/issues/298
ipfs/specs/pull/299
ipfs/specs/pull/340
History
Commit History
Feedback
GitHub ipfs/specs (pull requests, new issue, open issues)

1. Summary

This IPIP introduces a line-based denylist format for content blocking on IPFS focused on simplicity, scalability and ease-of-use.

A reference Go implementation of a denylist parser and Blocker component for the Kubo (go-ipfs) stack exists at https://github.com/ipfs-shipyard/nopfs.

2. Motivation

IPFS implementations should support content moderation, particularly when it comes to deployments of publicly-accessible infrastructure like gateways.

The first step in a larger strategy to enable decentralized content moderation in IPFS setups is to agree in a denylist format that different implementations can rely on and share.

3. Detailed design

See compact-denylist-format.

4. Design rationale

This proposal introduces a new denylist format which aims to fulfil the following aspects, which are a must for such a system:

The proposed design is part of a holistic approach to content-moderation for IPFS for which we have the following detailed wishlist of items ultimately related to the denylist format:

4.1 User benefit

Users and developers will benefit from a list format that is easy to work with because:

4.2 Compatibility

The old JSON-based Protocol Labs denylist format https://badbits.dwebops.pub/denylist.json can be easily converted into the proposed compact format. This is shown at https://badbits.dwebops.pub/badbits.deny.

4.3 Alternatives

This proposal is a follow up to a previous proposal, which has several shortcomings that make it not very practical when working at scale. Both list formats can co-exist though but ultimately it will be a matter of implementation support, and it would be better to settle on one thing.

It is also a followup on the "badbits" denylist format, which has similar issues and is not flexible enough.

1
  1. No bibliographic reference for key "compact-denylist-format".