5 ms·
There doesn't seem to be an obvious way to remove content (like issues, merge requests or comments) easily from a project or ban contributors from participating
by zaarn 8y ago
There doesn't seem to be an obvious way to remove content (like issues, merge requests or comments) easily from a project or ban contributors from participating, ie, ripe for abuse by 4chan or whoever wants to set the internet on fire today.
- johnhenry 8y agoThere was a project, mango [0], that was very similar to this. In addition to using IPFS for storage, it used ethereum for things like permissions control. Unfortunately it hasn't been updated in a while, but perhaps this will bring some attention to it? [0] - https://github.com/axic/mango https://github.com/axic/mango
- nukeop 8y agoYou know we're living in a dystopian future where the first complaint against an open source project is that it provides too few tools for censorship.
- zaarn 8y agoThere is a line between censorship and a healthy culture in a project, I don't think asking for tools to moderate what people write into issues and being able to remove illegal content (like copyrighted movies or CP), is not censorship, especially because I'm not a government body nor do I have even remotely that power. Giving me these tools empowers me to run the project how I like, not how someone who read the backcover of 1984 likes it (ie with no moderation tools at all).
- deleted 8y ago[deleted]
- StreamBright 8y agoAccess control is not censorship.
- mikekchar 8y agoIf "censorship" is stopping people from spreading certain information, what do we call forcing people to spread certain information that they don't want to? I wish there was a word for that. Generally speaking, censorship is about suppressing something with the intent that nobody can get access to it. Deciding not to forward information is not actually censorship because generally the original speaker can choose other avenues in which to spread their information. I think it's interesting to imagine a situation where someone puts a political poster on their house. They live near a busy street and so the political poster gets a lot of views. Another person thinks this is unfair because they don't own a house (let alone a house near a busy street). They ask the house owner to display their political poster. The owner decides not to because they don't like the poster. Is that censorship? Now imagine that our enterprising poor person decides to canvas the neighbourhood to see if someone else will post their poster. The person with the poster on their house thinks this will impede the success of the ideas on their poster and so canvases the neighbourhood asking others not to accept the poor person's poster. Is this censorship? If so, should we make a rule that the person with the house is not allowed to tell others not to post other posters? Is that censorship? Now imagine that the government made a rule. Only those who own their own house may post posters. You may not ask others to post posters for you because it causes problems in the neighbourhoods. Is that censorship? They aren't trying to suppress any particular message. However, the end result is that poor people have no effective way of posting posters. I understand that there is frustration if people don't cooperate to help you spread the message you want to spread. However, I don't think that in itself is censorship. It is especially frustrating when a group of people collude to deny you a cheap/popular platform to spread your message. I don't think even that is censorship, even though it's kind of a crap thing to do. Even if there are situations that arise that make it impossible for you to spread your message, that is not necessarily censorship, even though it is really, really frustrating. It's only when society actively tries to suppress any avenue for you getting your message out is it called "censorship". TL;DR: Nobody owes you a free lunch, no matter how hungry you may be.
- nukeop 8y agoActually in a modern democracy I am owed a free lunch.
- jkarni 8y agoWhile it's true there's currently no easy way to do that, we've made the machines (the name we use for each instance of an issue, project or patch utility instance) upgradable by the maintainer [0], and each submission is already signed. So if it becomes a big problem, we can write up a little expression that adds banning, rate-limiting, or removes certain content, from the materialized view, and anyone who wants to use it can. That said, the already-accepted content will still be in the logs of the machine, even if it doesn't show up at all in the materialized state. [0] This is based on the eval-redefinition we describe here: https://ipfs.io/ipfs/QmadmGA6mBWZ93Wv4XKuCu9wdPf7Da8pjH3Corzpe9VGZg https://ipfs.io/ipfs/QmadmGA6mBWZ93Wv4XKuCu9wdPf7Da8pjH3Corz...
- zaarn 8y agoThat sounds like it could be an issue if illegal content is accidentally accepted, the owner of the repository would have to continue to share it and users might be at risk of downloading it, even if they don't see it. That plus moderation tools couldn't cut down on people trying to bloat the repository.
- sneak 8y agoI think the same “problem” exists with GitHub, and the same solution exists here: the repo owner/ipns keyholder can rewrite history at will. Redacting information from the authoritative copy is possible.
- djsumdog 8y agoWell with traditional git, you can use tools like BFG and remove files or rewrite history that might have accidentally contained a password or API key (sure you can change them, but it's also best to get rid of them in history). Since this is on top of IPFS, is that still possible, or are there cases where things will last forever?
- perlgeek 8y ago> That said, the already-accepted content will still be in the logs of the machine, even if it doesn't show up at all in the materialized state. Which is still a disaster from a data privacy perspective (think GDPR requirements for deleting PII).
- seany 8y agoThis seems very much like a feature, not a bug.
- zaarn 8y agoImagine someone posts illegal content to the repository. Now you can't remove it. Essentially you'll have to recreate the entire repository and you'll loose the issues, PRs and other stuff.
- sneak 8y agoIllegal according to whom?
- zaarn 8y agoThe country you live in.
- asdkhadsj 8y agoThat's an important point (if true), because an original goal of IPFS was to allow removal of illegal content to comply with (local?) laws. So if complying with that IPFS goal means the whole repo gets shut down, that seems intensely abusable.
- 8y ago
- geoah 8y agoThat seems to be the gift and curse of all decentralized systems. There really isn't a clearly defined red line between freedom of speech and moderation and I don't think there will ever be. Is it even possible to have a protocol or app mandate what is permissible content and what is not? And that is made even worse (imo) when humans come into play, as everyone's opinions and biases also affect the decision.
- zaarn 8y agoIMO the owner of the projects should be given those tools, they can decide whether or not to use them, either freedom of speech or moderation is in their own hands. Given this is decentralized this puts even more power in the owner of a project to decide this than Github so I don't see this as an issue.
- maehwasu 8y agoDecentralized systems can still have owners of property who allow and disallow certain uses. “Human bias” and “censorship” are completely irrelevant here.
- geoah 8y agoYou might be right on this. In my mind one of the key properties of decentralized systems/networks is censorship-resistance, which (again in my mind) means that everyone always has access to the full set of data and not a cut-down version that the "property owner" decided to arbitrarily allow. Decentralized systems do still have benefits even when they can be moderated. I wonder if there are many projects that actually allow that?
- marknadal 8y agoI agree that decentralized systems should make things more open/free and censorship-resistant. However, cryptography can certainly be used to restrict access or add moderation features. For example, here is a demo of a P2P LinkedIn with ACL: https://www.youtube.com/watch?v=ZiELAFqNSLQ https://www.youtube.com/watch?v=ZiELAFqNSLQ Moderation powers scare me, but I do know that notabug.io , d.tube , and the upcoming HackerNoon 2.0 have this type of feature. Except it is called "curation" (technically, content can't really get deleted, but a curated homepage can certainly exclude content). The good news is that the founders of all these apps are working towards user-configurable curation, so you could override who/what/how curation happens. I don't like moderation, but opting into a web-of-trust is, I think, an interesting area to explore. No matter the good I want to come from decentralization, it certainly can be used for bad. However, its abuse should be less than centralized system, so hopefully that means real progress is happening.
- StreamBright 8y agoThis is a joke. I think people just use the word decentralised as a blunt and nothing else matters. No access control, no problem it is decentralised. No content filtering, no problem it is decentralised. And so on. Decentralised is the new religion.
- jkarni 8y agoThere already is access control. Only admins can accept patches, for instance (though a bug we've just made a fix for [0] meant if someone else tried doing it the entire patch system for that project would break). Programmatic content-filtering is really the bread-and-butter of Radicle. Ad-hoc content-filtering is a bit harder, but as I mentioned elsewhere still possible. [0] https://github.com/radicle-dev/radicle/pull/552 https://github.com/radicle-dev/radicle/pull/552
- StreamBright 8y agoWhere do you store who is ad admin?
- jkarni 8y agoWe store their public key on the machine. They can add (or remove) admins. Every input is signed, and (when relevant) the author is checked for authorization.
- StreamBright 8y agoWhat if I need more fine grained access control?
- jkarni 8y agoRadicle is a full-fledge (fledling of a) programming language, so you can really do as you wish with access control. Here's the module for authorization [0], and in this module [1] you can see an example of it being used. [0] https://github.com/radicle-dev/radicle/blob/master/rad/prelude/auth.rad https://github.com/radicle-dev/radicle/blob/master/rad/prelu... [1] https://github.com/radicle-dev/radicle/blob/master/rad/monadic/issue-remote.rad https://github.com/radicle-dev/radicle/blob/master/rad/monad...
- Yuval_Halevi 8y agoThat's the pros and cons of decentralization. It gives you a lot of freedom, but sometimes too much freedom is a gate for many issues like manipulation, pornography, spamming, low-quality content etc...
- zaarn 8y agoThere is no reason why a decentralized tool cannot have moderation tools, especially one like this where there is a clear owner of a repository.
- dividuum 8y agoI don't think that's a problem. IPFS is content addressed so each added commit/issue/whatever added to the chain of a repositories state changes the head address. IPNS is then used to update a pointer to that head so you can address the whole repository with a fixed name. Only the owner of the repository can do that. Here's a bit more about how all that works: http://www.radicle.xyz/docs/index.html#radicle-p2p-architecture http://www.radicle.xyz/docs/index.html#radicle-p2p-architect...
- zaarn 8y agoI've read the docs but there is no obvious way you can actually remove an issue or PR from the repository once it's there, atleast not with the tools provided out of the box.
- dividuum 8y agoYeah. I guess you're right in that case. Removing something once it has been approved previously sounds impossible indeed. I guess approval is a final decision. The only option possible (I guess) would be to hide content. But it would still need to be persisted to not break the chain.