Hacker News new | ask | show | jobs
by LinuxBender 686 days ago
It's probably worth adding that IRC is so simple to stand up and requires such tiny resources there could be many independent small IRCD's running for smaller organizations and we would never know. I can't be the only one that got tired of drama from some circles of people and stood up my own semi-private nodes for a few circles of my friends. NGIRCD can be configured in less than 5 minutes counting obtaining a LetsEncrypt certificate. Services can take a few more minutes. UnrealIRCD is more feature rich but takes a little longer to configure optimally. I've personally taught many people how to set up NGIRCD. I have no idea how many of them kept one running. Slap a web front-end on it [1] and the bar to access is significantly lowered.

[1] - https://news.ycombinator.com/item?id=41201487

1 comments

ngIRCd looks good! To be honest, these days I'm surprised that ChanServ/NickServ type stuff isn't integrated directly into the IRCd. I guess it gets complicated if you have multiple servers and they have to decide who controls services, but would simplify single-server arrangements.
Part of IRCv3's roadmap [1] is to implement integrated services. Ergo apparently has done it never tested it and Unreal has apparently developed an addon which I was unaware of. I too would like to see more services integrated into the IRC daemon.

[1] - https://ircv3.net/software/servers.html

We're also (slowly) working on a networked IRCd with mesh networking (instead of spanning trees, to avoid netsplits) and integrated services: https://github.com/Libera-Chat/sable
Pretty interesting! I find these attempts to remake IRC fairly intriguing. I've read your description, and it's really cool how you've re-invented server-to-server routing. Unfortunately, it wasn't clear how services operate, though. Just a couple thoughts:

1. Is there still a benefit to having more than one server? My understanding is that IRC networks had multiple servers partially because because having >50k open network sockets was difficult on 1995-era UNIX-like operating systems. That's not really a problem anymore. I guess multiple servers is a way to achieve load-balancing and fault-tolerance for servers going down, though. But then again, the services database still has to exist somewhere, right? That's probably still a single point of failure?

2. From a user perspective, an IRC replacement ought to compete with Discord. That means support for posting images and videos, audio/video chat, offline history, easy switching between desktop and phone, deep and granular admin controls, etc. I'd love for there to be an open source & open protocol option here, but I'm terrified to even imagine an RFC that implements all of this in a way that works in practice.

> Unfortunately, it wasn't clear how services operate, though

It's also not clear for us! We're considering using a regular replicated database backend with multiple service nodes accessing it. Making the service nodes replicate directly through the network is also an option.

> Is there still a benefit to having more than one server?

Good question. I'm not a staffer at Libera so I don't know, but they believe they need multiple servers. If nothing else, it keeps latency low between clients and servers no matter the client's continent.

> That means support for posting images and videos, audio/video chat, offline history, easy switching between desktop and phone, deep and granular admin controls, etc. I'd love for there to be an open source & open protocol option here, but I'm terrified to even imagine an RFC that implements all of this in a way that works in practice.

There are already specs for most of this stuff. Images and videos are through sharing URLs freely and there's https://github.com/progval/ircv3-specifications/blob/filehos... to tell client where they can upload media (I wrote it as a joke, but there are a couple implementations now???). Video/audio chat won't happen, because it's just too hard. https://ircv3.net/specs/extensions/chathistory for offline history already has a decent number of implementation. And easy switching is going to be tough but there has been work on it from https://soju.im/ (read markers, synchronizing PMs) that we can reuse.

"deep and granular admin controls" is probably going to be through non-standardized commands as is tradition, so servers can freely innovate and there isn't much to gain through standardization. https://github.com/ircv3/ircv3-specifications/pull/484 would help build GUIs for new custom flags, though.

> 2. From a user perspective, an IRC replacement ought to compete with Discord. That means support for posting images and videos, audio/video chat, offline history, easy switching between desktop and phone, deep and granular admin controls, etc. I'd love for there to be an open source & open protocol option here, but I'm terrified to even imagine an RFC that implements all of this in a way that works in practice.

Ugh no.The reason I love IRC is precisely because it's not Discord. IRC with Quassel (and QuasselDroid on mobile) adds most of the mod cons already without being overly bloated.

Besides, if you want something like that you already have Matrix which is just what you're looking for and fully open and federated.