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.
huh, didn’t realise vlemmy went down.
Absolutely. It should be trivially easy for the owner to get a new name and point it at the server if it still exists and is working. However, I understand that we know very few facts about the situation.
Don’t let that discourage you from having accounts on other instances. One shouldn’t get too tied to a specific one IMHO.
EDIT: Should be. Not sure what happens with usernames.
I’m not so sure.
The reason the domain is part of our usernames, is so that there can’t be two users with exactly the same name.
If a server could change its domain name after initial setup, that would break.
Links break. Storage, functionality, local links don’t break.
Yes they do. At least with matrix, shit goes SUPER WRONG with the local database if you try to change your domain.
To the point that the only way to really change it is to purge the whole thing and start over.
Lemmy is not matrix though.
I guess we’re both making broad assumptions.
I never thought of that. I’m not so sure how the net would take it. I don’t know the code closely enough to answer that question. I’ll edit my answer to reflect that.
I take it as it doesnt mess with federation? So people that subscribed to communities there would remain subscribed? I had thought that the path changing would mess things up.
As for having accounts on multiple instances, its just not my style really, I like having a single instance to focus entirely (I interact with few communities so making multiple accounts is pointless) and I was on board with the idea of the admin of not defederating unless absolutely necessary, as I prefer to be the one blocking communities and instances rather than another person. As I said I liked the owner and now I will probably have to investigate for a few hours again to find another instance, I dont really care to change instances if one goes down, but I do like having only one or at max two accounts any single time, it is a bummer because I was having conversations on DM’s and I dont remember the other person.
It will absolutely mess with federation. Accounts on the instance that moved should be relevantly unaffected, but anyone from external instances subscribed to local communities will need to subscribe to the new domain.
I don’t have specific product knowledge but if they have the data it should be trivial to start the server under a different name.
Links will of course be broken.
Other instances should notice the old instance gone and discard data as appropriate.
Other instances will get to know the new instance like any other new instance.