4 ms·
I never understood why IRC servers don't just store history and let clients query for it. This seems like a small addition to the protocol that would have made
by legalcorrection 4y ago
I never understood why IRC servers don't just store history and let clients query for it. This seems like a small addition to the protocol that would have made it a lot more pleasant to use. You could always turn the feature off in your channel/server if you want ephemerality.
- theandrewbailey 4y agoIRCv3 has an extension that does just that. I've played with it using ergo. https://ircv3.net/specs/extensions/chathistory https://ircv3.net/specs/extensions/chathistory https://github.com/ergochat/ergo https://github.com/ergochat/ergo
- progval 4y agoUnrealIRCd also supports this chathistory extension. And both UnrealIRCd and InspIRCd support replaying the last handful of messages to clients which don't support the extension. https://www.unrealircd.org/docs/Channel_history https://www.unrealircd.org/docs/Channel_history https://docs.inspircd.org/3/modules/chanhistory/ https://docs.inspircd.org/3/modules/chanhistory/
- bityard 4y agoBecause it's firmly in the category of easier said than done. For starters, it would mean logging every message in every channel. IRC servers are (traditionally) relatively stateless and adding a database for logs is a very nontrivial ask. Server-side logs are a non-starter for many server ops due to exposure to the legal system (dealing with warrants, subpoenas, DMCA, "right to be forgotten", etc). Way easier to say, sorry, we don't have any logs. It doesn't take a whole lot of active channels to start eating up serious disk space. And of course for every user connection, you incur a complex db query, the results of which need to get sent back to the client, meaning every new connection is expensive in all of disk, cpu, sand network at a minimum. Most IRC servers are run by volunteers who aren't looking to beef up their server specs by an order of magnitude for one convenient feature. This is more doable now than a decade or two ago but it's still a big ask. You would need to convince all client authors to support server-side logging. Some will, some won't. Last I knew, most IRC servers didn't support authentication directly. If you wanted to "own" your nick, you had to register with a bot-like service. This means you can't get your logs until after you've authenticated to NameServ or whatever. Channels are ephemeral. Unless registered with services, a channel does not exist until a user joins it. Once the last user leaves, the channel doesn't exist anymore. Logging would mean channels are no longer ephemeral. Traditionally, the IRC networks and server authors have responded to these kind of feature requests by saying they should be done by the client, not the server. And I think I have to agree. There's nothing that Slack does (for instance) that can't be done with a sufficiently advanced IRC client. Keep the server as a relatively dumb message broker and put all the smarts in the client. If the features are useful enough, other clients will implement them too.
- welterde 4y ago> Last I knew, most IRC servers didn't support authentication directly. That's not quite true anymore. While many IRC servers don't directly talk with the user database, but indirectly to the services daemon (which provides the mentioned NickServ, etc.), most support SASL authentication these days (one of the more widely adopted IRCv3 extensions on the client and server side). So you can directly authenticate yourself right at the start of the connection without having to talk to any special services.
- legalcorrection 4y agoAlmost nothing in your comment is much of an obstacle at all.
- Handytinge 4y agoNot a technical one, no. But who wants the server logging all of their conversations? Most good IRC networks allow you to list loaded modules as a method of good faith transparency.