Is it possible or does it present difficulties with federation?
I’m asking because today Vlemmy seems dead and people are speculating it has something to do with losing the domain name. So I want to know if there is a possibility the same server could come up again under a different domain but keeping the same accounts and content stored or if they will need to set up a new server and thus it’s just better to move on to another instance.
Not sure…
With matrix, which is also federated, this cannot be done. In any way. At all.
You could attempt editing the database directly, but this is a bad, superbad, idea.
This is because the domain of the original server was part of the usernames and chat room names, and all of that would be in the database, for the server, and other servers, to know what goes together with what.
If you change your domain, your server wont know who the users logging in with the new domain are. Other servers wont know who they are, or what chat rooms they should be in.
I imagine it’s much the same with the fediverse. Changing your domain would break everything, where the databases are concerned.
And even if you could edit your database to swap out all mentions of the old domain, you could never do so for all other servers out there with federation database entries for your old domain.
You’re saying matrix stores channel name as name + instance even for local channels? That it’s not using standard practice of denormalizing data?
What you see in the frontend or API isn’t necessarily how it’s stored.
There is no such thing as a local matrix channel. Just one which is set to not allow off-instance accounts access.
The reason the domain has to be appended to everything in federated systems, is that its the only way to make sure you don’t get name collision when federating. So that when servers talk to each other about stuff, everything has a unique identifier.
You can have dibs on your domain. You cannot have dibs on just random data labels. But if you do random label+domain, you can be sure no-one else on any other server can use that exact same id.
Also I do know.
I’ve attempted the changing of a matrix server’s domain, without a database purge. It was a waste of time, the instance was only a day old anyway, so I just started over in the end.
That seems somewhat silly.
With email servers, local messages are passed without the domain. Same with HTML. It’s only when “federating” to other servers that a domain is required. I can’t really see why ActivityPub would be any different in what it requires.
If Matrix is requiring the domain, that’s likely to do with encryption and validation, which has always been an issue with Internet 1.0 services. But it seems to me it should still be possible, just not done with current server implementations.
You mean local matrix channels don’t exist in storage schema, right? Not that they don’t exist or make sense conceptually?
Because a channel is always hosted on one owning instance.
Yes.
*Normalising
Denormalising is the other way around, ie accepting duplicated or less than optimally organised data for some other reason (eg for performance or to reduce complexity for your filthy human brain - but usually performance)
Sorry I know that’s a very minor nitpick.
Data normalization has nothing to do with it.
All Matrix channels are a channel name and a domain. That’s a unique identifier. You need unique identifiers. Matrix is not designed to exist in an vacuum (even if you can make it work that way). Locality is dictated by policy not by the data model.