In the 80s when IRC was designed, they didn't foresee the importance of channel #names. Today, we know that names are incredibly important (paying big bucks to keep your domain name in your control, as well as enforcing your names with trademark law where appropriate).
The fact that you can lose "control" of a #channel if you simply log off is a fundamental problem of IRC. Its a known problem: you have bouncers and services (ex: NameServ or ChanServ) to solve this problem.
---------
So "raw" public IRC doesn't work. At a minimum, we need NameServ and ChanServ (and probably a few other bots) before we can make a competent, modern IRC service.
I realize that's where IRC v3 was going (standardizing which bots were enabled). But it should also be noted that xmpp avoids the issue all together with a different channel security model.
-------
Hmmm, maybe there should be an IRC service with a policy to automate #op control to DNS lookups or something. That way, #channels can be connected to DNS lookups and unambiguous? I'm thinking something similar to email / DNSsec style lookups that proves ownership of a name.
First to join gets ops is just a convention. You could certainly write a IRC server that requires strong authentication (client certificate maybe?) and enforces whatever policy you like.
Maybe #dragontamer isn't joinable unless you are in it, and of course you would get ops when you join.
Whoever the server/network blesses. Typically, networks tend to bless whoever got there first, and with ChanServ services, whoever got there first and comes by once in a while. But if you control a server/network, you can do what you like.
This isn't really a protocol problem though. You could certainly run a small IRC server for you and whoemever you could convince to connect, and there's room for some sort of virtual private IRC where anyone can have their own server instance and do whatever. Technically, it wouldn't be too hard; servers and networks are way better than around 2000, and user counts are way down from the peak; dealing with abuse might be a big issue though... IRC servers tend to be DDoS magnets, and botnets and whatever other unsavory stuff.
> In the 80s when IRC was designed, they didn't foresee the importance of channel #names.
The network itself used to provide the namespace. What we didn't foresee were all the economic/political pressures that would eventually lead us to Centralize All The Things.
Decentralized IRC has very limited use cases. Battle.NET or "Worms" video-game servers are a good use of decentralized IRC, as is the coordination of botnet swarms. (Turns out that IRC is very simple and robust) Decentralized video game servers (think Quake) probably could be built off of IRC protocol as well.
But there's limited use in hooking up these decentralized sources to a central IRC chat.
---------
For humans who want to chat, the primary services are:
* Identity -- A 3rd party proves that people are who they say they are (be it Steam-identity, Facebook, or NameServ in IRC). Long-term conversations need trusted identities.
* Channels -- Discord Servers, Facebook groups, Reddit Subreddits. You split up the community into silos that shares the same identify servers, so that groups of people can moderate topics of conversation and practically steer these "online eternal meetings" towards their intended purpose. (Often: to coordinate open source projects, but maybe just talk about C++)
The larger the "surface" of your identity, the better. And the more channels with more (useful) humans to communicate with, the better a chat gets.
As such, IRC-for-chat purposes naturally lends itself to centralization. Its mostly economic, and a little bit political (again: them dark-web Botnets are IRC-based, and politics of the internet means that web administrators should shut those down).
By centralizing chat, you centralize policing. (Good luck starting up a botnet on Libra.irc) You also centralize the channels and identity services. So #RandomFooBar project's identities can be shared with a big #Ubuntu channel's identity.
> You split up the community into silos that shares the same identify servers, so that groups of people can moderate topics of conversation and practically steer these "online eternal meetings" towards their intended purpose.
This is also a textbook COINTELPRO-style technique for controlling/misdirecting activist groups.
> And the more channels with more (useful) humans to communicate with, the better a chat gets.
I'm talking about the most barebone controls, such as keeping a C++ IRC channel on topic.
You can split things up into official #C++ or ##C++ (unofficial), or #C++-Social, and then use your ops powers to tell people where to go, while writing bot-macros that answer basic questions.
Without controls, people can't even stay on topic. If (Insert Political Event) happens, even C++ channels get overwhelmed by those events, even though its completely irrelevant.
-------
And I do know that the #c++ channel is a bit zealous with its moderation. They're probably "too serious". But still, the controls offered by IRC exist for a reason. Guiding people to remain on topic is very helpful in practice.
Those are all social control mechanisms that get layered on top. IRC is fine as it was conceived in the 80's.
You don't need to know the person's name. They need to be the one talked to yesterday and agreed to talk again today. At x location at Y time.
This is what's been lost about Internet culture in the era of social media. We never cared who you were. We cared what you knew. What you said. What you had to share, teach, contribute or otherwise.
You could be a dog, and nobody'd care. You could be RitzyBoi4778 today, and PoorJohnicusTiberiusSmirk tomorrow, but if you knew what we were talking about yesterday, you belonged just as much as anyone else.
You could be an unusually tactically minded 12 year old asking insightful questions on a mailing list frequented by physicists.
You could party crash a super secret gathering of the most savvy Ops on the planet just by being bored and lucky.
Once you start building Gates and Walls, you've left the Net as Gateless Gate. The only obstacle being getting in, and finding your way around. Once you were in, the world was yours.
IRC was still made after the first flamewars happened on Usenet. IRC is a "2nd generation" internet product in some regards.
We care about identity because we want to know your posting history before we make a moderation decision. We need to know if you're here to troll, or if you're here to contribute.
Its not a happy-go-lucky free world, it never was. There will be an ocean of trolls if only because bored 15-something year olds don't have anything better to do.
---------
Its worse today, because we know that the troll-factor has in fact become "weaponized". Literally, through "swatting" and "doxxing", the simple use of information over the internet can become a deadly weapon in of itself.
Even without swatting and doxing, there's other unsavory behaviors that should be moderated.
--------
As always, one of the biggest internet debates is moderation vs unmoderation. Just like the good old days, your alt.* unmoderated Usenet groups arguing for unmoderated servers, while more "serious" usenet groups wanted more control to keep the spammers out.
You're still falling into the identity trap. Speaker. Listener. Medium. Message. That's it.
Anything else is a control mechanism layered on top. Moderation is not necessary to communication. Rather, it is necessary to facilitate some kinds of communication over others, and the concept of identity makes that a far easier and more effective a lever to apply to facilitated signal amplification.
It all comes back to the age old question at the heart of net neutrality: dumb tubes, or marketplace of traffic valuation through optimization and classification of traffic provenance. One necessarily excludes the other. Both have rather undesirable failure states.
Dumb pipes means hello spam. The other side means hello memory holing and censorship. In the end, you can survive the spam with enough patience and filtering. You can't survive malicious pruning or preemptive packet drop. The information either propagates, or it doesn't. I'd say there is greater utility overall in info propagating than not. Even for the most abhorrent types of info. You at least know of the horror out there, and that you need to investigate if the info propagates. If the signal never propagates, you'll never know there is a problem.
The act of separating Signal from Noise is the Essence of the Art.
Every generation, I've seen this assertion. And every generation, it is tested and immediately fails.
Usenet had unmoderated channels. The better ones were moderated.
GameFAQs had LUE (post anything, life, universe and everything), but the memes / board invasions spread so much that GameFAQs was forced to shut it down. (Especially when said "memes" was posting sexually explicit images to children game boards)
4chan was mostly unmoderated. But Gamergate happened and the moderators decided to ban doxing and gamergate politics, so 8chan happened.
8chan became an ally of Gamergate and championed free speech. but then doxing and swatting got too serious, so the mods started banning people.
--------
If you make an unmoderated channel today, you're immediately going to draw in the filthiest individuals: the ones who want to swat and dox for fun. The "trolling community" is always looking for new hosts, because they keep getting banned from legitimate circles.
To control the doxers and swatters, you need to ban them from your server. This requires an identity protocol (NickServ, or some other username mechanism). That way, you ban the ones who keep doxing / swatting, and keep the rest of the crowd.
That's not the only problem with IRC. There's no channel history, no multi-device support, no replies or mentions, no media sharing, it lacks many things we take for granted these days.
I spent a lot of happy hours on IRC 20 years ago, but I wouldn't want to go to a barebones protocol like IRC in 2021.
You can tack on all these mod cons though with clients. Like Quassel or IRCCloud. That's the nice part of IRC. It's so simple that everything can talk to it, unlike most commercial services
That's why commercial services just work. If I want to provide best-effort support for some library of mine I can set up a Gitter channel or a Discord "server" and it will work for sync and async communication, with incredibly low barrier for participation to boot.
I could set up a clever bouncer for my own account, but anyone who asks a question when everyone else is asleep and logs off will never learn the answer.
Yes, that's what async communication services are for, I know. I could run a bulletin board, or use GitHub discussions or Discourse, but the ship has sailed: people are used to chats full of features.
I used this documentation to go from zero knowledge of IRC to writing my own client. I have been hanging on IRC using it ever since, it's pretty satisfying!
31 comments
[ 3.6 ms ] story [ 83.8 ms ] thread[0] https://asciiflow.com/legacy/
In the 80s when IRC was designed, they didn't foresee the importance of channel #names. Today, we know that names are incredibly important (paying big bucks to keep your domain name in your control, as well as enforcing your names with trademark law where appropriate).
The fact that you can lose "control" of a #channel if you simply log off is a fundamental problem of IRC. Its a known problem: you have bouncers and services (ex: NameServ or ChanServ) to solve this problem.
---------
So "raw" public IRC doesn't work. At a minimum, we need NameServ and ChanServ (and probably a few other bots) before we can make a competent, modern IRC service.
I realize that's where IRC v3 was going (standardizing which bots were enabled). But it should also be noted that xmpp avoids the issue all together with a different channel security model.
-------
Hmmm, maybe there should be an IRC service with a policy to automate #op control to DNS lookups or something. That way, #channels can be connected to DNS lookups and unambiguous? I'm thinking something similar to email / DNSsec style lookups that proves ownership of a name.
Maybe #dragontamer isn't joinable unless you are in it, and of course you would get ops when you join.
The names don't really collide on Discord. Everyone gets their own private "server" instance.
This isn't really a protocol problem though. You could certainly run a small IRC server for you and whoemever you could convince to connect, and there's room for some sort of virtual private IRC where anyone can have their own server instance and do whatever. Technically, it wouldn't be too hard; servers and networks are way better than around 2000, and user counts are way down from the peak; dealing with abuse might be a big issue though... IRC servers tend to be DDoS magnets, and botnets and whatever other unsavory stuff.
The network itself used to provide the namespace. What we didn't foresee were all the economic/political pressures that would eventually lead us to Centralize All The Things.
Decentralized IRC has very limited use cases. Battle.NET or "Worms" video-game servers are a good use of decentralized IRC, as is the coordination of botnet swarms. (Turns out that IRC is very simple and robust) Decentralized video game servers (think Quake) probably could be built off of IRC protocol as well.
But there's limited use in hooking up these decentralized sources to a central IRC chat.
---------
For humans who want to chat, the primary services are:
* Identity -- A 3rd party proves that people are who they say they are (be it Steam-identity, Facebook, or NameServ in IRC). Long-term conversations need trusted identities.
* Channels -- Discord Servers, Facebook groups, Reddit Subreddits. You split up the community into silos that shares the same identify servers, so that groups of people can moderate topics of conversation and practically steer these "online eternal meetings" towards their intended purpose. (Often: to coordinate open source projects, but maybe just talk about C++)
The larger the "surface" of your identity, the better. And the more channels with more (useful) humans to communicate with, the better a chat gets.
As such, IRC-for-chat purposes naturally lends itself to centralization. Its mostly economic, and a little bit political (again: them dark-web Botnets are IRC-based, and politics of the internet means that web administrators should shut those down).
By centralizing chat, you centralize policing. (Good luck starting up a botnet on Libra.irc) You also centralize the channels and identity services. So #RandomFooBar project's identities can be shared with a big #Ubuntu channel's identity.
This is also a textbook COINTELPRO-style technique for controlling/misdirecting activist groups.
> And the more channels with more (useful) humans to communicate with, the better a chat gets.
Luckily our wetware comes with a built-in defense mechanism against this: https://en.wikipedia.org/wiki/Dunbar%27s_number
You can split things up into official #C++ or ##C++ (unofficial), or #C++-Social, and then use your ops powers to tell people where to go, while writing bot-macros that answer basic questions.
Without controls, people can't even stay on topic. If (Insert Political Event) happens, even C++ channels get overwhelmed by those events, even though its completely irrelevant.
-------
And I do know that the #c++ channel is a bit zealous with its moderation. They're probably "too serious". But still, the controls offered by IRC exist for a reason. Guiding people to remain on topic is very helpful in practice.
Everything else; identity, channel, reputation, moderation, policing, etc...?
Those are all social control mechanisms that get layered on top. IRC is fine as it was conceived in the 80's.
You don't need to know the person's name. They need to be the one talked to yesterday and agreed to talk again today. At x location at Y time.
This is what's been lost about Internet culture in the era of social media. We never cared who you were. We cared what you knew. What you said. What you had to share, teach, contribute or otherwise.
You could be a dog, and nobody'd care. You could be RitzyBoi4778 today, and PoorJohnicusTiberiusSmirk tomorrow, but if you knew what we were talking about yesterday, you belonged just as much as anyone else.
You could be an unusually tactically minded 12 year old asking insightful questions on a mailing list frequented by physicists.
You could party crash a super secret gathering of the most savvy Ops on the planet just by being bored and lucky.
Once you start building Gates and Walls, you've left the Net as Gateless Gate. The only obstacle being getting in, and finding your way around. Once you were in, the world was yours.
I miss that era so much.
IRC was still made after the first flamewars happened on Usenet. IRC is a "2nd generation" internet product in some regards.
We care about identity because we want to know your posting history before we make a moderation decision. We need to know if you're here to troll, or if you're here to contribute.
Its not a happy-go-lucky free world, it never was. There will be an ocean of trolls if only because bored 15-something year olds don't have anything better to do.
---------
Its worse today, because we know that the troll-factor has in fact become "weaponized". Literally, through "swatting" and "doxxing", the simple use of information over the internet can become a deadly weapon in of itself.
Even without swatting and doxing, there's other unsavory behaviors that should be moderated.
--------
As always, one of the biggest internet debates is moderation vs unmoderation. Just like the good old days, your alt.* unmoderated Usenet groups arguing for unmoderated servers, while more "serious" usenet groups wanted more control to keep the spammers out.
Anything else is a control mechanism layered on top. Moderation is not necessary to communication. Rather, it is necessary to facilitate some kinds of communication over others, and the concept of identity makes that a far easier and more effective a lever to apply to facilitated signal amplification.
It all comes back to the age old question at the heart of net neutrality: dumb tubes, or marketplace of traffic valuation through optimization and classification of traffic provenance. One necessarily excludes the other. Both have rather undesirable failure states.
Dumb pipes means hello spam. The other side means hello memory holing and censorship. In the end, you can survive the spam with enough patience and filtering. You can't survive malicious pruning or preemptive packet drop. The information either propagates, or it doesn't. I'd say there is greater utility overall in info propagating than not. Even for the most abhorrent types of info. You at least know of the horror out there, and that you need to investigate if the info propagates. If the signal never propagates, you'll never know there is a problem.
The act of separating Signal from Noise is the Essence of the Art.
Every generation, I've seen this assertion. And every generation, it is tested and immediately fails.
Usenet had unmoderated channels. The better ones were moderated.
GameFAQs had LUE (post anything, life, universe and everything), but the memes / board invasions spread so much that GameFAQs was forced to shut it down. (Especially when said "memes" was posting sexually explicit images to children game boards)
4chan was mostly unmoderated. But Gamergate happened and the moderators decided to ban doxing and gamergate politics, so 8chan happened.
8chan became an ally of Gamergate and championed free speech. but then doxing and swatting got too serious, so the mods started banning people.
--------
If you make an unmoderated channel today, you're immediately going to draw in the filthiest individuals: the ones who want to swat and dox for fun. The "trolling community" is always looking for new hosts, because they keep getting banned from legitimate circles.
To control the doxers and swatters, you need to ban them from your server. This requires an identity protocol (NickServ, or some other username mechanism). That way, you ban the ones who keep doxing / swatting, and keep the rest of the crowd.
For this you need identity. So at the bare minimum, nickserv should be baked in the protocol.
I spent a lot of happy hours on IRC 20 years ago, but I wouldn't want to go to a barebones protocol like IRC in 2021.
I could set up a clever bouncer for my own account, but anyone who asks a question when everyone else is asleep and logs off will never learn the answer.
Yes, that's what async communication services are for, I know. I could run a bulletin board, or use GitHub discussions or Discourse, but the ship has sailed: people are used to chats full of features.