superseriousbusiness / gotosocial

Fast, fun, small ActivityPub server.
https://docs.gotosocial.org
GNU Affero General Public License v3.0
3.68k stars 311 forks source link

[feature] Making an instance available over multiple network/transports #3277

Open martijndeb opened 1 week ago

martijndeb commented 1 week ago

Is your feature request related to a problem ?

I'm running multiple instance, of which one is available on an alternative network. Posting the same content on multiple networks or transports requires running separate instances and accounts. Tools can be used to crosspost between instances, but it would be great if all accounts can be made available over different network transports.

Describe the solution you'd like.

A full instance could be made available over different transports. For example the current setup of GTS is mostly aimed at clearnet accessability. Running it on an alternative network like TOR, I2P or Reticulum can be done by wrapping the service in socksify and pointing it at a relative network router for that protocol.

However, since federation on those networks require a different address (a .onion, or .b32 address) handles can only be set up for one address. It would be great if the same GTS instance can provide one or multiple alias domains for the same account.

Routing the network traffic can be done by external parties (socksify, proxyfy, proxifyre) and tunneling software quite easily to facilitate both the incoming and outgoing federation.

This issue differs from #1141 because it does not facilitate virtual hosting, but rather aliassing the same content/user under different transports/names.

Describe alternatives you've considered.

I was made aware of issue #1141 which is a slightly different use case and setup. It however lists a comment about serving a webfinger file that takes care of this, which was also suggested on the Matrix channel.

Additional context.

Mastodon has the ability to work in a different network. However, there are a lot of issues preventing it from being secure as the webinterface, websocket, image hosting all default to the main domain (which needs to be the clearnet address because of this). Several issues for this has have been tracked, and it's not a real priority there.

Being able to communicate on a network of choice ensuring safety of users could be improved by this feature request even though it might not be a popular use case.

daenney commented 2 days ago

To be honest, it's unlikely we'd get to this anytime soon. As in next few years. Some of the issues that apply to Mastodon would apply to us too, like for people who chose to use separate media storage.

It also seems like this breaks the federation model, since a toot addressed to @alice@example.com or @alice@long-ass-cryptic-string.onion would be for the same person. But one part of the network has no ability to reach the other.

You're one boost away from whole chains of broken conversations, which seems like a suboptimal experience. Additionally, folks using a Tor service might not expect their conversations to potentially also leak over the clearnet, which is a distinct possibility without additional controls that would avoid that. Clients would probably need to be partially aware of that to constrain certain interactions, or things would get confusing real fast.

Given that tooting inherently leaks potentially privacy-sensitive information, I'm not really sure what the threat model is that being able to use something like Tor would address.

Reticulum is potentially another matter, but the split brain situation exists there too. People will see messages with handles for people they cannot resolve and their server cannot deliver messages to.