This repository was archived by the owner on Feb 8, 2023. It is now read-only.
This repository was archived by the owner on Feb 8, 2023. It is now read-only.
Implement Allow Lists and Block Lists #284
Open
Description
Also known as whitelists, blacklists, blocklists, deny lists, etc.
For many reasons, it's important for people operating IPFS nodes to have the option of specifying which content they will, or won't, provide to the network. It's been requested and discussed many times since the inception of IPFS. This basic feature brings up a whole domain of important opportunities and risks, but the requirements for an initial implementation are relatively simple.
Basic notes:
- When functioning as a gateway, nodes need to be able to specify which content they refuse to resolve (block list). They should also have the option of only resolving a specific list of hashes (allow list)
- When functioning as a regular ipfs node (not a gateway), nodes need to be able to specify which hashes they won't hold in their hash tables (ie. refuse to tell people where to get the content).
- Related: it should be easy for a node to purge a list of hashes (unpin and garbage collect), to cover cases where they might have accidentally cached malware, etc. and want to clean it out based on a list of harmful content that the node's operator has obtained.
Related Issues
- gateway limitations kubo#1070 gateway limitations
- Allow and deny lists for CIDs js-ipfs#2152
Related threads on discuss.ipfs.io: