Skip to content

Commit ffa81ee

Browse files
committed
chore: fix markdown identation
1 parent 66545ff commit ffa81ee

File tree

1 file changed

+34
-36
lines changed

1 file changed

+34
-36
lines changed

src/ipips/ipip-0383.md

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ The first step in a larger strategy to enable decentralized content moderation
3333
in IPFS setups is to agree in a denylist format that different implementations
3434
can rely on and share.
3535

36-
3736
## Detailed design
3837

3938
See :cite[compact-denylist-format].
@@ -57,46 +56,46 @@ following aspects, which are a must for such a system:
5756
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:
5857

5958
- Regarding the type of blocking:
60-
- Ability to block content from being retrieved, stored or served by multihash
61-
- Ability to block content that is referenced with an IPFS-path from a blocked multihash or traversing a blocked multihash.
62-
- Ability to block by regexp-matching an IPFS path
63-
- Ability to block based on content-type (i.e. only store/serve plain-text,and pictures)
64-
- Ability to block based on CID codec (only allow Codec X)
65-
- Ability to block based on multihash function (”no identity multihashes”)
66-
- Ability to block IPNS names
59+
- Ability to block content from being retrieved, stored or served by multihash
60+
- Ability to block content that is referenced with an IPFS-path from a blocked multihash or traversing a blocked multihash.
61+
- Ability to block by regexp-matching an IPFS path
62+
- Ability to block based on content-type (i.e. only store/serve plain-text,and pictures)
63+
- Ability to block based on CID codec (only allow Codec X)
64+
- Ability to block based on multihash function (”no identity multihashes”)
65+
- Ability to block IPNS names
6766

6867
- Regarding the lists:
69-
- Compact format, compression friendly
70-
- Line-based so that updates can be watched
71-
- Lists support CIDs
72-
- Lists support CIDs+path (explicit)
73-
- Lists support CIDs+path (implicit - everything referenced from CID)
74-
- Lists support double-hashed multi-hashes
75-
- Lists support double-hashed cid+path (current badbits format)
76-
- Lists can be edited by hand on a text editor
77-
- Lists are ipfs-replication-friendly (adding a new entry does not require downloading more than 1 IPFS block, to sync the list).
78-
- Lists support comments
79-
- Lists support gateway http error hints (i.e. type of block)
80-
- `echo "/ipfs/cid" >> ~/.config/ipfs/denylists/custom` should work
81-
- Lists have a header section with information about the list.
68+
- Compact format, compression friendly
69+
- Line-based so that updates can be watched
70+
- Lists support CIDs
71+
- Lists support CIDs+path (explicit)
72+
- Lists support CIDs+path (implicit - everything referenced from CID)
73+
- Lists support double-hashed multi-hashes
74+
- Lists support double-hashed cid+path (current badbits format)
75+
- Lists can be edited by hand on a text editor
76+
- Lists are ipfs-replication-friendly (adding a new entry does not require downloading more than 1 IPFS block, to sync the list).
77+
- Lists support comments
78+
- Lists support gateway http error hints (i.e. type of block)
79+
- `echo "/ipfs/cid" >> ~/.config/ipfs/denylists/custom` should work
80+
- Lists have a header section with information about the list.
8281

8382
- Regarding the implementation:
84-
- Multiple denylists should be supported
85-
- Hot-reloading of list (no restart of IPFS required)
86-
- List removal does not require restart
87-
- Minimal introduction of latency
88-
- Minimal memory footprint (i.e. only read minimum amount of data into memory)
89-
- Clean denylist module entrypoints (easy integration in current ipfs stack layers)
90-
- Portable architecture (to other IPFS implementations). i.e. good interfaces to switch from an embedded implementation to something that could run separately, or embedded in other languages (i.e. even servicing multiple ipfs daemons).
91-
- Text-based API. `ipfs deny <cid>` and the like are nice-to-have but not a must to work with denylists.
92-
- Security in mind: do not enable amplification attacks through lists (i.e. someone requesting a recursively blocked CID repeteadly over the gateway endpoint causes traversal of the whole CID-DAG.
83+
- Multiple denylists should be supported
84+
- Hot-reloading of list (no restart of IPFS required)
85+
- List removal does not require restart
86+
- Minimal introduction of latency
87+
- Minimal memory footprint (i.e. only read minimum amount of data into memory)
88+
- Clean denylist module entrypoints (easy integration in current ipfs stack layers)
89+
- Portable architecture (to other IPFS implementations). i.e. good interfaces to switch from an embedded implementation to something that could run separately, or embedded in other languages (i.e. even servicing multiple ipfs daemons).
90+
- Text-based API. `ipfs deny <cid>` and the like are nice-to-have but not a must to work with denylists.
91+
- Security in mind: do not enable amplification attacks through lists (i.e. someone requesting a recursively blocked CID repeteadly over the gateway endpoint causes traversal of the whole CID-DAG.
9392

9493
- Regarding list distribution:
95-
- Ability to subscribe to multiple lists, and fetch any updates as they happen
96-
- Ability to publish own lists so that others can subscribe to them
97-
- List-subscription configuration or file details remote lists that the user is subscribed to. Editable by hand.
98-
- Ability to subscribe to list subscriptions.
99-
- List subscriptions can carry context (i.e. publisher, email, type of blocking.
94+
- Ability to subscribe to multiple lists, and fetch any updates as they happen
95+
- Ability to publish own lists so that others can subscribe to them
96+
- List-subscription configuration or file details remote lists that the user is subscribed to. Editable by hand.
97+
- Ability to subscribe to list subscriptions.
98+
- List subscriptions can carry context (i.e. publisher, email, type of blocking.
10099

101100
### User benefit
102101

@@ -113,7 +112,6 @@ The old JSON-based Protocol Labs denylist format
113112
[https://badbits.dwebops.pub/denylist.json](https://web.archive.org/web/20230610082307/https://badbits.dwebops.pub/denylist.json) can be easily converted into the
114113
proposed compact format. This is shown at <https://badbits.dwebops.pub/badbits.deny>.
115114

116-
117115
### Alternatives
118116

119117
This proposal is a follow up to a [previous proposal](https://github.com/ipfs/specs/pull/340), 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.

0 commit comments

Comments
 (0)