IPIP-0383: Compact Denylist Format

Hector Sanjuan (Protocol Labs) GitHub
Related Issues
Commit History
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.

A. References

Compact Denylist Format. Hector Sanjuan; Marcin Rataj. 2023-10-25. URL: https://specs.ipfs.tech/compact-denylist-format/