HelloZeroNet / ZeroNet

ZeroNet - Decentralized websites using Bitcoin crypto and BitTorrent network
https://zeronet.io
Other
18.3k stars 2.26k forks source link

Should we rename all black/white lists to deny/allow lists? #2608

Closed wandrien closed 4 years ago

wandrien commented 4 years ago
$ grep -r -E -i '(black|white)l' .
./src/Connection/Connection.py:            self.server.peer_blacklist.append((handshake["target_ip"], handshake["fileserver_port"]))
./src/Connection/ConnectionServer.py:        self.peer_blacklist = SiteManager.peer_blacklist
./src/Connection/ConnectionServer.py:        self.whitelist = config.ip_local  # No flood protection on this ips
./src/Connection/ConnectionServer.py:        if ip in self.ip_incoming and ip not in self.whitelist:
./src/Connection/ConnectionServer.py:            if (ip, port) in self.peer_blacklist and not is_tracker_connection:
./src/Connection/ConnectionServer.py:                raise Exception("This peer is blacklisted")
./src/Test/TestConnectionServer.py:        whitelist = file_server.whitelist  # Save for reset
./src/Test/TestConnectionServer.py:        file_server.whitelist = []  # Disable 127.0.0.1 whitelist
./src/Test/TestConnectionServer.py:        # Reset whitelist
./src/Test/TestConnectionServer.py:        file_server.whitelist = whitelist
./src/Site/Site.py:        self.peer_blacklist = SiteManager.peer_blacklist  # Ignore this peers (eg. myself)
./src/Site/Site.py:            if (ip, port) in self.peer_blacklist:
./src/Site/Site.py:                return False  # Ignore blacklist (eg. myself)
./src/Site/SiteManager.py:    peer_blacklist = [("127.0.0.1", config.fileserver_port), ("::1", config.fileserver_port)]
./src/Site/SiteManager.py:    peer_blacklist = []
./src/File/FileServer.py:                SiteManager.peer_blacklist.append((ip_external, self.port))  # Add myself to peer blacklist
./src/File/FileServer.py:                SiteManager.peer_blacklist.append((res_ip["ip"], self.port))
./src/File/FileServer.py:                SiteManager.peer_blacklist.append((ip, self.port))
./src/Ui/UiWebsocket.py:            whitelist = getattr(config, "ui_restrict", [])
./src/Ui/UiWebsocket.py:            # binds to the Internet, no IP whitelist, no UiPassword, no Multiuser
./src/Ui/UiWebsocket.py:            if ("0.0.0.0" == bind_ip or "*" == bind_ip) and (not whitelist):
./src/Tor/TorManager.py:            SiteManager.peer_blacklist.append((onion_address + ".onion", self.fileserver_port))
./plugins/ContentFilter/ContentFilterStorage.py:        # Site blacklist renamed to site blocks
./plugins/ContentFilter/ContentFilterStorage.py:        if "site_blacklist" in self.file_content:
./plugins/ContentFilter/ContentFilterStorage.py:            self.file_content["siteblocks"] = self.file_content["site_blacklist"]
./plugins/ContentFilter/ContentFilterStorage.py:            del self.file_content["site_blacklist"]
./plugins/ContentFilter/ContentFilterStorage.py:        self.include_filters = collections.defaultdict(set)  # Merged list of mutes and blacklists from all include
./plugins/ContentFilter/ContentFilterPlugin.py:                "Blacklisted site", extra_headers, show_loadingscreen=False, script_nonce=script_nonce
./plugins/Sidebar/media/Sidebar.coffee:         options = ["Delete this site", "Blacklist"]
./plugins/Sidebar/media/Sidebar.coffee:             @wrapper.displayPrompt "Blacklist this site", "text", "Delete and Blacklist", "Reason", (reason) =>
./plugins/Sidebar/media/all.js:        options = ["Delete this site", "Blacklist"];
./plugins/Sidebar/media/all.js:            return _this.wrapper.displayPrompt("Blacklist this site", "text", "Delete and Blacklist", "Reason", function(reason) {
./plugins/Sidebar/languages/pt-br.json: "Blacklist": "Blacklist",
./plugins/Sidebar/languages/pt-br.json: "Blacklist this site": "Blacklistar este site",
./plugins/Sidebar/languages/pt-br.json: "Delete and Blacklist": "Deletar e blacklistar",
./plugins/Sidebar/languages/zh.json:    "Blacklist": "黑名单",
./plugins/Sidebar/languages/zh.json:    "Blacklist this site": "拉黑此站点",
./plugins/Sidebar/languages/zh.json:    "Delete and Blacklist": "删除并拉黑",
./plugins/disabled-UiPassword/UiPasswordPlugin.py:    whitelisted_client_ids = {}
./plugins/disabled-UiPassword/UiPasswordPlugin.py:    whitelisted_client_ids = whitelisted_client_ids
./plugins/disabled-UiPassword/UiPasswordPlugin.py:    def whitelistClientId(self, session_id=None):
./plugins/disabled-UiPassword/UiPasswordPlugin.py:        if client_id in self.whitelisted_client_ids:
./plugins/disabled-UiPassword/UiPasswordPlugin.py:            self.whitelisted_client_ids[client_id]["updated"] = time.time()
./plugins/disabled-UiPassword/UiPasswordPlugin.py:        self.whitelisted_client_ids[client_id] = {
./plugins/disabled-UiPassword/UiPasswordPlugin.py:                if session_id not in self.sessions and self.getClientId() not in self.whitelisted_client_ids:
./plugins/disabled-UiPassword/UiPasswordPlugin.py:                    # Invalid session id and not whitelisted ip: display login
./plugins/disabled-UiPassword/UiPasswordPlugin.py:                self.whitelistClientId()
./plugins/disabled-UiPassword/UiPasswordPlugin.py:                self.whitelistClientId(session_id)
./plugins/disabled-UiPassword/UiPasswordPlugin.py:       for client_id in list(self.whitelisted_client_ids):
./plugins/disabled-UiPassword/UiPasswordPlugin.py:            if self.whitelisted_client_ids[client_id]["session_id"] == session_id:
./plugins/disabled-UiPassword/UiPasswordPlugin.py:                del self.whitelisted_client_ids[client_id]
./plugins/disabled-UiPassword/UiPasswordPlugin.py:        yield json.dumps(self.whitelisted_client_ids, indent=4)
./CHANGELOG.md:- Local site blacklisting
purplesyringa commented 4 years ago

A definite 'no'. 'Black' and 'white' in 'blacklists' and 'whitelists' are just abstract colors, in no way they are affiliated with people skin colors. The association with white being good and black being bad has existed since long ago, and this is not going to change in the foreseeable future. I am tired of seeing how people who were not injured by words are asking people who didn't mean to hurt anyone to change the wording to protect someone who has no problem with the words and will most likely not even see the code.

But this is not just a problem with wording, the question is much more subtle.

We are programmers, we have more work to do other than replacing useless words. We love to communicate with each other while collaborating on open-source software. We make free software, not because we are paid for it, but because we like it. We decide the roadmap, we write code, and we build the universe—our universe. We are not marketers, we do our hard work for ourselves, not for random people who don't want to think for themselves; though of course we're proud of ourselves when people use our programs.

We are to decide whether the coders and active members or random users are more important, and I understand that I'm standing on a slippery slope. Each project is to decide whether it's to be used by a mass of people where everyone is equally unimportant, but you have to follow the trend, be it SJW, BLM, etc. or a small group of people that is interested in using, making, and filling the project with unique information, and which can cope with some problems.

We already have the first kind of project and, actually, it's much of the web. Facebook, Twitter, you name it. Big Brother sets a trend, and everyone follows it, because they are a part of a 'community', filled by similar people interested in the motion, not in the result. 'Build a system that even a fool can use, and only a fool will want to use it.'

But we are not sponsored by corporations, and we can keep saying that two plus two is four, even when everyone says it's five. We are making a decentralized network. The masses don't see a need in it, and the masses will not use it anytime soon—but this is not a bad thing. ZeroNet is a useless pile of code without its community. We've given people who still believe that two plus two is four a way to read each other, write to each other, develop awesome ideas and keep telling the truth without being accused of it. One may say it's a filter bubble, and they may well be right—but it's a bubble we choose ourselves, it's not controlled by a single company, person or country. People's opinions and views are not static, they change all the time, and we keep developing. 'Don't be evil' is our motto, not slogan—we don't manipulate people, we convince them.

ZeroNet was the first network to be both reasonably secure and decentralized and easy to use by newcomers. It has a great potential, and it's easy to spoil it if ZeroNet goes mainstream. You'll get a copy of our Web with the same problems, same people, same controlling organizations, except that there's no spider—and thus the network is de jure decentralized. It's arguably not harder to control people in decentralized networks than in centralized ones when big corporations are involved. Can't change what people say? Make no one listen to them. 'Serenity, Montag. Peace, Montag.' It's a decentralized web, which means it's even harder to search—and find—something, and if big search engines join the game, they and only they decide what people see. There's already existing code that is not very difficult to adapt to a decentralized network, but developing an engine from scratch is much harder, and site lists are going to become extinct in the first few years.

ZeroNet may become a new Web in both senses, bringing in lots of people but changing nothing except the underlying protocol. Or it may not affect the lifes of most people but become a good supportive shelter for clearnet refugees.

You choose.