Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

s2s protocol / linking (or 'federation') #26

Closed
DanielOaks opened this issue Apr 14, 2016 · 14 comments
Closed

s2s protocol / linking (or 'federation') #26

DanielOaks opened this issue Apr 14, 2016 · 14 comments

Comments

@DanielOaks
Copy link
Member

S2S linking can be useful, and working out a decent S2S protocol to do it is the best way to do things. Look at TS6/Insp and other suggestions to work something out, timestamping is good and I'd likely use that in any S2S proto we use.

DanielOaks pushed a commit that referenced this issue Apr 19, 2016
Don't restrict MOTD lines to 80 chars
@DanielOaks
Copy link
Member Author

Investigating this with https://github.com/DanielOaks/dcmi/

@DanielOaks
Copy link
Member Author

As a bit of an update, no progress on this as of yet. This is something that's likely to happen a fair while down the road as I really wanna explore alternate methods of linking servers together. If someone wants to experiment and try some stuff out, that's awesome! But something sorta pluggable along the lines of Insp's pluggable linking methods would be good for experimentation.

@Dreamwalker666
Copy link

I was wondering if a mesh network could be used to peform the linking of servers together I did spot this http://meshbird.com/
(I know it's node discovery probably isn't correct for irc but it's just more getting ideas on peforming the server linking)

@Dreamwalker666
Copy link

Came across another peer2peer type network this is a library though https://github.com/weaveworks/mesh

I think it's an interesting idea to build on top of a fault tolerent network which can handle the routing of the messages.

@DanielOaks
Copy link
Member Author

Yeah, I have some rough thoughts about it around here.

I'd like something meshy, but I'm not sure anything existing is appropriate for the sorta CAP availability I'm looking to have (the sort that IRC has always had). This blog post is a good one for reference of the issues with traditional systems as applied directly to IRC, and what I'm looking to avoid.

@poVoq
Copy link

poVoq commented Aug 25, 2019

I know this is probably not what you have in mind, but s2s multi user chat in XMPP is actually quite similar to IRC and is a well proven and stable method.

Maybe enable Oragono to act as an XMPP server component (there is a stable API for it. That is for example how the excelled Biboumi XMPP to IRC gateway works: https://biboumi.louiz.org/ ) or include a cut-down s2s federation version of a xmpp server ( look here for a WIP Golang one: https://github.com/ortuman/jackal )?

That way IRC could be quite easily federated without reinventing the wheel :p

@slingamn
Copy link
Member

I think XMPP federation and IRC federation solve somewhat different problems. As I understand it, XMPP is like e-mail: each user is associated with a particular server, so there's never any question about how to relay a message, it always goes to that user's authoritative server. (So, much like e-mail, the protocol itself doesn't address how to provide high availability.) In contrast, with IRC, users are associated with the network as a whole. So high availability is built into the concept of federation (if your server goes down, you expect to be able to connect transparently to a different server), but the server-to-server protocol and its implementations have to know more about the distributed state of the system.

@awfulcooking
Copy link

What if an inter-network protocol were created to let users on Libera join channels on irc.ergo.chat and be identified(*) as such, and vice versa?

(*) let's say the origin network 'must' warrant that the user is authenticated, that it's connecting on their behalf

@DanielOaks
Copy link
Member Author

It'd probably be best to ask Libera about that. A lot of the reception we've seen to 'irc networks federating with each other intentionally' has been that it's a bit of a mis-feature, or something that most (especially the larger) networks aren't that interested in. That's why we've mostly focused on relaymsg and features to try and make network linking bots more easy, rather than a creating a cross-network federation protocol or something like that.

@awfulcooking
Copy link

Mom: "If $BIG_IRC_NETWORK asked you to jump off a cliff would you do it too?"
ergo.chat:

the-valley-of-stagnation.mp4

@hello-smile6
Copy link

Why not implement every s2s protocol, so people can use ergo for linking otherwise incompatible servers?

@poVoq
Copy link

poVoq commented Sep 26, 2022

Cool would be actually if you could link up with Rocket Chat: https://docs.rocket.chat/guides/administration/admin-panel/settings/irc-federation

@hello-smile6
Copy link

Cool would be actually if you could link up with Rocket Chat: https://docs.rocket.chat/guides/administration/admin-panel/settings/irc-federation

What s2s protocol does that use?
(Are you on the IRC channel?)

@slingamn
Copy link
Member

This is no longer planned; see #1532 for current approaches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants