-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
Checklist
- My issue is specific & actionable.
- I am not suggesting a protocol enhancement.
- I have searched on the issue tracker for my issue.
Description
Recently, Cloudflare has open sourced a fork of go-ipfs providing filtering capabilities, grouped under safemode
command. The architecture is described in a dedicated blog.
The system works by filtering certain CID when walking the DAG. This allow node operators to prevent certain CID from being provided, both by the HTTP gateway and to the P2P network.
CIDs to be filtered are stored in a blocklist. By default, this blocklist is in a dedicated mount of the datastore /safemode
.
Action that can be performed by a blocklist are (based on the proposed interface):
block
to add content to the blocklistunblock
to remove itpurge
to remove content from the blockstore. Ideally, this option could be extensible, to purge remote datastore, or HTTP cache for instancesearch
to query the blocklistaudit
to access the log of actions that have been performed against the blocklist
For convenience, ipfs safemode
command provides multiple way to resolve content. From its documentation:
- IPFS address, i.e. /ipfs/<CID>
- IPNS address, i.e. /ipns/<hash_publickey>
- DNSLink address, i.e. /ipns/example.com
- HTTP URL, i.e. https://example.com/ or https://gateway.example.com/ipfs/<CID>
This is a proposal implementation, which satisfies some requirements laid out in ipfs/roadmap#64. It provides a more standardised approach for node operators to filter content they are willing to provide.
The implementation has been developed 3 years ago, and may not suit the current architecture of the go-ipfs project.